cordova-ios@6.1.0 支持配置使用 WKURLSchemeHandler 来加载本地html网页,以绕过 file:// 的各种限制。
实现方式是配置下面2个 preference

<preference name="scheme" value="cdv" /> 
<preference name="hostname" value="localhost" />

但是,这样配置之后,cordova 加载本地网页的地址就是 cdv://localhost/index.html 了,这样就无法展示 file:// 路径的图片了,因为会报错

Not allowed to load local resource: file:///var/mobile/Containers/Data/Application/E09B7F43-B170-4435-A850-18277C597062/tmp/cache/avatar/7272b2c7-f7a8-4600-811d-6b7f2a3de3b3.jpg

解决方法

cordova 的 wkwebview 提供了一个方法来将 file:// 路径转为 cdv:// 地址(文档中没写)

window.WkWebView.convertFilePath('file:///var/mobile/Containers/Data/Application/E09B7F43-B170-4435-A850-18277C597062/tmp/cache/avatar/7272b2c7-f7a8-4600-811d-6b7f2a3de3b3.jpg')

得到一个如下的url

cdv://localhost/_app_file_/var/mobile/Containers/Data/Application/E09B7F43-B170-4435-A850-18277C597062/tmp/cache/avatar/7272b2c7-f7a8-4600-811d-6b7f2a3de3b3.jpg

这个url就可以放在 <img src>上展示了

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐