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 released
和 the version 1.0.0 共 cordova-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.
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 released
和 the version 1.0.0 共 cordova-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.