iOS 开发为何要用WKWebView代替UIWebview

2017-12-11  本文已影响13人  pengshuangta

1、背景:一家项目合作公司,在调用我方提供的网页URL时,由于调用多次网页跳转,导致内存暴涨,app闪退问题。

2、问题排查:该公司使用的是UIWebView来加载网页,建议替换使用WKWebview。

3、亲测:通过使用UIWebview和WKWebView来加载百度(https:www//baidu.com),查看两种方式的app的内存使用情况如图(测试条件同样在模拟器iPhone 7下):

(1)UIWebView方式:

(2)WKWebView方式:

5、反思:了解WKWebView的新特性:

在WWDC2014中,苹果推出了最新的iOS8系统,全新的WebKit中更新的WKWebView控件的新特性与使用方法,它很好的解决了UIWebView存在的内存、加载速度等诸多问题。

新特性:新特性参考链接

(1)在性能、稳定性、功能方面有很大提升(最直观的体现就是上面截图所示的内存使用情况WK是:45M左右,Web是:123M左右);

(2)允许JavaScript的Nitro库加载并使用(UIWebView中限制);

(3)支持了更多的HTML5特性;

(4)高达60fps的滚动刷新率以及内置手势;

(5)将UIWebViewDelegate与UIWebView重构成了14类与3个协议(查看苹果官方文档)(三个协议:WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler)。

6、问题的研究需要借鉴多方意见,参考的文章有如下:

(1)参考链接

WKWebView与JS交互的第三方框架:WKWebViewJavascriptBridge;

github地址:https://github.com/marcuswestin/WebViewJavascriptBridge

(2)参考链接

上一篇下一篇

猜你喜欢

热点阅读