uni-app中uni.chooseImage从相册选图功能无法使用

uni-app中uni.chooseImage从相册选图功能无法使用

示例代码:

uni.chooseImage({
count: 1,
extension: ['jpg','png','jpeg'],
crop: {
width: 100,
height: 100
},
success: res => {  
      }  
    });

操作步骤:

  • 选择相册

预期结果:

  • 提示授权,授权成功后,打开图片选择

实际结果:

  • 不提示授权,要去设置中强制开权限,开了权限后,打开图片选择是空的,没有图片

bug描述:

  • 印象中4.07还可以,之后就不行了

Image 1 Image 2 Image 3

信息类别 信息内容
产品分类 uniapp/App
PC开发环境操作系统 Windows
PC开发环境操作系统版本号 Windows11
HBuilderX类型 正式
HBuilderX版本号 4.15
手机系统 Android
手机系统版本号 Android 14
手机厂商 小米
手机机型 13
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

更多关于uni-app中uni.chooseImage从相册选图功能无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html

5 回复

“<uses-permission android:name=“android.permission.CHANGE_NETWORK_STATE”/>”,
“<uses-permission android:name=“android.permission.MOUNT_UNMOUNT_FILESYSTEMS”/>”,
“<uses-permission android:name=“android.permission.VIBRATE”/>”,
“<uses-permission android:name=“android.permission.READ_LOGS”/>”,
“<uses-permission android:name=“android.permission.ACCESS_WIFI_STATE”/>”,
“<uses-feature android:name=“android.hardware.camera.autofocus”/>”,
“<uses-permission android:name=“android.permission.ACCESS_NETWORK_STATE”/>”,
“<uses-permission android:name=“android.permission.CAMERA”/>”,
“<uses-permission android:name=“android.permission.GET_ACCOUNTS”/>”,
“<uses-permission android:name=“android.permission.READ_PHONE_STATE”/>”,
“<uses-permission android:name=“android.permission.CHANGE_WIFI_STATE”/>”,
“<uses-permission android:name=“android.permission.WAKE_LOCK”/>”,
“<uses-permission android:name=“android.permission.FLASHLIGHT”/>”,
“<uses-feature android:name=“android.hardware.camera”/>”,
“<uses-permission android:name=“android.permission.WRITE_SETTINGS”/>”

更多关于uni-app中uni.chooseImage从相册选图功能无法使用的实战教程也可以访问 https://www.itying.com/category-93-b0.html


模块有选择, Windows和Mac都试过,都不可以

啥情况,这社区就没人遇到这问题么,一个回复的都没有

extension: [’.jpg’,’.png’,’.jpeg’]加点,试试

在 Uni-app 中使用 uni.chooseImage 从相册选择图片时,如果无法正常使用,可能是由于以下几个原因导致的。你可以按照以下步骤进行排查和解决:

1. 检查权限配置

  • Android: 确保在 manifest.json 中已经配置了相机和存储权限。
    {
      "permission": {
        "android.permission.CAMERA": {},
        "android.permission.READ_EXTERNAL_STORAGE": {},
        "android.permission.WRITE_EXTERNAL_STORAGE": {}
      }
    }
    
  • iOS: 确保在 manifest.json 中已经配置了相册和相机权限。
    {
      "permission": {
        "NSPhotoLibraryUsageDescription": "需要访问相册以选择图片",
        "NSCameraUsageDescription": "需要访问相机以拍照"
      }
    }
    

2. 检查 API 调用

确保你正确调用了 uni.chooseImage API。示例代码如下:

uni.chooseImage({
  count: 1, // 默认9
  sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
  sourceType: ['album'], // 从相册选择
  success: function (res) {
    console.log(res.tempFilePaths); // 返回选定照片的本地文件路径列表
  },
  fail: function (err) {
    console.log(err); // 失败回调
  }
});

3. 检查运行环境

  • H5 环境: uni.chooseImage 在 H5 环境中依赖于浏览器的文件选择功能,如果浏览器不支持文件选择,可能会导致无法使用。
  • App 环境: 确保在真机调试时,设备已经授权了相册和相机权限。

4. 检查错误信息

如果 uni.chooseImage 调用失败,可以在 fail 回调中打印错误信息,查看具体原因:

uni.chooseImage({
  success: function (res) {
    console.log(res.tempFilePaths);
  },
  fail: function (err) {
    console.error('选择图片失败:', err);
  }
});
回到顶部