首页 > 解决方案 > Cordova 从文档问题加载资源(WKwebview)

问题描述

我们有一个非常简单的 Cordova 应用程序,它将所有应用程序的内容下载到 /Documents/ 文件夹。这里我们存储 html、图像、css 和 javascripts。我们最近搬到了 WKWebview,因为旧版本已被弃用。HTML 从文档中读取并附加到本地索引文件中。这一切都很好。在此之后,我们尝试通过将 src 设置为 'file://.../data/Containers/Application/Documents/test.js' (文件在那里)来附加脚本块。不幸的是,这不受支持,我们收到消息:加载资源失败:操作无法完成。不允许操作 我们正在使用最新的 Cordova 和最新的 IOS 平台。

有谁知道如何解决这个问题?在模拟器中一切正常,但在 iPad 设备上却不行。

提前谢谢了。

罗宾

标签: ioscordovalocal-storagewkwebview

解决方案


还有一个解决方案,它不需要对我在似乎没有解决方案可用的绝望日子后发现的代码进行重大更改

需要2个步骤:

首先使用以下内容更新您的 config.xml

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

然后使用未记录的方法转换您的 file:// 链接

window.WkWebView.convertFilePath(filePath)

此方法执行转换为使文件可访问并绕过 WkWebView 限制的虚拟 localhost 链接。稍微长一点的样本是这样的

let localFile = cordova.file.dataDirectory + 'logo.png';
let convertedPath = window.WkWebView.convertFilePath(localFile);
document.getElementById("myImg").src = convertedPath;

推荐阅读