我有一个简单的扩展运行在后台模式(基本上是示例铬客户端gcm代码)。当我运行chrome时,当我向扩展程序发送gcm消息时,消息收到的很好。如果我然后关闭chrome,发送gcm消息到相同的reg id,然后重新启动chrome,则不会收到消息。人们会期望onMessage在扩展开始时被调用(并且添加onMessage监听器)。为什么不是这种情况?铬扩展离线gcm消息没有收到
0
A
回答
0
Background pages必须在扩展清单中注册。如果你需要在你的后台页面指定HTML,你可以做,使用页面属性:
manifest.json的
{
"name": "My extension",
...
"background": {
"page": "background.html"
},
...
}
除此之外,因为我不知道你已经在你的代码中,我也可以添加关于服务工作者。如在Implementing Push Messaging for Chrome中所讨论的,需要注册服务工作者来实现针对网络的推送消息。
这样做的原因是:在收到推送消息时,浏览器可以启动一个服务人员,它在后台运行,而不需要页面被打开,并分派事件,这样就可以决定如何处理推送消息。
要充分了解服务工作者的功能,你可能会经历Introduction to Service Worker并在此SO后给出的解决方案 - GCM messages not getting delivered to Chrome Packaged Apps(offline mode)可能会为你工作了。
相关问题
- 1. GCM消息没有收到
- 2. GCM没有收到短消息
- 3. 当我离开应用程序时没有收到GCM消息
- 4. 消息传递铬扩展
- 5. 使用GCM,没有错误,但没有收到消息
- 6. 铬扩展消息传递没有响应 - 告别:undefined
- 7. Tigase和xmpp,第一个离线消息没有收到
- 8. 铬扩展消息传递不工作在铬://设置,铬://扩展页
- 9. Delphi线程没有收到消息
- 10. 本地消息响应扩展铬
- 11. 铬扩展没有注入Javascript到iframe
- 12. GCM推送通知设备没有收到消息
- 13. 设备没有收到来自Google GCM的消息
- 14. 当收到消息时,GCM没有唤醒设备
- 15. SQSlistener没有收到消息
- 16. 没有收到C2DM消息
- 17. 我从gcm收到消息ID。但我没有在模拟器上收到
- 18. GCM消息接收订单
- 19. GCM应用程序未收到消息
- 20. 模拟器只收到GCM消息?
- 21. GCM在2.3.6中没有收到消息,但在4.1.2中没有问题
- 22. 铬扩展从内容脚本发送消息到
- 23. 谷歌铬扩展消息背景到上下文
- 24. Tigase:有时我收到两次离线消息
- 25. 收听Prosody离线消息目录
- 26. 用Quickblox接收离线消息
- 27. 发送GCM后收到空推送消息上传消息
- 28. 铬扩展flickr没有显示图像
- 29. MySQL没有收到信息。使用MySQLi扩展
- 30. 通过本地消息从Chrome扩展接收消息
这是一个后台脚本,在清单中设置了“背景”权限。我对使用服务工作者不感兴趣,因为它不是一个网页或应用程序,它是一个扩展,我只使用gcm。另一个链接没有帮助。您可以在linkymclinkface.com上查看并查看扩展代码。如果浏览器打开,则收到的邮件正常。如果浏览器关闭并向其发送消息,则当浏览器重新打开时,不会收到“脱机”消息。浏览器启动时,onMessage事件不会针对“离线”gcm消息触发。 – 2fours