我正在研究使用PushPlugin处理推送通知的Cordova Android应用程序 . 应用程序打开时,应用程序将正确接收推送通知 . 但是,如果应用程序未打开,则不会收到(或至少处理)推送通知 .
考虑到插件具有专门处理接收推送通知的代码,这有一定意义 . 对我来说没有多大意义的是为什么这个代码甚至存在 . 在构建这个应用程序之前,我假设操作系统有一些接收任何/所有通知的排队系统 .
-
Android中是否存在处理所有应用程序的推送通知的通知队列,或者每个应用程序是否需要自行处理通知 .
-
Android应用可以在关闭时处理推送通知吗?
-
Cordova Android应用程序可以在关闭时处理推送通知吗?
2 回答
在Google Cloud Messaging(PushPlugin使用的推送通知机制)中,每个应用程序都决定如何处理通知 . 当推送通知到达设备时,GCM触发收件人应用程序中的BroadcastReceiver,并且应用程序负责处理通知数据 .
Android应用可以在关闭时处理推送通知,除非用户明确停止这些通知(在这种情况下,在用户再次重新启动之前,通知不会到达应用) . 如果用户通过切换到另一个应用程序或转到主屏幕而离开前台,则仍然可以接收和处理通知 .
是的 . 根据您发布的PushPlugin链接,似乎他们可以 . 当应用程序不在前台时,通知的处理方式会有所不同 - 通知栏会添加通知,当点击通知栏时,它会打开应用程序 .
使用PushPlugin,当向GCM发送推送通知时(对于GCM将它们发送到设备),必须在JSON消息中的有效负载值中的消息键值对之后包含一个msgcnt键值对,如下所示:
或者,当应用程序在后台时,PushPlugin将不会处理通知 . 它与插件中编写GCMIntentService.java文件的方式有关 .