android - Android GCM 推送通知是如何处理的?

标签 android cordova push-notification google-cloud-messaging

我正在开发一个 Cordova Android 应用程序,该应用程序使用 PushPlugin 处理推送通知。当应用程序打开时,应用程序将正确接收推送通知。但是,如果应用程序未打开,则不会收到(或至少处理)推送通知。

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

  • Android 中是否存在通知队列来处理所有应用的推送通知,还是每个应用都需要自行处理通知。
  • Android 应用在关闭时可以处理推送通知吗?
  • Cordova Android 应用程序可以在关闭时处理推送通知吗?

最佳答案

  1. 在 Google Cloud Messaging(PushPlugin 使用的推送通知机制)中,每个应用程序决定如何处理通知。当推送通知到达设备时,GCM 会在接收方应用程序中触发 BroadcastReceiver,该应用程序负责处理通知数据。

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

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

关于android - Android GCM 推送通知是如何处理的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21004336/

相关文章:

android - 单击通知区域中的消息时未打开应用程序

android - 如何将 AutoCompleteTextView 的值从下拉选择的值分配给另一个字符串

android - 如何更改 Xamarin Android Player 屏幕大小

Cordova:本地文件系统未定义

android - Cordova 错误仅适用于 Android : com. android.dex.DexException:多个 dex 文件定义 Landroid/support/annotation/AnimRes;

android - Apprtc 与 PushNotificaiton

android - 屏幕外的文本android约束布局

android - 没有 google-services.json,Google 服务插件无法运行

javascript - 从企业防火墙后面调用 RESTful 服务时出现 CORS 错误

ios - 我们应该在服务器上使用哪个文件进行推送通知,.pem 还是 .p12?