【问题标题】:Service worker could not subscribe pushManagerService Worker 无法订阅 pushManager
【发布时间】:2018-05-16 11:58:18
【问题描述】:

我正在尝试向浏览器发送桌面推送通知,我成功发送,但在站点选项卡关闭时无法发送。为此,我正在使用服务工作者,但它无法订阅推送管理器。

navigator.serviceWorker.register(fileSw);
 navigator.serviceWorker.ready
        .then(async function(registration) {
            const appKey = '{!! env('APP_KEY') !!}';
             const convertedVapidKey = convertDataURIToBinary(appKey);
            return registration.pushManager.subscribe({
                userVisibleOnly: true,
                applicationServerKey: convertedVapidKey
            });
        })

【问题讨论】:

    标签: javascript laravel web service-worker pusher


    【解决方案1】:

    如果我在这里能正确看到,pushManager 会返回并承诺:

    https://developer.mozilla.org/en-US/docs/Web/API/PushManager

    您不应该将一些逻辑放入 .then() 处理程序中吗?您希望发生什么?实际执行该操作的代码在哪里?

    【讨论】:

    • 我在 pushManager 订阅后收到未决的承诺我想在站点关闭时发送桌面通知。
    • @HaiderHussain 在引用的 MDN 文章的示例中,定义了 onpush() 事件处理程序。其中包含事件的 .should 发生的逻辑。我在您的代码 sn-p 中看不到该部分。
    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 2021-06-29
    • 1970-01-01
    • 2017-03-07
    • 2016-04-08
    • 1970-01-01
    • 2021-01-27
    • 1970-01-01
    相关资源
    最近更新 更多