【问题标题】:Service Worker onClick event - Open and pass some data to a PWAService Worker onClick 事件 - 打开并将一些数据传递给 PWA
【发布时间】:2021-09-03 19:10:38
【问题描述】:

我已经为我的 PWA 实现了推送通知,而我的服务人员 (SW) 目前正在处理这样的通知点击:

  1. 如果应用正在运行,它会将其置于前台并使用Client.postMessage API 向其发送一些数据
  2. 如果应用未运行,它将通过 Client.openWindow 使用包含有关推送通知的一些最少信息的 URL 参数启动它

第 1 点按我的意愿工作。但是对于 2,我希望能够向我的应用程序发送与 1 相同的数据,并且我无法将其添加到 URL(有效负载太大)。问题是我只能在我的应用准备好接收此类消息时使用Client.postMessage...

最简单的方法是什么?

注意:我的用例是一个聊天应用程序,当收到消息时会显示推送通知,点击通知会触发应用程序并显示相应的聊天和消息。我想将消息本身的内容(在服务人员收到的推送通知中)传递给应用程序,以便它可以直接显示,而不必从后端拉出来。

【问题讨论】:

    标签: javascript progressive-web-apps service-worker


    【解决方案1】:

    这就是我解决问题的方法:

    1. SW 收到推送通知,用户点击它
    2. SW 将要发送到应用的信息存储在与唯一 ID 关联的 IndexedDB 中
    3. SW 使用带有自定义 URL + 唯一 ID 的 Client.openWindow 来打开应用程序 当应用程序启动时,它使用 id 从 IndexedDB 中提取数据

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      • 2019-01-08
      • 2021-03-01
      • 2019-09-29
      • 2018-05-24
      • 1970-01-01
      相关资源
      最近更新 更多