未收到chrome扩展离线gcm消息

时间:2016-05-29 17:34:37

标签: google-chrome-extension google-cloud-messaging chrome-gcm

我有一个在后台模式下运行的简单扩展(基本上是示例chrome客户端gcm代码)。当Chrome正在运行时,当我向扩展程序发送gcm消息时,消息收到了。如果我然后关闭chrome,将gcm消息发送到相同的reg id,然后重新启动chrome,则不会收到消息。人们可以期望在扩展开始时调用onMessage(并添加onMessage监听器)。为什么不是这样?

1 个答案:

答案 0 :(得分:0)

必须在扩展程序清单中注册

Background pages。如果您需要在后台页面中指定HTML,则可以使用页面属性执行此操作:

<强>的manifest.json

{
  "name": "My extension",
  ...
  "background": {
    "page": "background.html"
  },
  ...
}

除此之外,由于我不确定您的代码中已有什么,我不妨添加一下服务工作者。正如Implementing Push Messaging for Chrome中所讨论的,需要注册服务工作者来实现Web的推送消息。

  

这样做的原因是,当收到推送消息时,浏览器可以启动服务工作者,该服务工作者在后台运行而不打开页面,并调度事件以便您可以决定如何处理该推送消息。

要完全了解服务工作者的功能,您可以查看Introduction to Service Worker,此SO帖子中提供的解决方案 - GCM messages not getting delivered to Chrome Packaged Apps(offline mode)也可能适用于您。