有没有办法检测到通知被Edge自动屏蔽了?
最近,我没有看到允许或阻止通知的本机对话框,我只看到那个小按钮,单击它时说明通知被阻止:
大多数用户不会注意到那个小按钮,也不会理解为什么不允许通知。
我有一个代码在 Firefox 和 Chrome 上运行了一年多。它也曾经在 Edge 上工作,但最近,Edge 只显示那个小按钮。
我的代码如下:
worker.pushManager.subscribe
,它应该显示浏览器的本机对话框以允许或阻止通知。问题是,至少对于 Edge 112,订阅永远不会返回,而且我没有收到任何错误:
try {
const sub = worker.pushManager.subscribe({
userVisibleOnly: true,
applicationServerKey: key
});
const result = await sub;
// Edge never reaches here
return result;
} catch (error) {
// Edge never reaches here
}
那么有没有办法检测到通知被 Edge 自动屏蔽了,这样我就可以提到用户应该点击的小按钮?
我认为那是 Edge 的安静通知请求 或类似的东西。
我尝试了很多方法,但似乎我们无法检测到“安静通知请求”。通常,我们使用
Notification.permission
来检查权限值,但是值不会改变,当通知被悄悄地阻止时,它总是default
我们对此无能为力。您提到检测 Edge 并显示提醒的方式可能是一种解决方法。此外,如果您对“安静通知请求”有任何建议,也可以通过在 Edge 中按Alt+Shift+I 向 Edge 团队提供反馈。