问题描述
我有一个普通的Cordova应用程序,当我在iOS 14 beta上运行该应用程序时,该应用程序卡在了启动屏幕上,并且在XCode中记录了很少的警告/错误,但是我不确定它是否引起了问题。
我创建了一个空白的Cordova应用程序,以测试它是否可以在iOS 14上运行,并在设备上运行该应用程序时按预期运行,但是当我将该应用程序设置为使用 WKWebView 而不是 UIWebView 该应用卡在初始屏幕上。
我添加了以下首选项,以在config.xml文件中使用WKWebView。
(node:3854) Warning: To load an ES module,set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
我还添加了cordova-plugin-wkwebview-engine,但是我不知道它是否对我设置WKWebView有用。
以下是我在XCode中遇到的错误:
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
但是在收到此错误后,XCode会打印出已加载index.html的语句。
2020-08-17 12:01:37.990216+0530 BankWindhoek[58947:1465531] nil host used in call to allowsAnyHTTPSCertificateForHost:
2020-08-17 12:01:37.991180+0530 BankWindhoek[58947:1465531] nil host used in call to allowsspecificHTTPSCertificateForHost
但是在应用程序的用户界面上,没有任何内容可以正确呈现并显示空白的白屏。
配置:
科尔多瓦版本:9.0.0
Cordova-ios:5.1.1
注意:如果我在iOS 13 / iOS 13.1上运行相同的应用程序,则可以正常运行。
解决方法
您应该升级到Cordova 10,然后删除
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
然后删除
cordova-plugin-wkwebview-engine
然后
cordova plugin add @globules-io/cordova-plugin-ios-xhr
并像设置wkwebview-engine一样设置标志。
您还必须升级初始屏幕插件以使用新的初始屏幕图像格式。阅读https://cordova.apache.org/news/2020/07/21/splashscreen-plugin-release.html