當收件人iPhone關閉時,我看到來自Apple推送通知服務器的一些非常奇怪的行爲。這是我的場景:接收iPhone關閉時奇怪的Apple推送通知行爲
- 向蘋果發送推送通知A.在幾秒鐘內,推送通知彈出按鈕在iPhone上按預期顯示。
- 向Apple發送空白通知以取消上一個通知(之前的通知大約10秒後毫無意義,這就是爲什麼我想擺脫它)。 iPhone上沒有顯示任何內容。
- 完全關閉iPhone(不睡覺,關閉電源)。
- 向Apple發送推送通知B.等待10秒。
- 向Apple發送空白通知以取消上一個通知。等待10秒。
- 向Apple發送推送通知C.等待10秒。
- 向Apple發送空白通知以取消上一個通知。等待30秒。
- 打開iPhone。
- 約60秒後,在iPhone上顯示通知B的推送通知彈出窗口。
通知C似乎永遠不會到達。
這很奇怪!從閱讀Apple文檔,我期待只發送最新的推送通知。我希望我的空白通知將被髮送,我當然並不期待最老的未發送推送通知被髮送!
蘋果的文檔說:
蘋果推送通知服務包括服務質量(QoS)組件,其執行一個存儲和轉發功能的默認質量。如果APNS嘗試傳遞通知但設備處於脫機狀態,則QoS將存儲通知。它僅在設備上保留每個應用程序的一個通知:從該應用程序的提供商接收的最後一個通知。離線設備稍後重新連接時,QoS會將存儲的通知轉發給設備。 QoS在刪除之前會在一段有限的時間內保留通知。
有沒有人看到過這種行爲?我是否遇到某種時間窗口錯誤?應該發生什麼?
更新:
- 如果我關閉手機,併發送任何推送通知,則不會出現此問題之前,等待5〜15分鐘。在這種情況下,當我打開手機時,我沒有看到任何通知彈出窗口,儘管我不確定這是Apple是否放棄通知,或者他們的「隊列」正常工作的結果(即,保留最新的空白通知與彈出的第一個)。
- 我將通過將APNsLogging.mobileconfig放到iPhone上來進一步調查,以查看它得到的通知。
- 關閉wifi並不會改變結果。
- 我在這種情況下向蘋果公司提出了一個錯誤報告。
你是什麼意思取消上一個?發送後無法取消通知。 – erotsppa 2009-10-30 14:26:00
新的推送通知會清除iPhone上接收它們的先前通知,因此您可以通過發送新的空白通知而無需彈出消息來有效取消先前的通知。這對我來說大體上工作正常。 – 2009-12-03 21:37:50