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

相關文章
相關標籤/搜索