我正在使用以下代码检查我的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应用程序时,是否可以采用更好的方法,我希望该应用程序在所有设备上都能按预期运行,如果不能显示为什么会失败?
非常感谢您的帮助或建议。谢谢您的时间和支持。