uni-app uni-registerRequestPermissionTips插件,使用chooseVideo调用相机拍摄无反应

uni-app uni-registerRequestPermissionTips插件,使用chooseVideo调用相机拍摄无反应

错误信息

手机系统鸿蒙4.0.0,其他录音、相册、定位都可以,就调起相机不行,没有任何反应,控制台提示

{
"errMsg": "chooseVideo:fail User cancelled",
"errCode": 12,
"code": 12
}
2 回复

以解决,在调用chooseVideo前先手动拿一下权限
if (uni.getSystemInfoSync().deviceBrand.toLowerCase() == “huawei”) { plus.android.requestPermissions([“android.permission.CAMERA”], (event) => {}, () => {}) }

更多关于uni-app uni-registerRequestPermissionTips插件,使用chooseVideo调用相机拍摄无反应的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 uni-app 开发时,如果你使用 uni.chooseVideo 调用相机拍摄视频时没有反应,可能是权限问题或其他配置问题导致的。uni-registerRequestPermissionTips 插件可以帮助你处理权限提示,但你需要确保正确配置和使用它。

1. 检查权限配置

首先,确保你在 manifest.json 中正确配置了相机和麦克风权限:

{
  "app-plus": {
    "permissions": {
      "camera": {
        "description": "需要访问相机进行拍摄"
      },
      "microphone": {
        "description": "需要访问麦克风进行录音"
      }
    }
  }
}

2. 使用 uni-registerRequestPermissionTips 插件

uni-registerRequestPermissionTips 插件可以帮助你在用户拒绝权限后,提示用户去设置中开启权限。你可以在 App.vuemain.js 中注册该插件:

import uniRegisterRequestPermissionTips from '@/js_sdk/uni-register-request-permission-tips/uni-register-request-permission-tips.js';

uniRegisterRequestPermissionTips({
  title: '权限提示',
  content: '需要开启相机和麦克风权限才能使用拍摄功能',
  confirmText: '去设置',
  cancelText: '取消'
});

3. 调用 uni.chooseVideo

在调用 uni.chooseVideo 之前,确保你已经处理了权限问题:

uni.chooseVideo({
  sourceType: ['camera'],
  maxDuration: 60,
  camera: 'back',
  success: (res) => {
    console.log('拍摄成功', res.tempFilePath);
  },
  fail: (err) => {
    console.error('拍摄失败', err);
    // 处理权限被拒绝的情况
    if (err.errMsg.includes('permission')) {
      uni.showModal({
        title: '权限提示',
        content: '需要开启相机和麦克风权限才能使用拍摄功能',
        confirmText: '去设置',
        cancelText: '取消',
        success: (modalRes) => {
          if (modalRes.confirm) {
            uni.openSetting({
              success: (settingRes) => {
                console.log('用户已打开设置');
              }
            });
          }
        }
      });
    }
  }
});
回到顶部