仅接收来自GCM的最后一次背景静默推送通知

时间:2016-08-10 12:56:06

标签: android background push-notification google-cloud-messaging silentpush

我正在开发一个接收推送通知的Ionic 2应用程序。它必须接收静音背景通知,这意味着通知在系统通知区域中不可见。相反,当应用程序打开时,通知会发送到应用程序并处理收到的数据。它有效,只是它只收到应用程序关闭时发送的最后一个通知。

可能它缺少GCM消息配置。

预期行为

  

接收多个背景静音推送通知。

实际行为

  

仅接收最后一次后台推送静音通知。

重现场景(包括但不限于)

重现步骤
  

在应用关闭时发送两条或更多静音背景消息。   打开应用程序。收到时只收到最后一个通知   监听器。

平台和版本
  

Android 5.1.1 / 6.0

(Android)什么设备供应商
  

谷歌

Cordova CLI版和cordova平台版
  

cordova --version 6.2.0 cordova

     

平台版本android 5.1.1

插件版本
  

cordova插件版本| grep phonegap-plugin-push 1.7.4

样本推送数据有效负载
{
                "delay_while_idle": true,
                "priority": "high",

                "data": {
                    "content-available": "1",                   
                    "notId": Date.now(),
                    "silenttitle": 'some title',
                    "silentmessage": 'some message'
                }
}

我如何收到发送到我应用的所有无声通知?

2 个答案:

答案 0 :(得分:1)

根据此SO question,在某些情况下,静音通知可能无法传送到设备。例如,如果启用了飞行模式,在关闭它后,您将不会收到所有丢失的通知,而是只接收最后一个。在大多数情况下,将提供包含正文和内容的推送通知。

我在这篇blog中也看到过收到了一些通知,但并非全部收到通知。通常,如果您同时发送多个推送通知,则只会收到少数推送通知。这是预期的行为。 APNS使用推送应用程序为每个设备维护QoS(服务质量)队列。此队列的大小为1,因此如果您发送多个通知,则会覆盖最后一个通知。

希望这有帮助!

答案 1 :(得分:0)

https://github.com/firebase/quickstart-android/tree/master/messaging试试这个。我使用它,我能够收到推送通知。