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的已知问题吗?我做错了吗?
我收到此错误,所以我看看这个有效的代码:
https://webpushdemo.azurewebsites.net/
为我修复的是这部分:
navigator.serviceWorker.ready.then(/* registration function here*/
我在Edge上遇到了完全相同的问题,但在Chrome上工作正常,并尝试了不同系统的多个选项,认为我的代码存在问题,但它开始工作一段时间完全相同的代码工作,即订阅对象正在创建。
<<如果服务提供商不可用或者无法成功响应订阅对象,则很可能发生这种情况>>
reg.pushManager.subscribe(subscribeParams)
.then(function (subscription) {
console.log('[subscribe] : user subscribed');
})