This plugin is an extension of the Apache Cordova WKWebView plugin. It includes enhancements to resolve some of the issues surrounding XHR requests, along with some DOM exception issues. Ionic is working with the Cordova team to fully test these changes with the eventual goal of merging the updates into the official Cordova plugin. After the beta testing period, our hope is to make the WKWebView plugin an Ionic default so all users can easily take advantage of this plugin's improved performance over UIWebView.
This plugin only supports iOS 9 and above and will fall back to UIWebView on iOS 8.
The WKWebView plugin is only used by iOS, so ensure the cordova-ios
platform is installed. Additionly, the cordova-ios
platform version must be 4.0
or greater.
Ensure the latest Cordova CLI is installed: (Sudo may be required)
npm install cordova -g
Ensure the ios
platform has been added:
ionic platform ls
If the iOS platform is not listed, run the following command:
ionic platform add ios
If the iOS platform is installed but the version is < 4.x
, run the following commands:
ionic platform update ios
ionic plugin save # creates backup of existing plugins
rm -rf ./plugins # delete plugins directory
ionic prepare # re-install plugins compatible with cordova-ios 4.x
Install the WKWebViewPlugin:
ionic plugin add https://github.com/driftyco/cordova-plugin-wkwebview-engine.git --save
Build the platform:
ionic prepare
Test the app on an iOS 9 or 10 device:
ionic run ios
An easy way to verify that WKWebView has been installed on iOS is to check if window.indexedDB
exists. For example:
if (window.indexedDB) {
console.log("I'm in WKWebView!");
} else {
console.log("I'm in UIWebView");
}
WKWebView may not fully launch (the deviceready event may not fire) unless if the following is included in config.xml:
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
The next released version of the cordova-cli 5.4.0 will support automatic conversion of the <access> tags in config.xml to Application Transport Security ATS directives. Upgrade to the version 5.4.0 to use this new functionality.
The AllowInlineMediaPlayback
preference will not work because of this Apple bug. This bug has been fixed in iOS 10.
There are several known issues with the official Cordova WKWebView plugin. The Ionic team thinks we have resolved several of the major issues. Please let us know if something isn't working as expected.