簡體   English   中英

設備離線時接收所有推送通知

[英]Receive all the push notifications when devices are offline

我正在創建一個 iOS 和 Android 本機應用程序,使用 Firebase 發送推送通知。

它工作正常,但是當我關閉設備並發送一些通知時,在啟動設備后,我只收到為 iOS 發送的最后一個通知,對於 Android 也是如此。

有沒有辦法在設備離線並啟動時接收所有推送通知?

參考幾個參考:

IOS:

Apple 推送通知服務包括一個執行存儲和轉發功能的服務質量 (QoS) 組件。 如果 APNs 嘗試傳遞通知並且目標設備處於離線狀態,APNs 會將通知存儲一段有限的時間,並在設備再次可用時傳遞它。 此組件僅存儲每個設備和每個應用程序的最新通知。 如果設備處於離線狀態,發送針對該設備的通知請求會導致之前的請求被丟棄。 如果設備長時間處於離線狀態,則其在 APN 中存儲的所有通知都將被丟棄。

  • 此組件僅存儲每個設備和每個應用程序的最新通知。
  • 如果設備處於離線狀態,發送針對該設備的通知請求會導致之前的請求被丟棄。

這意味着只保留一個通知,並且發送一個新通知取代了舊通知。 所以我認為這是不可能的。

本地和遠程通知編程指南

安卓:

在 Android 和 Web/JavaScript 上,您可以指定消息的最長生命周期。 該值必須是從 0 到 2,419,200 秒(28 天)的持續時間,它對應於 FCM 存儲和嘗試傳遞消息的最長時間。 不包含此字段的請求默認最長期限為 4 周。

目前,iOS 上的通知消息不支持 time_to_live

如果設備未連接到 GCM,則消息將被存儲,直到建立連接(再次遵守折疊密鑰規則)。 建立連接后,GCM 會將所有待處理消息傳送到設備。 如果設備不再連接(例如,如果它被恢復出廠設置),消息最終會超時並從 GCM 存儲中丟棄。 默認超時為 4 周,除非設置了 time_to_live 標志。

最后,當 GCM 嘗試向設備發送消息並且應用程序被卸載時,GCM 將立即丟棄該消息並使注冊令牌無效。 以后嘗試向該設備發送消息將導致 NotRegistered 錯誤。

  • 建立連接后,GCM 會將所有待處理消息傳送到設備。
  • 如果設備不再連接(例如,如果它被恢復出廠設置),消息最終會超時並從 GCM 存儲中丟棄。
  • 默認超時為 4 周,除非設置了 time_to_live 標志。
  • 最后,當 GCM 嘗試向設備發送消息並且應用程序被卸載時,GCM 將立即丟棄該消息並使注冊令牌無效。

這意味着它應該接收待處理的消息。 除非設備恢復出廠設置或卸載。

關於 FCM 消息

消息概念和選項(雖然這已被棄用,現在建議參考上面鏈接的 FCM 消息)

暫無
暫無

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

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