详细问题描述
Android系统
5+app云打包后,plus.gallery.pick打开相册,选择图片后,返回的path是以“file:///.....”开头,按这个路径,显示图片,可以正常显示;
但离线打包,打开相册选择图片后,返回路径“content://media/external/images....”,按这个路径是显示不了图片;
后面把“content://media/external/images....”转化为“file:///.....”路径,然后按“file:///.....”路径还是显示不了图片。
(DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题)
[内容]
重现步骤
[步骤]
[结果]
[期望]
[如果语言难以表述清晰,拍一个视频或截图,有图有真相]
IDE运行环境说明
[HBuilder 或 HBuilderX。如果你用其他工具开发uni-app,也需要在此说明]
[IDE版本号]
[windows版本号]
[mac版本号]
uni-app运行环境说明
[运行端是h5或app或某个小程序?]
[运行端版本号]
[项目是cli创建的还是HBuilderX创建的?如果是cli创建的,请更新到最新版cli再试]
[编译模式说明:自定义组件模式?纯nvue模式?v3模式?]
App运行环境说明
[Android版本号]
Android 10.0
[iOS版本号]
[手机型号]
华为 mate20
华为 mate30
[模拟器型号]
附件
[IDE问题请提供HBuilderX运行日志。菜单帮助-查看运行日志,点右键打开文件所在目录,将log文件压缩成zip包上传]
[App问题请提供可重现问题的代码片段,你补充的细一点,问题就解决的快一点]
[App安装包或H5地址]
[可重现代码片段]
function fromgallery()
{
plus.gallery.pick
(
function(file)
{
alert(file);
/*
//以下代码是把“content://media/external/images....”转化为“file:///.....”路径,可忽略
let Cursor = plus.android.importClass('android.database.Cursor');
let Uri = plus.android.importClass('android.net.Uri') ;
var uri = Uri.parse(path);
let MediaStore = plus.android.importClass("android.provider.MediaStore");
var projection = new Array(MediaStore.Video.Media.DATA);
let activity = plus.android.runtimeMainActivity();
var cursor = activity.managedQuery(uri, projection, null, null, null)
var column_index = cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA);
cursor.moveToFirst();
path= cursor.getString(column_index);
path="file://"+path;
*/
},
function(err)
{
if(err.code==8)
{
mui.alert("不能调用相册,请设置允许“云筑帮”调用您的相册!", '云筑帮', function() {});
}
},
{
filter: 'image',
multiple: false
}
);
}
联系方式
[QQ]
443712632
f***@126.com (作者)
还是说这个问题解决不了,若没法解决也要吭一声啊
2020-04-01 13:57