博客 RSS订阅

如何使用“WKWebViewOnly”
作者:Niklas Merz
2020年3月18日

苹果公司开始拒绝包含UIWebView引用的应用程序。您需要更新您的应用程序以解决此问题,这篇文章总结了所需的步骤。

这应该可以解决将应用上传到 App Store Connect 后出现的警告

ITMS-90809:已弃用的 API 使用 - 苹果将停止接受使用 UIWebView API 的应用程序提交。

引入了一个新的 preference 标志 WKWebViewOnly,以在编译时从 Cordova 的代码中删除所有 UIWebView 引用。建议将 cordova-ios 平台升级到版本 5.1.1

使用 WKWebView 插件。

以下示例使用 [cordova-plugin-wkwebview-engine](https://github.com/apache/cordova-plugin-wkwebview-engine) 插件

  • 添加插件 cordova-plugin-wkwebview-engine,最好是最新版本 1.2.1
  • preference 属性 CordovaWebViewEngine 添加到 config.xml 中。
  • feature 属性 CDVWKWebViewEngine 添加到 config.xml 中。
  • preference 属性 WKWebViewOnly 添加到 config.xml 中。

带有 cordova-plugin-wkwebview-engine 插件的 config.xml 示例

<platform name="ios">
    <preference name="WKWebViewOnly" value="true" />

    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>

    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
</platform>

仍然收到警告?

如果仍然收到警告,则很可能是您的项目中一个或多个插件仍然引用 UIWebView。您需要确定哪些插件,并通过它们的支持渠道(插件的存储库)联系这些插件的开发人员。他们需要修复他们的插件,方法是删除引用或使用新标志将其包装起来。

使用其他 WKWebView 插件

除了上面示例中的官方 WKWebView 插件之外,还有其他替代方案。请确保它们已更新并使用最新版本。如果您在使用它们的插件时遇到任何问题或疑问,请阅读它们的文档并通过其支持渠道请求帮助。

未来路线图

cordova-ios 的下一个主要版本将从代码中删除所有 UIWebView 的引用。该标志也将在下一个主要版本中删除,因为 WKWebView 将成为 Cordova 的默认 webview。目前,下一个主要版本的没有 ETA