iOS上的Cordova UIWebView弃用

问题描述

我正在使用Ionic / Cordova开发应用程序。 我听说有关于2020年4月iOS上Cordova UIWebView弃用的谣言(因此应该已经弃用)。

我想了解Cordova是否已解决此问题,或者Cordova是否已在iOS上完全弃用,所以我应该切换到Capacitor或直接切换到React-Native。

之所以选择Angular来选择Ionic / Cordova,是因为我需要在同一代码中构建移动应用程序和渐进式Web应用程序,并且看起来更快。

我还阅读了一种切换到WKWebView的方法,但是它仍然不稳定(不支持cookie持久性,XHR请求和iframe)。无论如何,即使使用WKWebView,Cordova平台上仍然会有UIWebView代码,因此仍会被Apple拒绝。

我希望Cordova的最新版本已经解决了这个问题,但是我什么也找不到。我仍然没有购买Mac来构建我的iOS平台,所以我无法检查自己。

有人有任何更新吗?

解决方法

Cordova团队已经在cordova-ios版本5.1.0中修复了此问题。如果安装了最新版本,那就很好。

Cordova团队发布了Cordova iOS 5.1.0,该版本禁用了 UIWebview在编译时。要使用它,请确保您拥有WKWebView 已安装插件,然后将<preference name="WKWebViewOnly" value="true" />添加到您的config.xml文件中。

Ionic的博客中有一篇有关此的文章:https://ionicframework.com/blog/understanding-itms-90809-uiwebview-api-deprecation/

使用Cordova吗?

2019年11月25日,Cordova团队发布了Cordova iOS 5.1.0, 在编译时禁用UIWebview。他们以前 讨论前进的计划。

要更新:

  • 确保已安装WKWebView插件:官方的Apache插件或Ionic的插件。所有Ionic入门应用程序都自动包含 cordova-plugin-ionic-webview
  • <preference name="WKWebViewOnly" value="true" />添加到您的config.xml文件中。
  • 将每个Cordova插件更新为最新版本(它们也可以触发警告)。更好的是–如果没有,请删除它们 需要更长的时间!
  • 运行cordova准备ios以应用更改。

回顾:

  • 5.1.0具有一个条件编译时标志,该标志禁用UIWebView。这是一个初始修复程序,可防止出现Apple警告。 触发。
  • 6.0.0将删除整个UIWebView。这是一项重大更改,需要进行更多更改,因此它将在 未来几个月。截至2020年1月,尚不知道要发布的ETA,但 版本5.1.0可以正常工作。

使用流行的InAppBrowser插件?科尔多瓦团队发布了 在2020年1月更新。请确保将此插件更新到版本3.2.0 及以上。

使用电容器吗?

有了此弃用通知,现在是考虑的最佳时机 迁移至爱奥尼亚(Ionic)作为科尔多瓦(Cordova)的精神继任者的电容器 使现代Web应用程序可以轻松地在所有主要平台上运行。

2019年9月4日,Ionic团队发布了新的电容器版本 (这里是v1.2.0更改日志),删除了对UIWebView的引用。至 更新您的应用程序,只需运行以下命令即可更新 电容器iOS库:

npm update @capacitor/cli 
npm update @capacitor/core 
npm update @capacitor/ios 
npx cap sync

您可能会在基于电容器的iOS项目中注意到“ UIWebView”引用。例如,“ CapacitorCordova”窗格中的文件, 与Cordova的兼容性有关。这些不会触发警告。

请注意,如果您在电容器中使用Cordova插件 项目,则需要确保在Apple的产品之前进行更新 最后期限。如果无法更新,则必须将其从 您的项目。

如果您要创建新项目,建议您使用Cordova上的Capacitor使用最新技术,并更好地控制本机项目。