我的問題是有關應用程序終止時iOS和Android設備上的標準遠程推送通知。遠程推送通知和終止的應用程序
簡而言之:
有不同的應用程序的狀態/模式:
- 前景
- 背景
- 懸浮
- 終止
有不同的通知類型:
- 普通通知(包含警報信息)
- 數據/靜音通知(包含數據有效載荷)
- 混合通知(警報和數據)
對於前景,背景和掛起模式是清晰並且在iOS和Android上運行得非常好。取決於通知類型,如文檔中所述的預期行爲。
但是,當應用程序終止時,iOS和Android的遠程通知似乎存在本質區別。
對於iOS:如果應用程序已終止(未掛起),則iOS系統會收到標準的遠程通知並顯示在通知中心。沒有委託被調用,並且應用程序未被置於後臺模式(即使啓用了遠程推送後臺模式)。當用戶點擊通知時,應用程序啓動,並通過適當的代表提供通知對象。總結:即使應用程序被強制退出,用戶也可以在自己的設備上收到推送通知。
對於Android:當應用程序終止時,標準的遠程推送通知不會顯示在通知中心。 (一旦應用程序啓動並投入後臺通知被接收並正確顯示。
,因爲只有前臺和後臺模式提到的文件是非常不清楚。 https://firebase.google.com/docs/cloud-messaging/concept-options https://firebase.google.com/docs/cloud-messaging/android/receive
有許多討論得出這樣的結論:應用程序強制關閉後,系統托盤(通知中心)中不顯示遠程通知,但關於設備重新啓動後未啓動應用程序的預期行爲的討論相當少。
但是,也在討論中即使應用程序已被終止(Android push notifications not being received when app closed),系統托盤中也始終顯示遠程推送。這與iOS的行爲是一樣的。
爲了說明問題:即使應用程序已終止/強制退出/未運行,是否可以在Android上向設備的系統托盤發送遠程推送通知?
我不明白你的答案,你的意思是,如果我強迫退出我的android應用程序(設置 - >應用程序 - > MyApp - >強制停止),我仍然可以收到推送消息?或者,也許你的手機無聲地強制退出後臺模式的應用程序? – lelloman
據我所知,如果您退出應用程序或系統將其殺死,這並沒有什麼不同。如果它已退出/終止/未運行,則設備會在Google電話和其他許多設備上收到推送通知。但在我的情況下(手動強制退出應用程序),華爲P8的默認電池節能設置禁止了此行爲。在Google手機上,它在默認設置下運行良好。 –
感謝您的回覆,我所經歷的是,如果應用程序已被迫停止(從設置)沒有通知顯示。強制停止與非運行不同,強制停止時,應用程序不應該執行任何操作,直到用戶主動啓動它爲止。你確認你可以看到通知,即使應用程序被強制停止? – lelloman