在 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 的兼容性)。