Edge 17 - PushManager.Subscribe因AbortError失败

时间:2018-06-10 08:38:07

标签: push-notification microsoft-edge service-worker pwa

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

但是,即使我的Push Notifications实现适用于所有支持它们的浏览器,它似乎也不适用于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);
    });
}

这与'catch'失败:

  

[object DOMException]:{code:20,message:“AbortError”,name:   “AbortError”}

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

2 个答案:

答案 0 :(得分:0)

我遇到此错误,所以我看了看下面的代码:

https://webpushdemo.azurewebsites.net/

对我来说固定的是这部分:

navigator.serviceWorker.ready.then(/* registration function here*/

答案 1 :(得分:0)

我在Edge上遇到了完全相同的问题,但是在Chrome上运行正常,并尝试了不同系统的多个选项,以为是我的代码出现了问题,但是它开始工作了一段时间却完全相同,即订阅对象正在创建。

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

reg.pushManager.subscribe(subscribeParams)
        .then(function (subscription) {
            console.log('[subscribe] : user subscribed');
        })