使用Cordova ios 6.2.0 + Cordova 11时,www文件夹中的本地文件出现iOS AJAX 错误

0x6upsns  于 2022-11-15  发布在  iOS
关注(0)|答案(1)|浏览(198)

我正试图通过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

yrdbyhpb

yrdbyhpb1#

正如我所发现的,你不能在<platform name="ios">内部定义一个插件,而必须在全局范围内定义。
只要<plugin name="cordova-plugin-wkwebview-file-xhr" source="npm" version="3.0.0" />(在正确的地方..)就能完成工作。

<!-- more plugins/etc here-->
<plugin name="cordova-plugin-wkwebview-file-xhr" source="npm" version="3.0.0" />

<platform name="ios">
    <preference name="CordovaWebViewEngine" value="CDVWKWebViewEngine" />
    <preference name="WKWebViewOnly" value="true" />
    <feature name="CDVWKWebViewEngine">
        <param name="ios-package" value="CDVWKWebViewEngine" />
    </feature>
    <!-- more stuff here -->
</platform>

相关问题