适用于iOS Safari的navigator.permissions.query替代

时间:2019-11-22 14:58:26

标签: ios safari permissions microphone

我编写了一个脚本,该脚本允许我们网站的访问者录制音频,然后将文件保存在我们的服务器上。

一切正常,直到我注意到,如果用户未给出许可但仍然按了录制按钮,脚本将崩溃。因此,我将其包括在内以确保已授予权限:

navigator.permissions.query({name:'microphone'}).then(function(result) {
 if (result.state == 'granted') {
	//GRANTED
 } else if (result.state == 'denied') {
  //DENIED
 }
});

不幸的是,这不适用于iOS Safari,因此在这种情况下会再次导致崩溃。我找到了关于此主题的多个主题,但没有找到适用于iOS的单个解决方案。但是必须有一个,对不对?如果无法确定是否已授予许可,并且在拒绝麦克风访问的情况下进行录制也会导致崩溃,该如何在iPhone上录制音频?

我希望任何人都有一个主意。提前致谢。 丹尼尔

1 个答案:

答案 0 :(得分:1)

请尝试这个。

navigator.permissions.query({name:'microphone'}).then(function(result) {
 if (result.state === 'granted') {
    //GRANTED
 } else if (result.state === 'denied') {
  //DENIED
 }
});