Reputation: 4484
So, when sending a notification to an Android device you can give a tag property:
"notification": {
"title": title,
"body": message,
"sound": sound,
"tag": "STRING_TO_GROUP_NOTIFICATIONS_BY"
}
This groups notifications with the same tag together so that they don't make a mess of the users notifications when there are a lot and only shows the newest one.
This is really useful in say, a chat app, with multiple channels that receive lots of messages so you can group by channel and minimize the amount of noise in the user's notifications.
Anways...
Is there any way to do this with iOS?
Upvotes: 10
Views: 9216
Reputation: 3856
According to the documentation tag
would not group but replace notifications.
tag
- Identifier used to replace existing notifications in the notification drawer. If not specified, each request creates a new notification. If specified and a notification with the same tag is already being shown, the new notification replaces the existing one in the notification drawer.
The apns
header serving the same purpose is apns-collapse-id
But the question body is describing grouping and to achieve that on iOS you can use thread-id
- notifications with the same thread-id
are stacked together with the latest on top
To specify thread-id
using the REST API you should put the value under payload: apns.payload.aps.thread-id
While to specify an apns-collapse-id
it should be added under headers: apns.headers.apns-collapse-id
There are some more details in this SO answer, describing thread-id
, apns-collapse-id
and collapsibleKey
, what each does and sample usage
Upvotes: 3
Reputation: 37778
Update: apns-collapse-id
is already available for FCM v1:
FCM provides a specific set of delivery options for messages sent to Android devices, and allows for similar options on iOS and web. For example, "collapsible" message behavior is supported on Android via FCM's collapse_key, on iOS via
apns-collapse-id
, and on JavaScript/Web via Topic. For details, see descriptions in this section and related reference documentation
The tag
parameter is currently only supported for Android (which you probably already know which is why you're looking for iOS) and there is currently no counterpart for it in iOS.
From my answer here:
In order to bundle notifications in iOS, you'll have to specify a thread-id
:
Provide this key with a string value that represents the app-specific identifier for grouping notifications. The system groups notifications with the same thread identifier together in Notification Center and other system interfaces. For local notifications, this key corresponds to the threadIdentifier property of the UNNotificationContent object.
However, there is currently no parameter counterpart for thread-id
in FCM. What you could try and do is make use of a data
message payload and specify the thread-id
as a custom key-value pair.
Some possibly helpful posts:
Upvotes: 9