HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用
HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
HBuilderX类型:正式
手机系统:Android
手机系统版本号:Android 14
手机厂商:红米
手机机型:红米14C
页面类型:vue
vue版本:vue2
打包方式:云端
官方可以回答下吗?
更多关于HBuilderX4.57中使用uni-app的uni.chooseMedia调试包可以调用,打正式包点击不能调用的实战教程也可以访问 https://www.itying.com/category-93-b0.html
自己顶一下
同样问题, sourceType: [‘album’, ‘camera’],album和camera去掉一个就能正常调用了
我是用如下方法代替
uni.showActionSheet({
itemList: [‘拍摄’, ‘从相册选择’],
success: _res => {
uni.chooseMedia({
count: 1,
mediaType: [‘image’],
sourceType: _res.tapIndex === 0 ? [‘camera’] : [‘album’],
sizeType: [‘original’], //original:原图;compressed:压缩图
success: res => {
// 设置url的值,显示控件
this.imageSrc = res.tempFiles[0].tempFilePath;
},
complete: () => {
uni.hideLoading();
}
})
},
});
云端打包已修复此问题,请使用HBuilderX4.57及以上版本重新提交云端打包(注意需要使用传统打包模式)。如果还有问题请提供appid
本地打包什么时候能修复一下
这是一个典型的正式包权限问题。在uni-app中,uni.chooseMedia需要相机和存储权限才能正常工作。调试包会自动获取这些权限,但正式包需要手动配置。
解决方案:
- 在manifest.json中确保已添加以下权限:
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.READ_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
]
}
- 在代码中动态请求权限:
uni.authorize({
scope: 'scope.camera',
success() {
uni.chooseMedia({
// 配置参数
})
},
fail() {
uni.showToast({
title: '需要相机权限',
icon: 'none'
})
}
})