WKWebView的两个坑点
在App中使用UIWebView加载网页内容,发现有很多不好的体验。UIWebView是基于移动版的Safari的,所以它的性能表现十分有限。特别是在对几乎每个Web应用都会使用的JavaScript,表现的尤为糟糕。
在iOS 8引入了一个新的框架——WebKit,
WebKit框架使得开发者可以在原生App中使用Nitro来提高网页的性能和表现,Nitro就是Safari的JavaScript引擎。
WKWebView保证在滑动时保持60的帧率,同时具有KVO,内建手势,以及在App和网页之间的原生交流方式。注入JavaScript到网页以改变内容和获取数据。
苹果在 WKWebView 中的 js runtime 里事先注入了一个 window.webkit.messageHandlers.giveUid.postMessage() 方法,我们可以使用这个方法直接向 Native 层传值,异常方便。首先,我们要把一个名为 giveUid 的 ScriptMessageHandler 注册到我们的 wk。
如下图所示
根据上一篇文章通过safari浏览iOS页面发现错误
如下
以为是移动端的问题,就找到了
这个stackoverflow的链接
发现还是不能解决问题,最后发现问题前端写错了单词如下
这是第一个坑点
第二个坑点WKWebView中的页面元素下移如图所示
改了很多,发现最终是由于一句话,应该吧
preferences.minimumFontSize = 0,之后就可以显示正常了