Cordova iOS跨源请求仅支持HTTP

6ojccjat  于 2022-12-30  发布在  iOS
关注(0)|答案(6)|浏览(299)

我正在构建一个iOS应用程序,最近将cordova-ios升级到4.1.0,并开始使用:cordova插件wkwebview引擎.
问题是,现在我在尝试加载依赖项时收到错误消息Cross origin requests are only supported for HTTP,因此应用程序无法启动。
它试图通过file://加载systemjs依赖项,但我在config.js中包含了。
我不知道怎么解决这个问题。有人有这个经验吗?
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" />
yyhrrdl8

yyhrrdl81#

安装这一个插件(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" />
f2uvfpb9

f2uvfpb92#

安装以下插件:

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>
js81xvg6

js81xvg63#

对于 cordova iOS 6+只需要安装以下插件.

cordova plugin add https://github.com/AraHovakimyan/cordova-plugin-wkwebviewxhrfix

此插件不依赖于任何其他插件,也不需要额外的权限。

ct3nt3jp

ct3nt3jp4#

我的cordova项目(实际上是Ionic v1)也有同样的问题,我用下面的命令修复了它:

cordova plugin add https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost

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

cordova prepare ios

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

rm -rf plugins/
cordova platform add ios

确保在config.xml中包含以下内容:

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

<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
hfyxw5xn

hfyxw5xn5#

我的ionic v1 Cordova项目也遇到了同样的问题。对我来说,解决方案是迁移到电容器,如下所示:

  • 启动一个新的离子v1项目(%离子开始Bienchen空白--类型离子1)
  • 当客户端询问是否整合“电容器”时,回答“是”。
  • 将我的源代码 checkout 到新的Ionic v1项目的www文件夹
  • 使用电容器构建项目(iOS离子电容器构建%)

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

wztqucjr

wztqucjr6#

如果您使用的是cordova-ios ^6.0.0.,则只需修改config.xml文件:

<platform name="ios">
  ...
   <preference name="scheme" value="app" />
   <preference name="hostname" value="localhost" /> 
  ...
</platform>

不需要安装任何额外的插件。

相关问题