如何在FireFox中检查用户是否已拒绝访问麦克风的权限

有没有一种方法可以找出用户是否拒绝或允许对媒体设备的许可(例如: 麦克风,摄像头)在Firefox中?在Chrome浏览器中,我可以使用navigator.permissions.query进行检查,但这在Firefox中失败,并显示“ TypeError”。

navigator.permissions.query({name:"microphone"}).then(function(promise) {
   if ( promise && promise.state ) {
      console.log(promise.state); //"granted","prompt" or "rejected"
    }
});
//in Firefox,It throws the error "TypeError: 'name' member of PermissionDescriptor '' is not a valid value for enumeration PermissionName"

由于某种原因,我无法使用try catch块捕获上述错误。所以我想知道为什么我不能在try catch块中以及如果有其他方法的情况下捕获此错误。谢谢你。

用例

我的应用程序具有语音识别功能。在用户遇到寻求访问麦克风的实际“系统对话框”之前,我需要显示“弹出预许可”。此“预权限弹出”背后的想法是为用户提供上下文,说明应用程序为何需要访问。如果用户已经授予/拒绝访问权限,则不需要预许可弹出窗口。所以我需要检查麦克风的 权限状态,并在需要时显示弹出窗口。

jsxzxuhu 回答:如何在FireFox中检查用户是否已拒绝访问麦克风的权限

不可能

Permissions API是目前正在开发的实验技术:

  

Mozilla认为,具有用户权限的功能对于用户代理至关重要。该API的某些方面不适用于Firefox中使用的权限模型,因此我们希望在API的几个方面进行改进。特别是,我们认为权限状态需要更准确地反映已存在或可能存在的不同状态的方式。我们还认为与功能策略的交互需要更好地阐明。我们致力于解决此问题,因为权限对于使Web成为功能更强大的平台至关重要,并且确保我们保留用户对其在线体验的控制很重要

Mozilla's position about Permissions API

本文链接:https://www.f2er.com/2996549.html

大家都在问