ChenPt / dailyNote

dailyNode for myself
https://github.com/ChenPt/dailyNote/issues
0 stars 0 forks source link

React-native添加相机权限授权 #35

Open ChenPt opened 4 years ago

ChenPt commented 4 years ago

调用相机时需要先获取相机权限,如果未校验是否拥有权限直接打开相机,app会闪退。

  1. 利用react-native的权限校验模块校验权限 2.若有相机权限,则直接打开相机 3.若无,则询问用户授权,确定授权后打开相机
/** Android */
showCameraScan = async (params) => {
    // android
    if (Platform.OS === 'android') {
      try {
        // 检查是否有相机权限
        const result = await PermissionsAndroid.check(PermissionsAndroid.PERMISSIONS.CAMERA)
        if(result) {
          this.cameraShow = true
          this.cameraParams = params
          return
        }
        // 请求相机权限
        const granted = await PermissionsAndroid.request(
          PermissionsAndroid.PERMISSIONS.CAMERA
        );
        if (granted === PermissionsAndroid.RESULTS.GRANTED) {
          this.cameraShow = true
          this.cameraParams = params
        } else {
          console.log('拒绝授予权限')
        }
      } catch (err) {
        console.log(err);
      }
    }
  }

该模块仅支持Android,在安卓5.0及以下,在AndroidManifest.xml文件编写

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-feature android:name="android.hardware.camera" />
    <uses-feature android:name="android.hardware.camera.autofocus" />

第一次进入APP时就会自动授权。 在Android5.0以上的手机,使用相机时才会调用授权