回答

1

因此,爲了在應用程序處於後臺時自定義通知,正如Diego所說,目前唯一的方法是自己創建通知。將「數據」鍵添加到通知有效內容中會導致onMessageReceived()回調,您可以在其中創建任何通知和通知。

事情是,我嘗試從Firebase控制檯發送通知,而不是從API發送通知。在那裏,我無法正確地添加數據密鑰並捕獲它。從API一切正常。

+0

你可以更具體地說明**在通知有效載荷中添加數據鍵**或**僅數據鍵**嗎? –

0

我會考慮審查以下文件:在背景執行的應用程序

處理消息

https://firebase.google.com/docs/cloud-messaging/downstream#backgrounded

這看起來像你需要改變的意圖過濾器爲您FirebaseMessagingService處理的OnClick行動。

+0

感謝您的回覆,亞歷山大!我試圖自定義通知,併爲其添加一個操作。但是,click_action定義了在點擊整個通知時應該發生的事情。 – MayaB

4

firebase-cloud-messaging不提供API來向通知添加操作按鈕。

您可以要求新的功能,火力庫在這裏: https://firebase.google.com/support/contact/bugs-features/

現在你可以做的是通過server-side API 發送data-message使用自定義負載然後可以收到onMessageReceived有效負載()並生成您的自定義通知。

+0

謝謝!我的問題是我試圖從Firebase控制檯發送通知。添加「數據」鍵對我來說不起作用... – MayaB

0

假設你已經知道,你必須使用鍵只有數據I answered here, too)發送到後臺應用程序,你可以添加一個動作來通知消息建設者這樣的:

final NotificationCompat.Builder builder = new NotificationCompat.Builder(context) 
.addAction(
        R.drawable.ic_setting_light, 
        res.getString(**R.string.Your_Button_String**), 
        PendingIntent.getActivity(
          context, 
          0, 
          **Your_Intent_To_Open_When_Button_Is_Click**, 
          PendingIntent.FLAG_UPDATE_CURRENT)); 

中當然這必須在Android端處理邏輯內部。

注意:通知操作僅在Android 4.1或更高版本中受支持。