We recently posted instructions how to update your apps to remove all
UIWebView references, because Apple now rejects all apps using
We are talking about this warning:
ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs.
Some things have changed and new versions of cordova-ios have been released since the last post.
Update cordova-ios to version 6.0.0 or newer
Please update to the latest
cordova-ios version to get the best compatibility with recent iOS changes. As of this writing the current version is 6.1.0. Version 6.0.0 of cordova-ios moved
WKWebView support into
cordova-ios and removed
UIWebView code. Due to this change, the
cordova-plugin-wkwebview-engine plugin is obsolete and will not work with this release. If you have this plugin installed, it is safe to remove with
cordova plugin remove cordova-plugin-wkwebview-engine.
WKURLSchemeHandler support has been introduced with this release. Serving your app content through a custom scheme fixes CORS issues that exist because of the strict security policies that
WKWebView has applied to the
file scheme. You can easily configure your Cordova project to use a custom scheme by setting the preference options
hostname in the
config.xml file. Bear in mind that running your app with a custom URL scheme changes the origin of your web code and you will lose access to web storage, such as local storage, indexed DB, etc.
<preference name="scheme" value="app" /> <preference name="hostname" value="localhost" />
It is important to know that with the introduction of
WKURLSchemeHandler, iOS 10 support has been dropped.
Still getting the warning?
If you are still getting the warning, it is most likely one or more plugins in your project still references
UIWebView. You will need to identify which plugins contain
UIWebView code and contact those plugin's developers through their support channel (for instance their plugin's repo). They will need to fix their plugins by either removing the references or wrap them with the new flag.
Using other WKWebView plugin
The official Apache WKWebView plugin is no longer needed with these
cordova-ios versions since
WKWebView has been integrated and
UIWebView is removed. There are other WKWebView plugins that can be used. Make sure they have been updated and use the latest version. If you have any issues or usage questions with their plugins, please read their docs and request help through their support channels.
If you experience any CORS issues Cordova PMC member Norman Breau published a post on his blog with a good explanation of CORS.
If using a custom scheme,
WKWebView won't allow to load file urls in img/video tags (nor fetch them, nor anything).
cordova-ios added a helper method to convert file URLs to URLs that have the scheme and
WKWebView can understand.