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的已知问题吗?我做错了吗?
答案 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');
})