Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/apache/cordova-plugin-wkwebview-engine
[DEPRECATED] Apache Cordova wkwebview engine plugin
https://github.com/apache/cordova-plugin-wkwebview-engine
cordova cplusplus csharp java javascript library mobile nodejs objective-c
Last synced: 18 days ago
JSON representation
[DEPRECATED] Apache Cordova wkwebview engine plugin
- Host: GitHub
- URL: https://github.com/apache/cordova-plugin-wkwebview-engine
- Owner: apache
- License: apache-2.0
- Archived: true
- Created: 2015-09-09T07:00:05.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2023-01-08T23:24:17.000Z (about 2 years ago)
- Last Synced: 2025-01-16T00:33:51.633Z (28 days ago)
- Topics: cordova, cplusplus, csharp, java, javascript, library, mobile, nodejs, objective-c
- Language: Objective-C
- Homepage:
- Size: 221 KB
- Stars: 611
- Watchers: 58
- Forks: 358
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- awesome-capacitor - `cordova-plugin-wkwebview-engine`
README
|AppVeyor|Travis CI|
|:-:|:-:|
|[![Build status](https://ci.appveyor.com/api/projects/status/github/apache/cordova-plugin-wkwebview-engine?branch=master)](https://ci.appveyor.com/project/ApacheSoftwareFoundation/cordova-plugin-wkwebview-engine)|[![Build Status](https://travis-ci.org/apache/cordova-plugin-wkwebview-engine.svg?branch=master)](https://travis-ci.org/apache/cordova-plugin-wkwebview-engine)|Cordova WKWebView Engine
======This plugin makes `Cordova` use the `WKWebView` component instead of the default `UIWebView` component, and is installable only on a system with the iOS 9.0 SDK.
In iOS 9, Apple has fixed the [issue](http://www.openradar.me/18039024) present through iOS 8 where you cannot load locale files using file://, and must resort to using a local webserver. **However, you are still not able to use XHR from the file:// protocol without [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS) enabled on your server.**
### Deprecation Notice
This plugin is now deprecated as it's implementation has been moved to `cordova-ios` platform making this plugin redundent. When migrating to `cordova-ios@6`, you should remove this plugin.
This plugin should still work as is on `[email protected]` for the foreseeable future, however it is recommended to remove this plugin and upgrade to `cordova-ios@6` or later.
Installation
-----------This plugin needs cordova-ios 4.0.0 - 5.x. This plugin is not supported on cordova-ios >6.0.0.
To install the current release:
cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add ios@4
cordova plugin add cordova-plugin-wkwebview-engineTo test the development version:
cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add https://github.com/apache/cordova-ios.git#master
cordova plugin add https://github.com/apache/cordova-plugin-wkwebview-engine.git#masterYou also must have at least Xcode 7 (iOS 9 SDK) installed. Check your Xcode version by running:
xcode-select --print-path
Required Permissions
-----------
WKWebView may not fully launch (the deviceready event may not fire) unless if the following is included in config.xml. This should already be installed by Cordova in your platform config.xml when the plugin is installed.#### config.xml
```xml
```
If using `cordova-ios >= 5.1.0`, it is recommended to include the following `preference` tag to only use the `WKWebView` which is a requirement for new App submissions to the AppStore:
```xml
```
Notes
------
This plugin creates a shared `WKProcessPool` which ensures the cookie sharing happens correctly across `WKWebView` instances. `CDVWKProcessPoolFactory` class can be used to obtain the shared `WKProcessPool` instance if app creates `WKWebView` outside of this plugin.On an iOS 8 system, Apache Cordova during runtime will switch to using the UIWebView engine instead of using this plugin. If you want to use WKWebView on both iOS 8 and iOS 9 platforms, you will have to resort to using a local webserver.
We have an [experimental plugin](https://github.com/apache/cordova-plugins/tree/wkwebview-engine-localhost) that does this. You would use that plugin instead of this one.
Application Transport Security (ATS) in iOS 9
-----------Starting with [cordova-cli 5.4.0](https://www.npmjs.com/package/cordova), it will support automatic conversion of the [<access>](http://cordova.apache.org/docs/en/edge/guide/appdev/whitelist/index.html) tags in config.xml to Application Transport Security [ATS](https://developer.apple.com/library/prerelease/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html#//apple_ref/doc/uid/TP40009251-SW33) directives.
Upgrade to at least version 5.4.0 of the cordova-cli to use this new functionality.
Enabling Navigation Gestures ("Swipe Navigation")
-----------In order to allow swiping backwards and forwards in browser history like Safari does, you can set the following preference in your `config.xml`:
```xml
```
You can also set this preference dynamically from JavaScript:
```js
window.WkWebView.allowsBackForwardNavigationGestures(true)
window.WkWebView.allowsBackForwardNavigationGestures(false)
```Disabling 3D Touch Link Previews
-----------In order to disable preview popups when hard pressing links in iOS, you can set the following preference in your `config.xml`:
```xml
```
Limitations
--------If you are upgrading from UIWebView, please note the limitations of using WKWebView as outlined in our [issue tracker](https://issues.apache.org/jira/issues/?jql=project%20%3D%20CB%20AND%20labels%20%3D%20wkwebview-known-issues).
Apple Issues
-------The `AllowInlineMediaPlayback` preference will not work because of this [Apple bug](http://openradar.appspot.com/radar?id=6673091526656000). This bug [has been fixed](https://issues.apache.org/jira/browse/CB-11452) in [iOS 10](https://twitter.com/shazron/status/745546355796389889).
Supported Platforms
-------------------- iOS