我正在构建一个iOS应用程序,最近将cordova-ios升级到4.1.0并开始使用:cordova-plugin-wkwebview-engine。
问题是现在我在尝试加载依赖项时收到错误消息Cross origin requests are only supported for HTTP
,因此应用程序无法启动。
它正在尝试通过file://加载systemjs依赖项,但我包含在我的config.js中。
我不知道如何解决这个问题。有没有人有这个bevaviour的经验?
cordova版本:6.1,0 cordova ios版本:4.1.0
相关的config.xml位:
<access origin="*" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
答案 0 :(得分:10)
安装以下插件:
cordova plugin add cordova-plugin-wkwebview-engine
cordova plugin add cordova-plugin-wkwebview-file-xhr
cordova plugin add https://github.com/TheMattRay/cordova-plugin-wkwebviewxhrfix
添加到config.xml
:
<platform name="ios">
...
<preference name="WKWebViewOnly" value="true"/>
...
</platform>
答案 1 :(得分:4)
安装此插件(cordova-ios 6 +)
cordova plugin add https://github.com/globules-io/cordova-plugin-ios-xhr
然后设置
<preference name="AllowUntrustedCerts" value="true" />
<preference name="InterceptRemoteRequests" value="all" />
<preference name="allowFileAccessFromFileURLs" value="true" />
<preference name="allowUniversalAccessFromFileURLs" value="true" />
答案 2 :(得分:3)
我的cordova项目(实际上是Ionic v1)遇到了同样的问题,我使用以下命令修复它:
cordova prepare ios
这将安装一个本地运行的Web服务器,之后错误应该消失。运行该命令后,只需运行:
rm -rf plugins/
cordova platform add ios
或删除所有插件并重新安装:
<access origin="*" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
确保在config.xml中有这个:
{{1}}
答案 3 :(得分:0)
对于Cordova iOS 6+,只需安装以下插件即可。
cordova plugin add https://github.com/AraHovakimyan/cordova-plugin-wkwebviewxhrfix
此插件不依赖于其他任何插件,并且不需要其他权限。
答案 4 :(得分:0)
我的 ionic v1 Cordova 项目遇到了同样的问题。对我来说,解决方案是迁移到电容器,如下所示:
记住 Cordova config.xml 不再使用,而是在 Xcode 项目中配置。