如何检查所有浏览器都支持的相机权限?

时间:2020-11-04 12:21:39

标签: javascript reactjs permissions next.js

我正在使用以下代码检查我的React应用程序是否具有摄像头许可:-

  checkForCameraPermission = () => {
    try {
      navigator.permissions.query({ name: 'camera' }).then(permissionStatus => {
        // granted, denied, prompt
        switch (permissionStatus.state) {
          case 'denied':
            // eslint-disable-next-line no-alert
            // alert(
            //   'You need to provide camera permission and reload page to continue futher with KYC journey or else please download the EarlySalary App to continue further.'
            // );
            this.setState({
              cameraDialogStatus: true
            });

            break;
          default:
            break;
        }
        // eslint-disable-next-line no-param-reassign
        permissionStatus.onchange = () => {
          console.log(`Permission changed to ${this.state}`);
        };
      });
    } catch (error) {
      console.log('camera error', error);
      // alert('TEST');
      this.setState({ isShowTestDialog: true });
    }
  };

我在组件已完成安装生命周期方法中使用此方法,在大多数浏览器上都可以正常工作,但在某些浏览器上不支持该方法。因此,我尝试找出为什么它不能在某些设备上运行,并最终通过以下链接获得了MDN网络文档的答案:- [https://developer.mozilla.org/en-US/docs/Web/API/Navigator/permissions] [1]

在台式机以及手机上使用我的React应用程序时,是否可以采用更好的方法,我希望该应用程序在所有设备上都能按预期运行,如果不能显示为什么会失败?

非常感谢您的帮助或建议。谢谢您的时间和支持。

0 个答案:

没有答案