From the documentation:
thread-id
|string
| When displaying notifications, the system visually groups notifications with the same thread identifier together. For remote notifications, the value of the threadIdentifier property is set to the value of this request header.
Our push notification payloads:
{
aps = {
alert = {
body = "Leeroy J asked you: Test Push Notification";
};
badge = 12;
sound = default;
"thread-id" = 9150;
};
n = "6kQ/0x6556";
r = 9150;
}
{
aps = {
alert = {
body = "Leeroy J re: Test Push Notification";
};
badge = 13;
sound = default;
"thread-id" = 9150;
};
n = "6l8/0x6582";
p = 7197;
r = 9150;
}
Here's what it looks like in Message Center:
I expected them to be visually different than other notifications... either that or grouped together when other notifications come in between. In our testing, neither is the case.
What am I doing wrong? Or am I misunderstanding this feature?
Unfortunately, you don't get this for free. You need to create a Notifictation UI extension, and implement your own UI(in this case it's a conversation UI), and update the UI when receive new notification with same thread-id.
Edit: this may not be the correct answer, see a more comprehensive answer here.