Cordova iOS Cross原始请求仅支持HTTP

Sve*_*eur 6 whitelist ios cordova

我正在构建一个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" />
Run Code Online (Sandbox Code Playgroud)

小智 12

安装以下插件:

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
Run Code Online (Sandbox Code Playgroud)

添加到config.xml

<platform name="ios">
  ...
   <preference name="WKWebViewOnly" value="true"/>
  ...
 </platform> 
Run Code Online (Sandbox Code Playgroud)


Eri*_*ric 10

安装这个插件(cordova-ios 6+)

  cordova plugin add https://github.com/globules-io/cordova-plugin-ios-xhr
Run Code Online (Sandbox Code Playgroud)

然后设置

  <preference name="AllowUntrustedCerts"  value="true" />
  <preference name="InterceptRemoteRequests" value="all" />
  <preference name="allowFileAccessFromFileURLs" value="true" />
  <preference name="allowUniversalAccessFromFileURLs" value="true" />
Run Code Online (Sandbox Code Playgroud)


aho*_*yan 7

对于 Cordova iOS 6+ 只需要安装以下插件。

cordova plugin add https://github.com/AraHovakimyan/cordova-plugin-wkwebviewxhrfix
Run Code Online (Sandbox Code Playgroud)

此插件不依赖于任何其他附加插件,也不需要其他权限。


小智 7

如果您使用 cordova-ios ^6.0.0。你只需要修改你的config.xml文件:

<platform name="ios">
  ...
   <preference name="scheme" value="app" />
   <preference name="hostname" value="localhost" /> 
  ...
</platform>
Run Code Online (Sandbox Code Playgroud)

无需安装任何额外的插件。

有关详细信息,请参阅Cordova iOS 6.0.0 发布。


JLa*_*oie 5

我的cordova项目(实际上是Ionic v1)遇到了同样的问题,我使用以下命令修复了它:

cordova plugin add https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost
Run Code Online (Sandbox Code Playgroud)

这将安装一个在本地运行的网络服务器,之后错误应该消失了。运行该命令后,只需运行:

cordova prepare ios
Run Code Online (Sandbox Code Playgroud)

或删除所有插件并重新安装:

rm -rf plugins/
cordova platform add ios
Run Code Online (Sandbox Code Playgroud)

确保你的 config.xml 中有这个:

<access origin="*" />
<feature name="CDVWKWebViewEngine">
  <param name="ios-package" value="CDVWKWebViewEngine" />
</feature>

<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" /> 
Run Code Online (Sandbox Code Playgroud)