【问题标题】:serviceworker scope with gcm使用 gcm 的 serviceworker 范围
【发布时间】:2016-09-17 18:18:50
【问题描述】:

我有两个问题。

(对不起...我英语说得不好。请帮帮我..)

这是我的情况:

我知道 serviceworker 只在 url 注册范围内的范围内运行。 但现在我发现了奇怪的情况。

现在我正在使用 gcm 和 serviceworker 制作 pushserver。 现在我在手机上收到推送通知消息

我没有在手机上打开 chrome 所以,我没有访问作为服务工作者范围 url 的 url 页面。 所以也许所有服务工作者状态都没有从停止状态变为运行状态 虽然所有的 serviceworker 状态都是 stop,但它是在 chrome 上注册的

所以所有 serviceworker 都不会收到任何消息。

两个问题

  1. 服务工作者如何在停止状态下捕获消息。如果 serviceworker 在 chrome 上注册了,那么 chrome 就可以抓到 gcm 使用消息 gcm registration_id

    即使 chrome 没有打开,我也收到了通知消息 在手机上

    我猜。尽管服务人员停止状态并超出范围 运行 url 范围,Service Worker 可以运行的原因是因为 gcm 发送 向设备发送消息。

    我理解正确吗?没事吧?

  2. 如果关闭 chrome,我无法在电脑上收到通知。但我可以收到 如果关闭 chrome,则在移动设备上通知。

    对吗?

    我想在电脑上收到有关 chrome 关闭状态的通知我应该怎么做 做。

【问题讨论】:

    标签: notifications google-cloud-messaging service-worker


    【解决方案1】:

    据我所知,您在手机上收到通知但在 PC 上没有收到通知的原因是数据消息在 Android 上默认唤醒应用程序。但是,Chrome 目前不支持此功能。

    如 Google Cloud Messaging 中所述,使用 content_available 参数

    在 iOS 上,使用此字段表示 APNS 有效负载中的可用内容。当发送通知或消息并将其设置为 true 时,将唤醒非活动客户端应用程序。在 Android 上,默认情况下,数据消息会唤醒应用程序。 在 Chrome 上,目前不支持。

    除此之外,this part of video 关于 Web 推送通知还提到 Chrome 目前不支持 Web 推送协议

    有关更多信息,您可以查看Push Notifications on the Open Web ,这个video on Web Push Notifications (I/O 2016) 也可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2021-06-16
      • 2021-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 2020-07-31
      • 1970-01-01
      相关资源
      最近更新 更多