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