【问题标题】:Cordova UIWebView deprecation on iOS [duplicate]iOS上的Cordova UIWebView弃用[重复]
【发布时间】:2020-12-24 12:32:28
【问题描述】:

我正在使用 Ionic/Cordova 开发应用程序。 我听说了一些关于 2020 年 4 月在 iOS 上弃用 Cordova UIWebView 的谣言(所以它应该已经被弃用了)。

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

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

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

我希望 Cordova 最新版本已经解决了这个问题,但我找不到任何东西。我还没有购买 Mac 来构建我的 iOS 平台,所以我无法检查自己。

有人有更新吗?

【问题讨论】:

标签: ios angular cordova ionic-framework uiwebview


【解决方案1】:

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 prepare ios 以应用更改。

回顾一下:

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

使用流行的 InAppBrowser 插件? Cordova 团队发布了一个 2020 年 1 月更新。请务必将此插件更新到 3.2.0 版本 及以上。

使用电容器?

有了这个弃用通知,现在是考虑的最佳时机 迁移到 Capacitor,Ionic 的 Cordova 精神继承者 使现代网络应用程序能够轻松地在所有主要平台上运行。

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

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

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

请注意,如果您在电容器中使用 Cordova 插件 项目,您需要确保在 Apple 发布之前更新这些内容 最后期限。如果无法更新,则必须从 你的项目。

如果您想创建新项目,我鼓励您使用 Capacitor over Cordova 来使用最新技术并更好地控制本机项目。

【讨论】:

  • 谢谢,您已经非常详尽了。还有一个问题,从 Cordova 迁移到 Capacitor 意味着我必须找到我正在使用的相同插件,而且它们甚至有可能不可用。我对吗?例如,我需要使用 Google 360​​ Panorama 插件(我为 Cordova 买了一个),我无法在 Capacitor 中使用相同的插件,对吗?
  • 一些插件仍然不支持 Capacitor。但是,Capacitor 支持添加 Cordova 插件。所以如果有插件仍然不支持 Capacitor,你仍然可以使用 Capacitor 安装它。
猜你喜欢
  • 2020-08-23
  • 2019-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
  • 1970-01-01
  • 2016-01-25
相关资源
最近更新 更多