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是大趋势。


目录
相关文章
|
JavaScript 前端开发 Android开发
|
JavaScript 前端开发 Android开发
|
前端开发 JavaScript Android开发
|
JavaScript 前端开发 Android开发
|
JavaScript Android开发 数据格式
WKWebView与JS交互
APP有时会套一个网页在里面,此时Native与网页JS进行通信也是经常要用的到的。贴上小小的粟子 let configuration = WKWebViewConfiguration() configuration.
2177 0
|
JavaScript Android开发 iOS开发
【iOS开发】从 UIWebView 到 WKWebView
引言 ①本文章适合有 UIWebView 基础的人看,如果实在没用过的话,至少你要知道 UIWebView 是个什么东西。 ② UIWebView 和 WKWebView 的区别 WKWebView 更快(占用内存可能只有 UIWebView 的1/3~1/4),没有缓存,更为细致地拆分了 UIWebViewDelegate 中的方法。
1117 0
|
Web App开发 JavaScript 前端开发
webview和js交互
今天主要总结两点:一是使用Js去调用客户端公有方法,二是从客户端调用Js中的方法 一、JS调用客户端公有方法 上例子:(PS:不会写JS,就网上找了一段js代码) 新建项目,在项目的assets文件夹下创建一个test.html: [HTML] 纯文本查看 复制代码 ? 01 02 03 04 05 0
1268 0
|
Web App开发 JavaScript Android开发
WKWebView的新特性与使用
【iOS】27.WKWebView的新特性与使用 在WWDC2014中,苹果推出了最新的iOS8系统,其中也伴随着很多控件的更新与升级。其中全新的WebKit库让人很是兴奋。本文也将讲解到WebKit中更新的WKWebView控件的新特性与使用方法,它很好的解决了UIWebView存在的内存、加载速度等诸多问题。
1499 0