我正在使用Firefox Nightly的46.0a1版本(OS X只有42v,Push API需要43v)。我收到了这个错误:
DOMException [AbortError: "Error retrieving push subscription"
code: 20
nsresult: 0x80530014]
这里是抛出此错误的片段:
navigator.serviceWorker.ready.then(function (serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe()
.then(function (subscription) {
endpoint = subscription.endpoint;
console.log('subscription endpoint: ', subscription.endpoint);
subscribeOnServer();
})
.catch(function (e) {
// here that error is raised
errorNotification.innerHTML = 'Unable to subscribe to push';
}
});
});
在Chrome中,这个地方不会抛出任何东西,而是通过正确的终端获得订阅。
请帮忙
答案 0 :(得分:1)
它并不适合我。
您的代码段中存在语法错误,但我认为这不是问题(否则它也会在Chrome中失败)。
这是我使用过的代码段:
navigator.serviceWorker.ready
.then(function(serviceWorkerRegistration) {
console.log('asd');
serviceWorkerRegistration.pushManager.subscribe()
.then(function(subscription) {
endpoint = subscription.endpoint;
console.log('subscription endpoint: ', subscription.endpoint);
})
.catch(function(e) {
console.log(e);
});
});
答案 1 :(得分:1)
我最近发现,如果您的浏览器位于不支持 Web 套接字的代理后面(推送服务在内部使用 Web 套接字),则可能会出现此错误。
答案 2 :(得分:0)
当我的 service-worker 出现错误(试图访问 indexedDb 中不存在的存储)时,我收到了这个错误,所以即使它安装了但推送通知没有因为上述错误被订阅。