uni-app uni.chooseImage报错 {"errMsg":"chooseImage:fail No Permission","code":12}
uni-app uni.chooseImage报错 {“errMsg”:“chooseImage:fail No Permission”,“code”:12}
示例代码:
let upimg = async () => {
try {
console.log('上传');
let res = await uni.chooseImage({
count: 1, //默认9
sizeType: ['compressed'], //可以指定是原图还是压缩图,默认二者都有
sourceType: ['album'], //从相册选
});
console.log(res);
} catch (e) {
console.log(e, '错误');
//TODO handle the exception
}
}
操作步骤:
- targetSdkVersion 设为33 调用 uni.chooseImage
- 项目引用原生插件和uts插件,不引用任何第三方插件则不会出现 调用 uni.chooseImage {“errMsg”:“chooseImage:fail No Permission”,“code”:12}
预期结果:
首次点击弹出授权窗口,授权通过后,允许选择相册
实际结果:
{"errMsg":"chooseImage:fail No Permission","code":12}
bug描述:
targetSdkVersion 设为33 调用 uni.chooseImage {“errMsg”:“chooseImage:fail No Permission”,“code”:12} , 错误
| 信息 | 描述 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境 | Windows |
| PC操作系统版本 | 10 |
| HBuilderX类型 | Alpha |
| HBuilderX版本 | 3.99 |
| 手机系统 | Android |
| 手机系统版本 | Android 12 |
| 手机厂商 | 华为 |
| 手机机型 | mate50 |
| 页面类型 | vue |
| vue版本 | vue3 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |

更多关于uni-app uni.chooseImage报错 {"errMsg":"chooseImage:fail No Permission","code":12}的实战教程也可以访问 https://www.itying.com/category-93-b0.html
提供一个安装包
更多关于uni-app uni.chooseImage报错 {"errMsg":"chooseImage:fail No Permission","code":12}的实战教程也可以访问 https://www.itying.com/category-93-b0.html
https://ide.dcloud.net.cn/build/download/b58df7b0-b59f-11ee-86ee-452b08fff75c 账号test 密码test 在意见反馈上传截图这里
回复 检藏: 抱歉这个失效了,重新提交一个吧
回复 检藏: 兄弟你解决了么?我也遇到了
回复 DCloud_Android_zl: 您好,这个问题后续有解决方案么?
回复 7***@qq.com: 我这边现在验证是正常的,提供一个包我这边试一下
在使用 uni.chooseImage 时,如果遇到 {"errMsg":"chooseImage:fail No Permission","code":12} 错误,通常是因为应用没有获取到相应的权限。以下是一些可能的原因和解决方法:
1. 检查权限配置
-
H5 端:在 H5 端,
uni.chooseImage依赖于浏览器的文件选择功能,通常不需要额外的权限配置。如果出现权限问题,可能是浏览器设置或安全策略导致的。 -
App 端:在 App 端,
uni.chooseImage需要访问设备的相机和相册权限。你需要在manifest.json中配置相应的权限。{ "app-plus": { "permissions": [ "camera", "photos" ] } } -
微信小程序:在微信小程序中,
uni.chooseImage需要用户授权访问相册和相机。你可以在小程序中调用wx.authorize来请求权限。wx.authorize({ scope: 'scope.album', success() { // 用户已经同意授权 }, fail() { // 用户拒绝授权 } });
2. 动态请求权限
在 App 端,即使你在 manifest.json 中配置了权限,用户也可能在运行时拒绝了权限请求。你可以在代码中动态请求权限:
uni.authorize({
scope: 'scope.camera',
success() {
// 用户已经同意授权
},
fail() {
// 用户拒绝授权
}
});
3. 检查运行环境
- 确保你是在支持
uni.chooseImage的环境中运行代码。例如,某些浏览器可能不支持文件选择功能。 - 如果你在模拟器或真机上测试,确保模拟器或真机的权限设置允许应用访问相机和相册。
4. 检查代码逻辑
确保你在调用 uni.chooseImage 之前没有其他逻辑错误,例如在未获取到权限的情况下直接调用 uni.chooseImage。
5. 调试和日志
- 使用
console.log或uni.showModal来调试代码,查看在调用uni.chooseImage之前是否已经获取了权限。 - 检查控制台日志,查看是否有其他错误信息。
6. 更新 uni-app 版本
如果你使用的是较旧的 uni-app 版本,尝试更新到最新版本,以确保你使用的是最新的 API 和修复了已知的 bug。
7. 检查设备设置
- 在真机上,检查设备的设置,确保应用有访问相机和相册的权限。
- 在 Android 设备上,你可以在
设置 -> 应用 -> 权限中查看和修改应用的权限。
8. 处理用户拒绝授权的情况
如果用户拒绝了授权,你可以提示用户手动开启权限,或者提供其他替代方案。
uni.showModal({
title: '提示',
content: '请开启相机和相册权限以继续使用该功能',
success(res) {
if (res.confirm) {
// 引导用户去设置页面开启权限
uni.openSetting();
}
}
});

