我正试图通过Volt Builder在线构建服务创建我的第一个ios cordova 应用程序(Phonegap Build的继承者),它使用cordova 11 + cordova-ios 6.2.0。当我试图通过 AJAX 调用从www文件夹加载本地文件时,我在应用程序上得到了一个错误。代码在Chrome桌面上工作正常,几乎相同的代码在几个Android应用程序中工作正常。所以我认为问题出在config.xml而不是代码本身。
无论注解中的代码是什么,我都尝试了一些组合,但没有成功。(我也知道“async:false”在iOS上不起作用)
index.html
//$.support.cors = true;
$.ajax({
//async: false,
type: "GET",
url: "lang/en/strings.xml",
dataType: "text",
//cache: false,
//headers: { "cache-control": "no-cache" },
success: function(data) { /*do stuff here*/ },
error: function(e){ alert(e.statusText); }
});
config.xml(仅相关内容)
<access origin="*" />
<allow-navigation href="*" />
<allow-intent href="http://*/*" />
<plugin name="cordova-plugin-network-information" />
<plugin name="cordova-plugin-inappbrowser" />
<plugin name="cordova-plugin-browser" source="npm"/>
<plugin name="cordova-plugin-dialogs" />
<plugin name="cordova-plugin-device" />
<plugin name="cordova-plugin-file" />
<plugin name="cordova-plugin-filepath" source="npm"/>
<platform name="ios">
<preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
<preference name="WKWebViewOnly" value="true" />
<feature name="CDVWKWebViewEngine">
<param name="ios-package" value="CDVWKWebViewEngine" />
</feature>
<!--<plugin name="@globules-io/cordova-plugin-ios-xhr" source="npm" version="1.0.3" />-->
<plugin name="cordova-plugin-wkwebview-engine" source="npm"/>
<plugin name="cordova-plugin-wkwebviewxhrfix" source="npm" />
<!--<plugin name="cordova-plugin-wkwebview-file-xhr" source="npm"/>-->
<!--<plugin name="@ahovakimyan/cordova-plugin-wkwebviewxhrfix" source="npm" />-->
</platform>
我已经尝试了这么多的组合,上述插件,我已经失去了计数,但所有我得到的应用程序是“错误”警报。
我知道以下类似的问题,但无法让它为我工作
Local (!) AJAX-Requests fail without error message in cordova-based app only in iOS
Why is jQuery Ajax not working in Cordova iOS app
In-app AJAX not working in iOS with Cordova 10
1条答案
按热度按时间yrdbyhpb1#
正如我所发现的,你不能在
<platform name="ios">
内部定义一个插件,而必须在全局范围内定义。只要
<plugin name="cordova-plugin-wkwebview-file-xhr" source="npm" version="3.0.0" />
(在正确的地方..)就能完成工作。