问题描述
我们有一个非常简单的Cordova应用程序,它将所有应用程序的内容下载到/ Documents /文件夹中。 在这里,我们存储html,图像,css和javascript。我们最近移到了WKWebview,因为旧的视图已被弃用。从文档中读取HTML,并将其附加到本地索引文件中。这一切都很好。之后,我们尝试通过将src设置为“ file://.../data/Containers/Application/Documents/test.js”(文件在此处)来追加脚本块。 不幸的是,这不受支持,我们收到消息: 无法加载资源:该操作无法完成。不允许操作 我们正在使用最新的Cordova和最新的IOS平台。
有人对如何解决这个问题有想法吗? 一切都可以在模拟器中正常运行,但不能在iPad设备上运行。
非常感谢。
罗宾
解决方法
还有一个解决方案,它不需要对我在绝望的日子里找不到解决方案后发现的代码进行重大更改
需要2个步骤:
首先使用以下命令更新您的config.xml
<platform name="ios">
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
</platform>
然后使用未公开的方法转换file://链接
window.WkWebView.convertFilePath(filePath)
此方法执行到虚拟本地链接的转换,该链接使文件可访问并绕过WkWebView限制。这样的样本会更长一些
let localFile = cordova.file.dataDirectory + 'logo.png';
let convertedPath = window.WkWebView.convertFilePath(localFile);
document.getElementById("myImg").src = convertedPath;
,
啊。我刚刚在我的应用程序中修复了文件协议“ file://”,并使用target ='_ blank'将Web链接修复了2天。 WKWebView有问题。但是有一些插件可以解决此问题。
尝试安装cordova-plugin-wkwebview-file-xhr和cordova-plugin-wkwebviewxhrfix插件,以解决文件协议问题。