gpt4 book ai didi

javascript - Web Push 重新订阅 push manager chrome

转载 作者:行者123 更新时间:2023-11-30 19:45:41 28 4
gpt4 key购买 nike

目前我有很多 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);
});

但我想用这样乏味的 key 注册来更改订阅,

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 ?

最佳答案

我在尝试了许多不同的事情后找到了答案。我在 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);
})

关于javascript - Web Push 重新订阅 push manager chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54969121/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com