Cordova 上 WKWebView 的状态 iOS 9?

State of WKWebView on Cordova iOS 9?

iOS 8 引入了 WKWebView,这是 iOS 的现代化 Web 视图,具有更多功能,特别是 Javascript 代码的 JIT 编译,显着提高了性能。

但是 iOS 8 上的 WKWebView 存在一些错误,导致 Cordova 默认无法使用它。 AFAIK 有可以使用它的插件,但他们都说 "beta"、"incomplete" 等。据我所知,iOS 9 修复了阻止 Cordova 默认为 WKWebView 的错误iOS8.

那么 iOS9 上 Cordova 中的 WKWebView 状态如何?我似乎无法找到有关此的任何信息。 Cordova 在 iOS 9 上是否默认使用 WKWebView?如果不是为什么不,是否可以通过其他方式正式启用?

新编辑:2019 年 6 月

Apple 尚未在 iOS 13 beta 中删除 UIWebView,因此看起来它至少可以再使用一年。

Ionic WebView 插件,从版本 3.0.0 开始不再使用 Web 服务器,而是使用 WKURLSchemeHandler,这需要放弃对 iOS 10 及更早版本的支持。

仍然向后移植 2.x 分支的大多数修复,这些修复仍然有那些想要支持 iOS 10.

的网络服务器

WKWebView 未集成到 cordova-ios 5.0.0 中,仍需要插件才能使用。 6.0.0 版本应该有。

现在可以使用 Ionic Capacitor,它是从一开始就使用 WKWebView 构建的 Apache Cordova 替代品。它有自己的一组插件,但它也与大多数 Cordova 插件兼容。 https://capacitor.ionicframework.com/

旧编辑:2018 年 8 月

Apple 已在 iOS 12 中弃用 UIWebView,并可能会在 iOS 13 中将其删除。

Apache Cordova has announced 它将在下一个主要版本 (5.x.x) 中将 cordova-plugin-wkwebview-engine 集成到 cordova-ios 中,但 UIWebView 仍然可以工作并且成为默认的。此外,您将能够在运行时在它们之间切换以轻松测试您的应用程序。 在未来的版本中,它将删除整个 UIWebView 代码,而 WKWebView 将是唯一的选择。

但是cordova-plugin-wkwebview-engine还有很多问题。我仍然建议使用 cordova-plugin-ionic-webview,因为使用 GCDWebServer 可以解决大多数 WKWebView 问题。

新编辑:2017 年 11 月

Ionic 团队推出了一个 new WKWebView plugin,它不再是 Cordova 的一个分支,而是在内部使用 GCDWebServer,并克服了大部分 Cordova 插件的已知问题。

新编辑:2016 年 8 月 24 日

更新只是为了添加由 ionic 框架团队创建的 apache WKWebView 插件的一个分支,该插件为插件添加了一些增强功能。

https://github.com/driftyco/cordova-plugin-wkwebview-engine

增强功能可能很快就会出现在核心插件上,但您现在可以查看并测试 ionic fork。

新编辑:2015 年 12 月 9 日

科尔多瓦 ios 4.0.0 has been releasedthe version 1.0.0cordova-plugin-wkwebview-engine

试一试:

cordova create wkwvtest my.project.id wkwvtest
cd wkwvtest
cordova platform add ios@4
cordova plugin add cordova-plugin-wkwebview-engine

正如我已经说过的,cordova-plugin-wkwebview-engine 只支持 iOS 9,在 iOS 8 上它将使用 UIWebView 并且有一些 know issues

如果你也想支持 iOS 8,你可以使用 Telerik 的 wkwebview-engine-localhost (experimental) or cordova-plugin-wkwebview,它们都使用本地网络服务器

https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine-localhost

旧消息:

您可以使用可用的 WKWebView 插件将 WKWebView 与 cordova 一起使用。

您提到的问题是 WKWebView 无法加载本地文件,因此插件使用本地 Web 服务器来解决该问题。

其中一些像来自 telerik https://github.com/Telerik-Verified-Plugins/WKWebView(内置网络服务器)或来自 cordova 团队的官员 https://github.com/apache/cordova-plugins/tree/master/wkwebview-engine-localhost(将 Web 服务器作为依赖插件)

由于你提到的bug在iOS 9上修复了,目前的cordova插件(兼容iOS 8和iOS 9,使用web服务器)已重命名为wkwebview-engine-localhost,当前名称 cordova-plugin-wkwebview-engine 将用于新插件,该插件将仅支持 iOS 9,不会使用网络服务器

您可以在此处查看跟踪进度的问题

https://issues.apache.org/jira/browse/CB-9566

https://issues.apache.org/jira/browse/CB-9567

编辑:我带来新闻 https://shazronatadobe.wordpress.com/2015/09/09/apache-cordova-ios-4-0-0-and-wkwebview-support/

WKWebView support

The cordova-plugin-wkwebview-engine plugin will be iOS 9 only and it will be a core plugin. The development of this updated plugin is still in progress. Apple has fixed the bug where we couldn’t load documents from file:// urls, and it is iOS 9 only. On non-iOS 9 devices, cordova-ios will fallback to using the UIWebView.

The old version of this plugin used a local webserver to load your main document. This older plugin can be used where you want to use WKWebView in both iOS 8 and iOS 9 deployments, but the plugin will remain as a cordova-labs experiment. This plugin has some re-factoring work to be done.