簡體   English   中英

iOS- Apple推送通知從APNS重新發送

[英]iOS- Apple push notification resend from APNS

從Apple的文檔中我了解到,如果設備處於脫機狀態,APNS會保留最后一個通知,並在設備重新聯機時將其發送到設備。 是否有任何機制可以避免重發?

正確的答案是肯定的

如果使用增強型二進制格式 (包含消息標識符和到期日期格式)發送通知,則可以使用expiry參數來阻止通知存儲在APN服務器中。 這樣,僅當APN服務器首次嘗試傳送設備時設備處於聯機狀態才會傳遞通知。

到期

以秒(UTC)表示的固定UNIX紀元日期,用於標識通知何時不再有效且可以丟棄。 到期值使用網絡字節順序(大端)。 如果到期值為正,則APN嘗試至少傳遞一次通知。 指定零(或小於零的值)以請求APN根本不存儲通知

答案是否定的

以下是蘋果對此的評價,

如果APN嘗試發送通知但設備處於脫機狀態,則通知將存儲一段有限的時間,並在設備可用時傳送給設備。

僅存儲特定應用程序的最近通知。 如果在設備脫機時發送多個通知,則每個新通知都會導致先前通知被丟棄。 僅保留最新通知的這種行為稱為合並通知。

如果設備長時間保持脫機狀態,則會丟棄為其存儲的所有通知。

我同意伊蘭的觀點。

您的問題“APNS持有最后通知並在設備重新聯機時將其發送到設備”的這一部分僅在到期日期不為零時才為真。

如果您確實希望在電話上線時傳遞消息,則消息將等到“失效日期”之后才被丟棄。

APNS文件:

到期日期4個字節以秒(UTC)表示的UNIX紀元日期,用於標識通知何時不再有效且可以丟棄。 如果此值不為零,則APN會存儲通知嘗試至少傳遞一次通知。 指定零以指示通知立即過期,並且APN根本不應存儲通知

有關詳細信息,請參閱https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM