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

anu*_*nup 5 javascript permissions reactjs next.js

我使用以下代码来检查我的反应应用程序是否具有相机权限:-

  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 });
    }
  };
Run Code Online (Sandbox Code Playgroud)

我在组件中使用此方法确实安装了生命周期方法,它在大多数浏览器上运行良好,但在某些浏览器上不受支持。因此,我尝试找出它在某些设备上不起作用的原因,最终通过以下链接的 MDN 网络文档得到了答案:- [https://developer.mozilla.org/en-US/docs/Web/ API/导航器/权限][1]

当我的反应应用程序在台式机和手机上使用时,我是否可以采取更好的方法,并且我希望应用程序在所有设备上按预期工作,如果不显示为什么失败?

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