在 Edge 上检测被阻止的通知

问题描述 投票:0回答:1

有没有办法检测到通知被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 自动屏蔽了,这样我就可以提到用户应该点击的小按钮?

microsoft-edge web-push
1个回答
0
投票

我认为那是 Edge 的安静通知请求 或类似的东西。

我尝试了很多方法,但似乎我们无法检测到“安静通知请求”。通常,我们使用

Notification.permission
来检查权限值,但是值不会改变,当通知被悄悄地阻止时,它总是
default

我们对此无能为力。您提到检测 Edge 并显示提醒的方式可能是一种解决方法。此外,如果您对“安静通知请求”有任何建议,也可以通过在 Edge 中按Alt+Shift+I 向 Edge 团队提供反馈。

© www.soinside.com 2019 - 2024. All rights reserved.