Ios 无法使用WKWebView通过XMLHttpRequest加载音频文件

Ios 无法使用WKWebView通过XMLHttpRequest加载音频文件,ios,html,cordova,audio,wkwebview,Ios,Html,Cordova,Audio,Wkwebview,我喜欢用HTML5画布和JS制作老式的街机游戏。我已经做了很多年了,可能已经有点习惯了。这些游戏在Chrome/Safari中在所有现代设备上都能很好地运行 我想我应该试着用PhoneGap来包装一个游戏,看看它在iOS应用商店中作为一个应用程序的表现如何。 虽然音频播放效果很好,但游戏还是很不稳定 我读到了关于WKWebView相对于默认UIWebView的性能提升的文章,因此将其添加到了我的config.xml中。 这场比赛打得很漂亮,正是我一直想要的。 但音频无法播放 在互联网上翻找,我发

我喜欢用HTML5画布和JS制作老式的街机游戏。我已经做了很多年了,可能已经有点习惯了。这些游戏在Chrome/Safari中在所有现代设备上都能很好地运行

我想我应该试着用PhoneGap来包装一个游戏,看看它在iOS应用商店中作为一个应用程序的表现如何。 虽然音频播放效果很好,但游戏还是很不稳定

我读到了关于WKWebView相对于默认UIWebView的性能提升的文章,因此将其添加到了我的config.xml中。 这场比赛打得很漂亮,正是我一直想要的。 但音频无法播放

在互联网上翻找,我发现问题很可能是如何加载音频文件。下面是我用来加载音频文件的基本代码——一个对象被传递到包含音频文件细节的函数中

我的项目是这样安排的:

--- www
 |___ gfx (contains png files)
 |___ sfx (contains mp3 files)
 |___ script (contains js files)
 |___ index.html
 |___ config.xml
 |___ style.css
非常基本

功能加载声音(o){
尝试
{
var request=new XMLHttpRequest();
var url=“sfx/”+o.soundname+”+AUDIOFORMAT;
打开('GET',url,true);
request.responseType='arraybuffer';
//异步解码
request.onload=函数()
{
尝试
{
g、 audioContext.decodeAudioData(请求.响应,
功能(缓冲区)
{ 
o、 缓冲区=缓冲区;
o、 第0.6卷;
}, 
函数()
{
写入(“解码错误:“+url+”,“+参数[0]);
}
);
}
捕获(e)
{
写入(“加载声音(onLoad):”+e.message);
}
}
request.send();
}
捕获(e)
{
写(“加载声音:+e.message”);

}};好的,经过大量挖掘和Kerri的宝贵指导,我终于想出了如何实现所需的更改

我已将以下信息添加到我的config.xml中:

<plugin name="cordova-plugin-wkwebview-engine-localhost" spec="https://github.com/apache/cordova-plugins.git#wkwebview-engine-localhost" />

同样在config.xml中,我更改了

<content src="index.html" />



很有用。

可能有用。这是“实验性的”,但我已经成功地使用了很多次。谢谢Kerri。我如何实现这一点?我正在使用PhoneGap构建和config.xml。我是否也在JavaScript AJAX调用中指定文件的完整路径?例如。。。
<content src="http://localhost" />