将收到的多个 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 条推送通知,我会在通知托盘中看到两张卡片,而不是一张)。我是否应该以某种方式在应用程序端处理这个问题(例如,在 ParsePushBroadcastReceiver 的 onPushOpen 回调中)
确保传递给 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);
希望对您有所帮助。
我想将多个 Parse Push notifications 合并为一个。我查看了 collapse_key
并将其添加到有效负载中,如下所示:
Parse.Push.send({
where: somebody,
collapse_key: "places_push",
data: {
alert: "alertText",
type: "pushType"
}
}//...
但是在我的 Android 应用程序中,多次推送仍然没有合并为一个(即,如果我连续收到 2 条推送通知,我会在通知托盘中看到两张卡片,而不是一张)。我是否应该以某种方式在应用程序端处理这个问题(例如,在 ParsePushBroadcastReceiver 的 onPushOpen 回调中)
确保传递给 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);
希望对您有所帮助。