uni-app hbuildx打包项目后 iOS端拍照和选择图片都不会显示
uni-app hbuildx打包项目后 iOS端拍照和选择图片都不会显示
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HBuilderX | 3.1.2 |
示例代码:
关键代码:
plus.camera.getCamera().captureImage(function(p) {
plus.io.resolveLocalFileSystemURL(p, function(entry) {
var urls = entry.toLocalURL();
plus.zip.compressImage({
src: urls,
dst: 'doc/zip'+urls.substr(urls.lastIndexOf('/') + 1),
quality: 10, //质量1-100
overwrite: true,
},
function(event) {
urls = event.target;
getImgUrl(urls);
//console.log(JSON.stringify(event));
});
//getImgUrl(entry.toLocalURL());
},function(e) {
plus.nativeUI.toast("读取拍照文件错误:" + e.message);
});
});
图片选择
plus.gallery.pick(function(p) {
var urls = '';
plus.zip.compressImage({
src: p,
dst: 'doc/zip'+p.substr(p.lastIndexOf('/') + 1),
quality: 10, //质量1-100
overwrite: true,
},
function(event) {
urls = event.target;
getImgUrl(urls);
});
},{filter:"image"});
doms ='<div class="uploader">\
<div class="uploaderwrapper">\
<div class="uploaderupload">\
<img class="up_img" src="'+p+'" />\
<i class="delInd'+type+' up_del mui-icon mui-icon-closeempty" onclick="DelImg($(this),'+type+');"></i>\
</div>\
</div>\
</div>';
## 操作步骤:
进入应用后,选择图片或者拍照后,在页面上无法显示出图片来
预期结果:
希望能正常显示图片
## 实际结果:
没有显示
bug描述:
在源代码几乎没有改动的情况下,打包后,ios端拍照和选择图片始终不会显示,本地调试又完全没有问题,同时,通过wgt包来更新应用,拍照和选择图片又恢复正常,但是通过使用hbuildx打包ipa发布,安装到手机上,图片选择和拍照又显示不了了。同时app已经在ios端发布过几个版本了,之前都是正常的,再通过本地测试,基本排除代码问题。
根据查阅资料:https://ask.dcloud.net.cn/question/61597,从这个问题回答中所得到的处理方法都测试过,均无效。
更多关于uni-app hbuildx打包项目后 iOS端拍照和选择图片都不会显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app hbuildx打包项目后 iOS端拍照和选择图片都不会显示的实战教程也可以访问 https://www.itying.com/category-93-b0.html
根据描述,问题可能出在iOS打包时的权限配置或文件路径处理上。以下是关键点分析:
- 文件路径问题:
- iOS打包后文件路径可能发生变化,建议使用
plus.io.convertLocalFileSystemURL()
将路径转换为可访问的URL - 检查
dst
路径是否正确,iOS对沙盒目录访问有严格限制
- 权限配置: 确保manifest.json中已正确配置相机和相册权限:
"ios": {
"permissions": {
"Camera": "描述",
"PhotoLibrary": "描述"
}
}
- 图片显示建议: 修改图片显示代码为:
// 获取可访问的URL
var displayUrl = plus.io.convertLocalFileSystemURL(urls);
doms = '<div class="uploader">\
<div class="uploaderwrapper">\
<div class="uploaderupload">\
<img class="up_img" src="'+displayUrl+'" />\
<i class="delInd'+type+' up_del mui-icon mui-icon-closeempty" onclick="DelImg($(this),'+type+');"></i>\
</div>\
</div>\
</div>';