首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用wkwebview时使用cordova在img标签中显示摄像头图像

如何在使用wkwebview时使用cordova在img标签中显示摄像头图像
EN

Stack Overflow用户
提问于 2020-06-12 06:47:17
回答 1查看 819关注 0票数 1

该应用程序使用cordova-ios版本6.0.0。所以所有的WkWebView代码。

当用户使用cordova- plugin -camera插件选择一个图像时,我将返回的图像uri设置为img标记的src,这会触发一个错误,因为uri以file://开头:

不允许加载本地资源:file:///xxx/xxx.jpg

如何使用wkwebview和cordova-ios版本6显示所选图像?

编辑:我已经尝试了无数的东西,但我不能让它工作。我正在使用WkURLSchemeHandler,我将config.xml中的首选项设置为here建议的应用程序和本地主机

代码语言:javascript
复制
<preference name="scheme" value="app" />
<preference name="hostname" value="localhost" />

我看到摄像头插件返回的文件:// url存储在tmp文件夹中。所以我试着用app://localhost访问它,但我得到了404错误:

代码语言:javascript
复制
var pos = photoURI.indexOf('/tmp');
if(pos >=0){
    photoURI = 'app://localhost' + photoURI.substr(pos);
}

任何想法都将非常受欢迎。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-07-18 00:14:54

app://localhost仅为www资产提供服务。

解决方案1:

使用此插件https://github.com/communico/cordova-httpd在应用程序内部启动本地服务器

代码语言:javascript
复制
cordova.plugins.CorHttpd.startServer({
    'www_root': cordova.file.dataDirectory.replace( 'file://', '' ),
    'port': 8080,
    'localhost_only': false
}, function( url ){
    // eg. http://10.0.0.185:8080/
    // if localhost_only is true,then url is http://127.0.0.1:8080/
    console.log(url);
}, function( error ){
    console.log(error);
});

例如,如果文件路径类似于: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

解决方案2:

你可以把图片放在file:///var/mobile/Containers/Data/Application/<UUID>/tmp/中,<img>只能通过'file://‘协议’显示这个目录中的图片

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62334794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档