将收到的多个 Parse Push 通知折叠成一个

Collapse multiple Parse Push notifications received into one

我想将多个 Parse Push notifications 合并为一个。我查看了 collapse_key 并将其添加到有效负载中,如下所示:

Parse.Push.send({
    where: somebody,
    collapse_key: "places_push",
    data: {
      alert: "alertText",
      type: "pushType"
    }
}//...

但是在我的 Android 应用程序中,多次推送仍然没有合并为一个(即,如果我连续收到 2 条推送通知,我会在通知托盘中看到两张卡片,而不是一张)。我是否应该以某种方式在应用程序端处理这个问题(例如,在 ParsePushBroadcastReceiveronPushOpen 回调中)

确保传递给 NotificationManager 对象的通知 ID 对于同一折叠键下的每条消息都保持相同。这样,您的通知将简单地得到更新(而不是在以前的通知之外显示新通知)。参考mNotificationManager.notify代码here.

我通过重写 ParsePushBroadcastReceiver 的子类的 getNotification() 方法解决了这个问题,并在那里构建带有累积文本的通知(也就是说,如果已经显示了通知,请将上次推送收到的通知附加到那些先前通知的文本中)。为了允许多行进入通知,我按以下方式设置通知的样式:

NotificationCompat.InboxStyle inboxStyle =
                        new NotificationCompat.InboxStyle();
inboxStyle.setBigContentTitle("Details: ");
for(String s: notificationLines){
    inboxStyle.addLine(s);
}
builder.setStyle(inboxStyle);

希望对您有所帮助。