5

Edge 17 支持 Service Worker,显然也支持 PushManager。

然而,即使我的推送通知实现适用于所有支持它们的浏览器,它似乎不适用于 Edge。

if ('PushManager' in window) {
    registration.pushManager.subscribe({
        userVisibleOnly: true,
        applicationServerKey: urlBase64ToUint8Array('xxxxxxx')
    })
    .then(function(subscription) {
        console.log('All good');
    })
    .catch(function(err) {
        console.error(err);
    });
}

这在“赶上”失败:

[对象 DOMException]:{代码:20,消息:“AbortError”,名称:“AbortError”}

这是 Edge 的已知问题吗?我做错什么了吗?

4

2 回答 2

0

我在 Edge 上遇到了完全相同的问题,但是在 Chrome 上运行良好,并且也尝试了不同系统的多个选项,认为这是我的代码的问题,但是它在某个时间开始工作,完全相同的代码工作,即创建订阅对象.

<<如果服务提供商不可用或无法成功响应订阅对象,这很可能会发生>>

reg.pushManager.subscribe(subscribeParams)
        .then(function (subscription) {
            console.log('[subscribe] : user subscribed');
        })
于 2019-04-05T15:26:48.403 回答
0

我收到了这个错误,所以我看了一下这个有效的代码:

https://webpushdemo.azurewebsites.net/

为我解决的问题是这部分:

navigator.serviceWorker.ready.then(/* registration function here*/
于 2018-11-03T20:57:50.080 回答