【问题标题】:How to get old subscription data when using pushsubscriptionchange使用 pushsubscriptionchange 时如何获取旧订阅数据
【发布时间】:2018-10-24 04:03:39
【问题描述】:

我将订阅端点、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 中触发事件,我删除了权限并再次授予它们,事件触发正常,但我找不到任何可以让我知道旧订阅数据的信息,因此我可以在数据库上删除/更新它,所以我最终会得到过期的订阅和新的订阅。

如何获取旧订阅数据?

忘了补充,我没有其他方法来识别用户,他们没有注册,它不是​​一个应用程序,只是一个网站。

【问题讨论】:

  • 您好,您知道如何在 chrome mobile 中触发该事件吗?
  • @FelipeMorales 不抱歉,只在ff+linux上试过,不知道我触发的方式会不会和真正的触发一样。
  • @Mark 我面临同样的问题。您是否设法获得旧订阅?

标签: javascript push-notification push


【解决方案1】:

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

更多详情请看:How to handle WebPush API PushSubscriptionChange event in modern browsers

【讨论】:

    猜你喜欢
    • 2017-06-20
    • 2020-02-19
    • 2017-04-07
    • 2021-07-15
    • 1970-01-01
    • 2021-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多