使用pushsubscriptionchange时如何获取旧的订阅数据

时间:2018-10-24 04:03:40

标签: javascript push-notification push

我正在将订阅端点,auth和p256dh密钥保存在数据库中,并且我想在服务工作者上实现pushsubscriptionchange事件,以便在该数据库到期时重新订阅和更新数据库中的旧订阅,但是我无法找到获取旧订阅数据的方法。我正在使用此简单代码对其进行测试。

self.addEventListener('pushsubscriptionchange', function(event) {
    console.log('subscription expired');
    event.waitUntil(
        self.registration.pushManager.subscribe({ userVisibleOnly: true })
        .then(function(subscription) {
            console.log('subscribed again');
            // send subscription data to server to update database
        })
    );
});

要在firefox中触发事件,我会删除权限并再次授予它们,该事件会正常运行,但是找不到任何能让我知道旧订阅数据的信息,因此可以在数据库上删除/更新它,因此我将获得过期的订阅以及新的订阅。

如何获取旧的订阅数据?

忘记了,我无法识别用户,他们没有注册,它不是​​应用程序,只是网站。

1 个答案:

答案 0 :(得分:0)

不能。当前,任何浏览器都会在pushsubscriptionchange中传递参数。

有关更多详细信息,请参见:How to handle WebPush API PushSubscriptionChange event in modern browsers