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>
上展示了