Cordova iOS Cross原始请求仅支持HTTP

时间:2016-04-06 12:50:39

标签: ios cordova whitelist

我正在构建一个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" />

5 个答案:

答案 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 项目遇到了同样的问题。对我来说,解决方案是迁移到电容器,如下所示:

  • 开始一个新的 Ionic v1 项目(% ionic start Bienchen blank --type ionic1)
  • 当 cli 询问是否集成“电容器”时,回答“是”。
  • 在新的 Ionic v1 项目的 www 文件夹中查看我的源
  • 使用电容器构建项目(% ionic 电容器构建 iOS)

记住 Cordova config.xml 不再使用,而是在 Xcode 项目中配置。