离子Android通知堆叠

时间:2016-08-08 15:44:28

标签: cordova ionic-framework push-notification

问题

发送到Android设备时,通知不会堆叠在托盘中,而是覆盖属于同一应用程序的先前未读通知。

发送到Ionic的通知有效负载。

{  
   "send_to_all":true,
   "profile":"dev",
   "notification":{  
      "title":"Title",
      "message":"Test Message 2!",
      "android":{  
         "collapseKey":true,
         "stack":4,
         "payload":{  
            "type":"annoucement"
         },
         "sound":"default"
      }
   }
}

收到通知对象(使用adb logcat在本地查看):

{  
   "sound":"default",
   "title":"Title",
   "message":"Test Message 2!",
   "additionalData":{  
      "payload":{  
         "type":"annoucement"
      },
      "google.message_id":"0:1470668857644329%e03d0952f9fd7ecd",
      "collapse_key":"do_not_collapse",
      "foreground":true
   }
}

我还尝试按照推送插件文档中的建议设置notId,并发送了多个具有唯一notId的通知,如下所示:

INPUT to ionic API:

{  
   "send_to_all":true,
   "profile":"dev",
   "notification":{  
      "title":"Title",
      "message":"Test Message 2!",
      "android":{  
         "collapseKey":true,
         "stack":4,
         "payload":{  
            "type":"annoucement"
         },
         "sound":"default",
        "data": {
            "notId": 2
        }
      }
   }
}

在logcat中看到的输出

{  
   "sound":"default",
   "title":"Title",
   "message":"Test Message 2!",
   "additionalData":{  
      "payload":{  
         "type":"annoucement"
      },
      "data":{  
         "notId":2
      },
      "google.message_id":"0:1470670019771364%e03d0952f9fd7ecd",
      "coldstart":false,
      "collapse_key":"do_not_collapse",
      "foreground":false
   }
}

正如你所看到的那样,没有迹象表明在这里堆叠如此有意义,因为它不起作用,任何人都可以指出我做错了什么或者它实际上是一个错误。

1 个答案:

答案 0 :(得分:0)

如果您发送带有“collapse_key”的通知,然后使用具有相同值的collapse_key发送新通知,则gcm(服务器)会覆盖旧通知并仅发送最新通知。所以只需删除“collapse_key”字段。

您可以通过阅读“可折叠信息”here

获取有关该主题的更多信息