WKWebView相对UIWebView的优劣势

简介: WKWebView相对UIWebView的优劣势

在开发过程中,iOS 中实现加载 web 页面主要有两种控件,UIWebView 和 WKWebview,两种控件对应具体的实现方法不同。WKWebView 是苹果在iOS 8中引入的新组件,目的是提供一个现代的支持最新Webkit功能的网页浏览控件,摆脱过去 UIWebView的老、旧、笨,特别是内存占用量巨大的问题。它使用与Safari中一样的Nitro JavaScript引擎,大大提高了页面js执行速度。的。

相比于UIWebView的优势:

在性能、稳定性、占用内存方面有很大提升;

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

增加加载进度属性:estimatedProgress,不用在自己写假进度条了

支持了更多的HTML的属性

具体分析WKWebView的优劣势

1.内存占用是UIWebView的1/4~1/3

2.页面加载速度有提升,有的文章说它的加载速度比UIWebView提升了一倍左右。

3.更为细致地拆分了 UIWebViewDelegate 中的方法

4.自带进度条。不需要像UIWebView一样自己做假进度条(通过NJKWebViewProgress和双层代理技术实现),技术复杂度和代码量,根贴近实际加载进度优化好的多。

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

6.可以和js直接互调函数,不像UIWebView需要第三方库WebViewJavascriptBridge来协助处理和js的交互。

7.不支持页面缓存,需要自己注入cookie,而UIWebView是自动注入cookie。

8.无法发送POST参数问题

这个是WKWebView比UIWebView内存方面的优化比较:《实测:UIWebView 与WKWebView 性能内存优化对比》 https://www.jianshu.com/p/181889939a85

iOS8.0是2014年9月17日发布了,距离2017年已经有近三年了。现在使用ios10.0以下的系统已经很少了,iPhone 6plus的初始操作系统的iOS8.4(iPhone 6和iPhone 6 plus在苹果的手机占有还很高),iOS8.0以下的系统已经可以忽略了,不能让1%的用户影响99%的用户体验。所以WKWebView代替UIWebView是大趋势。


目录
相关文章
|
6月前
MBProgressHUD和SVProgressHUD各自的缺点及解决方案
MBProgressHUD和SVProgressHUD各自的缺点及解决方案
72 0
|
Android开发 iOS开发 开发工具
|
JavaScript 前端开发 Android开发
|
前端开发 JavaScript Android开发
|
JavaScript 前端开发 Android开发
|
API 数据安全/隐私保护 iOS开发