首页 文章

如何处理Android GCM推送通知?

提问于
浏览
2

我正在研究使用PushPlugin处理推送通知的Cordova Android应用程序 . 应用程序打开时,应用程序将正确接收推送通知 . 但是,如果应用程序未打开,则不会收到(或至少处理)推送通知 .

考虑到插件具有专门处理接收推送通知的代码,这有一定意义 . 对我来说没有多大意义的是为什么这个代码甚至存在 . 在构建这个应用程序之前,我假设操作系统有一些接收任何/所有通知的排队系统 .

  • Android中是否存在处理所有应用程序的推送通知的通知队列,或者每个应用程序是否需要自行处理通知 .

  • Android应用可以在关闭时处理推送通知吗?

  • Cordova Android应用程序可以在关闭时处理推送通知吗?

2 回答

  • 2
    • 在Google Cloud Messaging(PushPlugin使用的推送通知机制)中,每个应用程序都决定如何处理通知 . 当推送通知到达设备时,GCM触发收件人应用程序中的BroadcastReceiver,并且应用程序负责处理通知数据 .

    • Android应用可以在关闭时处理推送通知,除非用户明确停止这些通知(在这种情况下,在用户再次重新启动之前,通知不会到达应用) . 如果用户通过切换到另一个应用程序或转到主屏幕而离开前台,则仍然可以接收和处理通知 .

    • 是的 . 根据您发布的PushPlugin链接,似乎他们可以 . 当应用程序不在前台时,通知的处理方式会有所不同 - 通知栏会添加通知,当点击通知栏时,它会打开应用程序 .

  • 0

    使用PushPlugin,当向GCM发送推送通知时(对于GCM将它们发送到设备),必须在JSON消息中的有效负载值中的消息键值对之后包含一个msgcnt键值对,如下所示:

    {
     "GCM":"{\"data\":{\"message\":\"hello\",\"msgcnt\":\"1\"}}"
    }
    

    或者,当应用程序在后台时,PushPlugin将不会处理通知 . 它与插件中编写GCMIntentService.java文件的方式有关 .

相关问题