uni-app 安卓云端打包后,在小米澎湃OS系统上无法获取到相册权限
uni-app 安卓云端打包后,在小米澎湃OS系统上无法获取到相册权限
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
HBuilderX | 3.99 |
示例代码:
/**
* 从本地相册选择图片或使用相机拍照
* [@param](/user/param) count 最多可以选择的图片张数,默认1
* [@param](/user/param) sourceType album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
* [@param](/user/param) sizeType original 原图,compressed 压缩图,默认二者都有
*/
export function chooseImage(count = 1, sourceType = ['album', 'camera'], sizeType = ['original', 'compressed']) {
return new Promise((resolve) => {
uni.chooseImage({
count,
sizeType,
sourceType,
success: (res) => resolve(res),
fail: (err) => {
console.log('fail异常', err)
// #ifdef APP-PLUS
if (uni.$u.os() == 'ios') {
if (err.errMsg == 'chooseImage:fail No filming permission' && err.errCode == 2) {
// 没有访问相机权限
checkPermissions('camera')
}
} else {
if (err.errMsg == 'chooseImage:fail No Permission') {
if (err.errCode == 11) {
// 没有访问相机权限
checkPermissions('camera')
} else {
// 没有访问相册权限
checkPermissions('photo')
}
}
}
// #endif
}
})
})
}
2 回复
解决了是安卓系统版本大于13后都会出现的问题。可参考该文章https://juejin.cn/post/7159999910748618766
在 uni-app
进行安卓云端打包后,在小米澎湃OS系统上无法获取相册权限,可能是由于以下几个原因导致的。以下是一些排查和解决方案:
1. 检查权限声明
确保在 manifest.json
文件中正确声明了相册权限。例如:
{
"permission": {
"android.permission.READ_EXTERNAL_STORAGE": {},
"android.permission.WRITE_EXTERNAL_STORAGE": {}
}
}
如果使用的是 uni-app
的 uni.chooseImage
或 uni.chooseVideo
等 API,这些权限是必须的。
2. 动态权限申请
在 Android 6.0(API 23)及以上版本中,部分权限需要动态申请。确保在代码中动态申请相册权限。例如:
uni.authorize({
scope: 'scope.writePhotosAlbum',
success() {
console.log('相册权限已授权');
},
fail() {
console.log('相册权限未授权');
}
});