ios - Cordova 从文档问题加载资源(WKwebview)
问题描述
我们有一个非常简单的 Cordova 应用程序,它将所有应用程序的内容下载到 /Documents/ 文件夹。这里我们存储 html、图像、css 和 javascripts。我们最近搬到了 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 限制的虚拟 localhost 链接。稍微长一点的样本是这样的
let localFile = cordova.file.dataDirectory + 'logo.png';
let convertedPath = window.WkWebView.convertFilePath(localFile);
document.getElementById("myImg").src = convertedPath;
推荐阅读
- reactjs - React const 未定义 no-undef 错误
- mockito - 运行 mockmvc 测试时无法模拟函数
- pycharm - 为什么 Pycharm 调试器停止工作
- katalon-studio - 如何再次在katalon中运行调试
- java - 由于参数异常,应用程序无法启动
- sql - 使用 LIMIT 函数是子查询
- algorithm - 为什么我在 Matlab 和 Octave 中(以及在 Matlab 中)得到相同代码的不同版本?
- r - PDF:如何将一列列表转换为多列数据框?- 组内子组中的人员列表到多列
- python - 包括来自 BeautifulSoup soup.findall 输出的 HTML 结束标记
- python - 混淆Python中的超级函数和自我