4

如果用户第一次拒绝,我想重新提示相机权限。

代码:

navigator.mediaDevices.getUserMedia({video: true, audio: false}).then(function(){
      document.getElementById("submitbutton").style.display="inline"; 
  }).catch(function(err){alert("Please provide consent.");location.reload();});

上面的代码在我第一次拒绝权限后重新加载页面。但重新加载后,它不会提示许可,而是再次进入 .catch 块

我相信这是因为浏览器第一次存储被拒绝的承诺并在页面重新加载时检查相同的承诺。

有什么办法可以强制再次出现权限提示?

4

1 回答 1

0

不,你不能。

这是浏览器设计者的一个深思熟虑的决定,以防止网站因其(潜在的侵入性)权限请求而烦人。一旦用户拒绝了权限请求,他们就必须深入研究他们的浏览器设置以重新允许来自该域的请求。在这里阅读更多。

然而,一个流行的技巧是在用户做了一些表明他们确实想要指定的功能之后才请求许可。

因此,例如,您可能希望您的用户流程类似于:

如果您要侵犯用户的隐私,最好解释一下您这样做的原因。

于 2021-01-30T17:27:16.027 回答