欢迎光临朱凯的个人博客!
朱凯,a3.work

WKWebView网页打开初始位置异常

 发布时间: 2017-12-24 08:45      原创:  朱凯      评论: .       .人查看

遇见的问题: WKWebView打开网址后,页面位置不对,可能整体上移,或者整体左移,甚至缩放

首先这个问题多数情况下是网页代码问题(兼容问题), 一般我们都会让前端人员去解决

但是用 UIWebView 打开同样的页面,效果就会好很多 

OC处理代码如下:

//WKWebView代理 didFinishNavigation方法中 给网页添加代码

NSString *injectionJSString = @"var script = document.createElement('meta');"
"script.name = 'viewport';"
"script.content=\"width=device-width, initial-scale=1.0,maximum-scale=1.0, minimum-scale=1.0, user-scalable=no\";"
"document.getElementsByTagName('head')[0].appendChild(script);";
[self.wkWebView evaluateJavaScript:injectionJSString completionHandler:nil];

这个是网上多数给的代码,在head中开始位置添加属性,但是有时候网页本身就会有这个属性,我们添加的属性被后面的覆盖掉了

更改后代码如下: (把我们要添加的代码添加在head标签的最后位置)

NSString *injectionJSString = @"var script = document.createElement('meta');"
"script.name = 'viewport';"
"script.content=\"width=device-width, initial-scale=1.0,maximum-scale=1.0, minimum-scale=1.0, user-scalable=no\";"
"document.getElementsByTagName('head').lastChild.appendChild(script);";
[self.wkWebView evaluateJavaScript:injectionJSString completionHandler:nil];

总结: 第一种代码比较规范, 第二种可以解决实际中出现的特殊情况

转载请注明来源:   WKWebView网页打开初始位置异常  - 朱凯博客

分享是一种快乐,也是一种美德:
¥打开支付宝,扫码领红包¥ 红包

支付宝 aliPay

微信 wxPay