uni-app 云打包安卓APP时 uni.chooseImage 默认永久禁止相机权限 跳转到应用设置页面无相机权限

uni-app 云打包安卓APP时 uni.chooseImage 默认永久禁止相机权限 跳转到应用设置页面无相机权限

开发环境 版本号 项目创建方式
Windows 10 HBuilderX
产品分类:uniapp/App

PC开发环境操作系统:Windows

PC开发环境操作系统版本号:10

HBuilderX类型:正式

HBuilderX版本号:3.2.16

手机系统:Android

手机系统版本号:Android 11

手机厂商:华为

手机机型:mate20

页面类型:vue

vue版本:vue2

打包方式:云端

项目创建方式:HBuilderX

示例代码:

uni.chooseImage({ count : this.tempSrcList ? 9 - this.tempSrcList.length : 9, sizeType: [‘compressed’], //可以指定是原图还是压缩图,默认二者都有 success: (res) => { this.tempSrcList = this.tempSrcList.concat(res.tempFilePaths) if(this.tempSrcList.length >= 9){ this.isShowAdd = false } } })


操作步骤:
- 点击选择图片按钮

预期结果:
- 嗲用相机,正常弹出获取相机权限

实际结果:
- 点击相机无反应

bug描述:
- uni.chooseImage云打包安卓APP默认永久禁止相机权限,跳转到应用设置页面,没有相机权限

更多关于uni-app 云打包安卓APP时 uni.chooseImage 默认永久禁止相机权限 跳转到应用设置页面无相机权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

跳转设置截图如下

更多关于uni-app 云打包安卓APP时 uni.chooseImage 默认永久禁止相机权限 跳转到应用设置页面无相机权限的实战教程也可以访问 https://www.itying.com/category-93-b0.html


你在mainifest里面没有配置相机权限导致的。 参考一下 hello uni里面的权限配置。

这个问题是由于Android权限管理机制导致的,特别是华为等厂商对权限管理比较严格。以下是解决方案:

  1. 首先确保manifest.json中已声明相机权限:
{
    "app-plus": {
        "distribute": {
            "android": {
                "permissions": [
                    "<uses-permission android:name=\"android.permission.CAMERA\"/>"
                ]
            }
        }
    }
}
  1. 在使用chooseImage前,先动态请求权限:
uni.authorize({
    scope: 'scope.camera',
    success() {
        // 已授权,调用chooseImage
        uni.chooseImage({...});
    },
    fail() {
        // 未授权,引导用户去设置
        uni.showModal({
            content: '需要相机权限才能拍照',
            confirmText: '去设置',
            success(res) {
                if(res.confirm) {
                    uni.openSetting();
                }
            }
        });
    }
});
回到顶部