目前,我已经使用这种方法从许多chrome浏览器中进行了推送订阅,
swr.pushManager.subscribe({userVisibleOnly: true})
.then(function (subscription) {
if (subscription) {
console.log("success::" + JSON.stringify(resp.subscription));
}
return resolve(resp);
})
.catch(function (err) {
resp.status = 'subs_error';
resp.error = '' + err;
logger.error("Can not re-subscribe for pushes", err);
return resolve(resp);
});
但是我想用这样的简单密钥注册来更改订阅,
swr.pushManager.subscribe({userVisibleOnly: true, applicationServerKey: base64UrlToUint8Array(<publicApplicationKey>)})
.then(function (subscription) {
if (subscription) {
console.log("success::" + JSON.stringify(resp.subscription));
}
return resolve(resp);
})
.catch(function (err) {
resp.status = 'subs_error';
resp.error = '' + err;
logger.error("Can not re-subscribe for pushes", err);
return resolve(resp);
});
现在我们的浏览器已经具有如下所示的订阅,并且当我运行底部代码块(带有有效键)时,出现“您已订阅”错误。
Subscription.unsubscribe()方法在Chrome浏览器上不起作用。如何重新订阅pushManager?
答案 0 :(得分:1)
尝试了许多不同的东西后,我找到了答案。我在Chrome控制台上尝试取消订阅方法,但出现“ DOM错误”,但未成功。然后,我将以下代码添加到swr.pushManager.getSubscription()成功回调中。我可以退订推送管理器。
subscription.unsubscribe().then(function(successful) {
// You've successfully unsubscribed
console.log("unsubscribe:" + successful);
}).catch(function(e) {
// Unsubscription failed
console.logI("unsubscribe:err:" + e);
})