这取决于最初发送通知的服务。该服务(即支持Facebook或任何其他应用程序的后端系统)通过基于HTTP/2的API将其通知发送到Apple的推送通知服务。在该API中,它设置了一个名为"apns-expiration"的参数,该参数确定设备再次联机时,Apple的推送通知服务将排队等待传递通知的时间。
"apns-expiration"参数可以设置为0,这意味着根本不会排队。
如果将其设置为大于0的数字,表示日期和时间(以UTC时间1970年1月1日午夜起的秒数),则消息将从排队中移除。
最后,服务可以选择不发送该参数,或者将其发送为-1(负数)。这意味着应尽可能长时间排队等待。
最大排队时间并非无限,而是由Apple选择,并且似乎没有记录在任何地方。然而,PC World在2009年描述了当时的最长时间为28天:
https://www.pcworld.com/article/167652/the_limits_of_apples_push_notification_for_the_iphone.html
- jksoegaard1根据https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server/sending_notification_requests_to_apns/,apns-expiration的值是以秒为单位表示的UNIX纪元时间(UTC)。 - Joseph Sheedy