当显示本机对话框时,我们希望对用户关于允许或不允许应用程序访问设备麦克风的选择做出反应。
也就是说,
根据 caniuse Safari 似乎从 v16.4 开始就支持此功能。
然而,从 v17.6 开始,当用户单击/触摸任何按钮时,即使一切似乎都已正确设置,并且回调函数成功附加了
.addEventListener
或 .onchange
,也不会发生任何事情。
请注意,相同的代码在 Windows 和 Android 上运行良好,没有任何问题。
有两种方法可以触发本机对话框来请求读取麦克风输入的权限。
无论哪种方式,您都可以读取并保存初始权限状态,然后启动
setInterval(checkFunction,500);
来读取后一个状态,并使用if(previous==current)
或if(previous!=current)
之类的逻辑来比较它们,然后在更改后立即使用clearInterval()
被检测到并最终编写代码以优雅地响应用户的选择以提供最佳的用户体验。