0

我有一個連接到FCM(firebase雲消息)的android應用程序用於發送通知。但是,當應用程序處於後臺時,它不會應用 自定義通知。我認爲這是因爲它沒有輸入OnMessageReceived方法。這是什麼解決方案?當我在某處閱讀時,可以使用HTTP Api完成,但我不確定如何去解決它?請幫助,謝謝。將通知推送到Android應用程序

回答

1

是否調用方法onMessageReceived取決於通知有效負載。

請參閱FCM文檔here中的「處理消息」部分。

處理消息

onMessageReceived提供了大多數的消息類型,但下列情況除外:交付

通知消息時,您的應用程序是在後臺。在這種情況下,通知將傳遞到設備的系統托盤。用戶點擊通知會默認打開應用程序啓動器。 帶有通知和數據有效負載的消息,包括背景和前景。在這種情況下,通知將傳遞到設備的系統托盤,並且數據有效負載將以您啓動程序活動的目的附加內容傳遞。

綜上所述,如果應用程序是在前景,然後onMessageReceived總是被調用。如果應用程序位於後臺,則僅在通知有效負載僅爲data時纔會調用onMessageReceived

所以要回答你的問題,如果你每次都必須有onMessageReceived,無論應用程序處於前景還是後臺狀態,那麼設置你的通知載荷只包含data

+0

如何將通知有效載荷設置爲僅包含數據? –

+0

你的意思是,如果我通過我的應用程序服務器在json代碼中發送通知,比我應該使用數據對象,但是,如果我通過FCM直接發送消息而不使用服務器,那麼應​​如何將有效負載設置爲僅數據, 請回答 。 –

+0

@DivyangShah請參閱https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages。它詳細介紹了消息類型以及如何發送數據消息。 – veritas1

相關問題