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