uni.chooseImage({
count: 1,//最大数量
sourceType: ['album','camera'], //从相册选择或拍照'album','camera'
success(res) {
//console.log(res.tempFiles)
// 获取的格式是数组,多选会同时返回,单选只返回一项
_this.imgArr.push(res.tempFiles[0].path)
_this.uploadPic(type);
}
})
- 发布:14 分钟前
- 更新:10 分钟前
- 阅读:10
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win11
HBuilderX类型: 正式
HBuilderX版本号: 4.85
手机系统: Android
手机系统版本号: Android 15
手机厂商: 华为
手机机型: P50
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
点击相机按钮-选择从相册选择
点击相机按钮-选择从相册选择
预期结果:
打开手机相册选择照片
打开手机相册选择照片
实际结果:
没有任何反应
没有任何反应
bug描述:
uni.chooseImage从相册选择没有任何反应。
根据您描述的问题,uni.chooseImage在华为P50上无反应,结合知识库信息分析如下:
-
可能原因:华为设备(尤其是运行HarmonyOS的机型)对系统相册权限管理较严格。您的HBuilderX 4.85版本虽满足App端4.52+的要求,但华为P50实际可能运行HarmonyOS而非纯Android,需特别注意鸿蒙平台兼容性。
-
解决方案建议:
- 检查
manifest.json中是否添加了相册权限声明("android.permission.READ_EXTERNAL_STORAGE") - 尝试改用5+ API实现:camera模块文档,因其底层调用更可控
- 更新至HBuilderX 4.86 alpha版(最新版本可能修复兼容性问题)
- 若仍无效,可考虑使用插件市场的相册选择增强插件
- 检查
-
注意事项:鸿蒙平台与Android原生实现存在差异,知识库中明确标注HarmonyOS需HBuilderX 4.23+支持。建议优先通过5+ API定制化处理,避免系统相册UI兼容性问题。
蔡cai - 开发的插件:https://ask.dcloud.net.cn/article/41539
可以使用uni.createRequestPermissionListener()这个api监听下用啥权限,然后去manifest.json里面加相对应的权限;
存储权限有:WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、READ_MEDIA_IMAGES