WKWebView针对于Cordova的IOS平台性能提高

  • 聊聊家常

         Ionic框架已经日益成熟,它使得咱们很轻松就能实现与原生类似的体验,然而APP的速度是一个必要的条件,咱们发现大多数NB的APP都有着一个共同的特色,那就是流畅。其实裸露的cordova的原理就是利用每一个平台的本地webview去运行部署在本机的一个web页面,而且可以使用js调用底层相关的接口。javascript

        ios默认的web浏览器是Safari,目前IOS提供了两套不一样的webview技术,一个是有点年迈的“UIWebview”,一个是年轻力壮的“WKWebView”, WKWebView 在性能方面比 UIWebview显著的快,咱们称之为“巨快”,如今苹果公司在新发布的ios版本去更新它,由于 Safari的应用程序须要WKWebView,之前因为各类缘由是的ionic没法无缝融合 WKWebView ,就在今天早上我忽然发现ionic已经解决了这个问题,你们记住这我的叫“ Manu”,使得我使用中文的方式告诉你们这个好消息,官方是在2016年08月18日公布的消息。java

  • 这意味着什么?

        你可使用WKWebView使得你的cordova应用在IOS更快更流畅, WKWebView解决了cordova工程面临的诸多问题,如XHR请求和CORS,储存问题,以及一些渲染DOM的性能问题,它升级了本机与网络的接口,这意味这个只想XHR请求的file:协议会被截获并重定向,然而对正常的XHR请求会经过。ios

        不只如此, WKWebView运行所耗费的内存有显著的减少,使得启动应用更快(以前我作过实验,针对于“熊猫金融”app,iPhone6,6s启动不到一秒,iPhone5,5s,5c要4-5秒),使用JIT编译Javascript,提升稳定性和安全性,而且达到了最新的web标准,官方的实验大意是说他们使用了 WKWebView 以后是内存从160MB降到了20MB,从稳定性来说,崩溃率降低了70%。git

  • 安装步骤

如今ionic已经发布了 wkwebview 的插件 cordova-plugin-wkwebview-enginegithub

地址:https://github.com/driftyco/cordova-plugin-wkwebview-engineweb

安装插件:npm

ionic plugin add https://github.com/driftyco/cordova-plugin-wkwebview-engine.git --save

在使用过程当中你能够经过测试它是否支持IndexDB来断定是UIWebView仍是WKWebView。浏览器

if (window.indexedDB) {
   console.log("I'm in WKWebView!");
} else {
   console.log("I'm in UIWebView");
}

在config.xml配置须要的权限安全

<feature name="CDVWKWebViewEngine">
  <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>

<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />

详情:bash

https://www.npmjs.com/package/cordova-plugin-wkwebview-engine

https://github.com/driftyco/cordova-plugin-wkwebview-engine

相关文章
相关标签/搜索