该应用程序使用cordova-ios版本6.0.0。所有WkWebView代码。
当用户使用 cordova-plugin-camera 插件选择一张图片时,我将返回的图片URI设置为 img 标签的 src 属性,这会触发一个错误,因为URI以 file:// 开头:
不允许加载本地资源:file:///xxx/xxx/xxx/xxx.jpg
wkwebview和cordova-ios版本6是如何做到这一点的,以显示选定的图像?
我试过无数次了,还是做不到。我正在使用WkURLSchemeLog,我在X1.xml中将首选项设置为app和localhost,如建议的here:
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />
我看到相机插件返回的file://URL存储在tmp文件夹中。所以我尝试使用app://localhost访问它,但我得到404错误:
var pos = photoURI.indexOf('/tmp');
if(pos >=0){
photoURI = 'app://localhost' + photoURI.substr(pos);
}
1条答案
按热度按时间qncylg1j1#
app://localhost
仅提供www资产。解决方案一:
使用此插件https://github.com/communico/cordova-httpd在应用程序内启动本地服务器
例如,如果文件路径看起来像:
file:///data/user/0/com.pushsoft.aio5app/files/image/7c8f2985-01b3-4fd2-ad7b-f39812a920a2
您可以使用此URL来显示图像:
http://127.0.0.1:8080/image/7c8f2985-01b3-4fd2-ad7b-f39812a920a2
方案二:
您可以将图像放在
file:///var/mobile/Containers/Data/Application/<UUID>/tmp/
中,<img>
只能通过'file://'协议显示此目录中的图像