在 UniApp 中,read_media_images 权限用于访问设备相册中的图片(如 Android 的媒体库)。以下是使用方法:
1. 权限配置
2. 动态申请权限
在代码中通过 uni.authorize 或 uni.requestPermission 动态请求权限:
// 方式1:使用 authorize(部分平台支持)
uni.authorize({
scope: 'scope.writePhotosAlbum', // 注意:UniApp 暂未直接提供 read_media_images 的 scope,通常用相册相关权限
success: () => {
console.log('授权成功');
// 调用选择图片 API
uni.chooseImage({
count: 1,
success: (res) => {
console.log('图片路径:', res.tempFilePaths);
}
});
},
fail: (err) => {
console.log('授权失败', err);
// 引导用户手动开启权限
}
});
// 方式2:直接调用 chooseImage,系统会自动触发权限申请(推荐)
uni.chooseImage({
count: 1,
success: (res) => {
console.log('图片路径:', res.tempFilePaths);
},
fail: (err) => {
console.log('失败', err);
}
});
3. 注意事项
- iOS:无需配置
read_media_images,但使用 uni.chooseImage 时会自动请求相册访问权限。
- 兼容性:不同平台权限名称可能不同,UniApp 已封装统一 API,优先使用
uni.chooseImage 或 uni.chooseMedia。
- 隐私合规:在 App 启动时或使用功能前明确告知用户权限用途。
总结
直接通过 uni.chooseImage 调用即可,系统会自动处理权限申请。如需精细控制,用 uni.authorize 预申请权限(注意 scope 的兼容性)。