当前位置:   article > 正文

对于UIWebView与WKWebview的理解_uiwebview和wkwebview区别

uiwebview和wkwebview区别

iOS有UIWebview和WKWebview两种webview。从iOS13开始苹果将UIWebview列为过期API。2020年4月起App Store将不再接受使用UIWebView的新App上架、2020年12月起将不再接受使用UIWebView的App更新。

在进行5+app开发中,从HBuilderX 2.2.5起,iOS上默认均已经是WKWebview,除非开发者手动在代码中指定要用UIWebview,否则实际渲染的页面都是在WKWebview里渲染的。不过,虽然实际页面是WKWebview渲染的,但App底层引擎源码里仍然有UIWebview的可选引用。Appstore的机审会发现二进制代码中包括对UIWebview的引用,从而引发告警。
从HBuilderX 2.6.6起,uiWebview从基础引擎中移除,变成可选模块(manifest里选择),机审也没有提示了。

现在下面就来讲解一下UIwebview以及WKwebview以及他们的区别。

UIwebview

UIWebView用于在App中嵌入网页内容,通常情况下是html格式的网页,也支持pdf, word等文档。

控件优点

  1. 可跨平台
      开发一次可以部署iOS、Android等平台。

  2. 发布更新快
      在服务器端发布,能够实时更新终端展示,便于快速升级以及紧急修复bug。

  3. 排版布局能力强
      强大的HTML+CSS让人膜拜

控件缺点

  1. 性能
      Native与HTML5争论时最喜欢说的一句话就是:“你性能不行”。Web App运行在浏览器里,浏览器的开放能力难以支持HTML5与Native对抗。

  2. 数据通讯复杂
      UIWebView与App之间进行数据通讯只能通过javascript或者UIWebViewDelegate来进行,客户端想传参数给UIWebView修改网页或者从网页中获取数据都比较复杂。

使用场景

  1. 排版复杂的内容

  2. 需后台灵活控制的界面

  3. 原网页

WKWebview

随着IOS开发的应用,对于网页嵌入也越来越多了,在IOS 8之前我们使用UIWebView展示详情页,自从IOS 8之后就出现了WKWebView,相比UIWebView,WKWebView优化了较多的体验。

WKWebView优点

WKWebView采用跨进程方案,Nitro JS解析器,高达60fps的刷新率,理论上性能和Safari比肩,而且对H5也实现了高度支持。

     1.WKWebView的内存开销比UIWebView小很多

     2.内置手势

     3.支持了更多的HTML5特性

     4.有Safari相同的JavaScript引擎

     5.提供常用的属性,如加载网页进度的estimatedProgress属性

两者区别

UIWebview自iOS2就有,WKWebView从iOS8才有,毫无疑问WKWebView将逐步取代笨重的UIWebview。通过官方性能测试可以发现UIWebview占用过多内存,且内存峰值更是夸张。WKWebView网页加载速度也有提升,但是并不像内存那样提升那么多。

WKWebView是苹果在WWDC2014发布会中发布IOS8的时候公布WebKit时候使用的新型的H5容器。它与UIWebView相比较,拥有更快的加载速度和性能,更低的内存占用。将UIWebViewDelegate和UIWebView重构成了14个类,3个协议,可以让开发者进行更加细致的配置。

但是他有一个最致命的缺陷,就是WKWebView的请求不能被NSURLProtocol截获。

如上图分别是UIWebview与WKWebView的流程,WKWebView的流程粒度更加细致,不但在请求的时候会询问WKWebView是否请求数据,还会在返回数据之后询问WKWebView是否加载数据。

更多关于UIwebview与WKwebview的使用方法请访问教程链接

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/109491
推荐阅读
相关标签
  

闽ICP备14008679号