我正在使用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/
使用科尔多瓦?
在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插件?Cordova团队于2020年1月发布了更新。请确保将此插件更新到版本3.2.0及更高版本。
使用电容器?
有了此弃用通知,现在是考虑迁移到Capacitor的最佳时机,Capacitor是Ionic的Cordova的精神继任者,可让现代Web应用轻松在所有主要平台上运行。
Ionic团队于2019年9月4日发布了新的Capacitor版本(此处是v1.2.0更新日志),该版本删除了对UIWebView的引用。要更新您的应用,只需运行以下命令即可更新Capacitor iOS库:
npm update @capacitor/cli npm update @capacitor/core npm update @capacitor/ios npx cap sync
您可能会在基于电容器的iOS项目中注意到“ UIWebView”引用。例如,“ CapacitorCordova”窗格中的文件与Cordova兼容性有关。这些不会触发警告。
请注意,如果您在Capacitor项目中使用的是Cordova插件,则需要确保在Apple截止日期之前对其进行了更新。如果无法更新,则必须将其从项目中删除。
如果要创建新项目,建议您使用Cordova上的Capacitor使用最新技术,并更好地控制本机项目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句