如何将 iOS 个未读消息的推送通知分组为一个
How to group iOS push notifications for unread messages into a single one
我们在 iOS 客户端上有一个 Messenger。
当您在设备上禁用互联网时,收到很多消息并启用互联网时,设备会收到很多推送通知。我只想收到一条包含未读消息总数的推送通知。
如何从服务器端实现这一点?据我所知,APNs 的配置是从服务器完成的。还是应该从客户端完成?
我阅读了 apns-collapse-id
,它对我有帮助吗?会显示未读消息总数吗?
在 iOS 中,Apple 推送通知服务包括执行 store-and-forward 功能的服务质量组件。如果 APNs 尝试发送通知并且目标设备离线,APNs 会在有限的时间内存储通知,并在设备再次可用时发送通知。此组件仅存储每个设备和每个应用程序的最新通知。如果设备处于离线状态,则发送针对该设备的通知请求会导致先前的请求被丢弃。因此,如果设备处于离线状态,它将始终收到最新通知。
现在,如果您的设备在线并且我们收到多个设备通知 iOS 默认情况下按应用程序对通知进行分组,因此如果您只需要在应用程序级别对所有通知进行分组,您不需要需要做任何事情,因为它是由 OS 自己完成的。但是,如果您需要根据某些主题对通知进行分组 iOS 也对自定义分组有很好的支持。更多关于自定义分组的内容可以参考:https://developer.apple.com/videos/play/wwdc2018/711/
I read about apns-collapse-id, will it help me? Will it display the
total amount of unread messages
apns-collapse-id 用于创建应该被更新的通知替换的通知。因此,如果设备在线并收到多个具有相同 apns-collapse-id 的推送通知,则它会丢弃之前的通知并在通知中心显示新的通知。所以通知中心永远只有一条通知,给定apns-collapse-id。因此,在您的情况下,您可以通过在请求 header 中设置 apns-collapse-id 并始终在通知中发送更新的未读消息计数来利用它 body,那么在这种情况下,通知中心将始终只有一个通知,服务器将一次又一次地用新发送的计数替换该通知。确保为所有通知设置相同的 apns-collapse-id。有关 apns-collapse-id 的更多信息,您可以参考:
https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/
我们在 iOS 客户端上有一个 Messenger。
当您在设备上禁用互联网时,收到很多消息并启用互联网时,设备会收到很多推送通知。我只想收到一条包含未读消息总数的推送通知。
如何从服务器端实现这一点?据我所知,APNs 的配置是从服务器完成的。还是应该从客户端完成?
我阅读了 apns-collapse-id
,它对我有帮助吗?会显示未读消息总数吗?
在 iOS 中,Apple 推送通知服务包括执行 store-and-forward 功能的服务质量组件。如果 APNs 尝试发送通知并且目标设备离线,APNs 会在有限的时间内存储通知,并在设备再次可用时发送通知。此组件仅存储每个设备和每个应用程序的最新通知。如果设备处于离线状态,则发送针对该设备的通知请求会导致先前的请求被丢弃。因此,如果设备处于离线状态,它将始终收到最新通知。
现在,如果您的设备在线并且我们收到多个设备通知 iOS 默认情况下按应用程序对通知进行分组,因此如果您只需要在应用程序级别对所有通知进行分组,您不需要需要做任何事情,因为它是由 OS 自己完成的。但是,如果您需要根据某些主题对通知进行分组 iOS 也对自定义分组有很好的支持。更多关于自定义分组的内容可以参考:https://developer.apple.com/videos/play/wwdc2018/711/
I read about apns-collapse-id, will it help me? Will it display the total amount of unread messages
apns-collapse-id 用于创建应该被更新的通知替换的通知。因此,如果设备在线并收到多个具有相同 apns-collapse-id 的推送通知,则它会丢弃之前的通知并在通知中心显示新的通知。所以通知中心永远只有一条通知,给定apns-collapse-id。因此,在您的情况下,您可以通过在请求 header 中设置 apns-collapse-id 并始终在通知中发送更新的未读消息计数来利用它 body,那么在这种情况下,通知中心将始终只有一个通知,服务器将一次又一次地用新发送的计数替换该通知。确保为所有通知设置相同的 apns-collapse-id。有关 apns-collapse-id 的更多信息,您可以参考: https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/