分组fcm通知,如whatsapp但允许多个组通知

时间:2017-04-26 10:45:25

标签: android firebase push-notification android-notifications firebase-cloud-messaging

我不确定这是否完全有可能,但我会说明我的要求。如果有可能,请帮助我弄清楚如何做到这一点。

假设我有一个类似Android的应用程序库。当用户喜欢或评论图库中的照片时,我们会使用下面给出的代码触发fcm通知

    value++;
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(R.drawable.notification)
            .setLargeIcon(rawBitmap)
            .setContentTitle("MyApp")
            .setContentText(ContentText)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setDefaults(Notification.DEFAULT_SOUND)
            .setStyle(new NotificationCompat.BigTextStyle().bigText(ContentText))
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(value, notificationBuilder.build());

通过添加InboxStyle,我们可以将通知分组为一个,只需增加计数。(例如,您有5个通知)

      NotificationCompat.InboxStyle inboxStyle =
                new NotificationCompat.InboxStyle();
            // Sets a title for the Inbox in expanded layout
            inboxStyle.setBigContentTitle("Title - Notification");
            inboxStyle.setSummaryText("You have "+value+" Notifications.");
            notificationBuilder.setStyle(inboxStyle);

但我的要求就像单独分组照片一样。如果用户为3张照片分别留下2条评论。我需要列出三组通知。你更喜欢这张照片有2条评论,其中2条评论等等。

如果有帮助,我会收到照片的唯一ID。

How long will the id be retained?

我们假设用户对ID为001的照片发表了2条评论,并且合作伙伴会以组的形式收到通知。

What happens when the user drops another 2 comments on photo with id 002?
Will there be 2 groups?

因为ID为001的一组通知保持不变。

1 个答案:

答案 0 :(得分:0)

我会使用TAG参数。对于每组消息,您应使用不同的TAG。

例如:

消息1)

{
    "notification": {
        "title": "PhotoApp: photo 123",
        "body": "You have 1 notification",
        "click_action" : "OPEN_MAINACTIVITY",
        "icon": "ic_launcher",
        "color": "#ffffff"
        "tag": "photo123"
    },
    "registration_ids":[
        "--your_id--"
    ]
}

消息2)

{
    "notification": {
        "title": "PhotoApp: photo ABC",
        "body": "You have 1 notification",
        "click_action" : "OPEN_MAINACTIVITY",
        "icon": "ic_launcher",
        "color": "#ffffff"
        "tag": "photoABC"
    },
    "registration_ids":[
        "--your_id--"
    ]
}

消息3)

{
    "notification": {
        "title": "PhotoApp: photo 123",
        "body": "You have 2 notifications",
        "click_action" : "OPEN_MAINACTIVITY",
        "icon": "ic_launcher",
        "color": "#ffffff"
        "tag": "photo123"
    },
    "registration_ids":[
        "--your_id--"
    ]
}

这将仅显示2个通知警报。一个用于Photo123,显示有2个通知(最后一条消息),另一个用于PhotoABC,显示只有1个通知。

这里最重要的是TAG参数。它会根据您的需要对通知进行分组,

希望我明确表示能帮到你。

一些有用的链接:

FCM Documentation

Similar SO question