1

我有與FCM的問題,由火力地堡團隊記載:火力地堡click_action不工作

click_action:表示與該通知用戶點擊相關的動作。設置此選項時,用戶單擊通知時將啓動具有匹配意圖過濾器的活動。

我知道已經討論過了,但根據我的理解,這應該可以從我從文檔中理解的Firebase控制檯中實現。它並沒有說它的數據消息清楚地表明它是通知消息領域,據我所知,這些是Firebase控制檯發送的消息。

任何人都可以澄清這一點。 謝謝!

回答

3

click_action目前尚未透過Firebase控制檯。

您說控制檯發送通知消息是正確的,但它不允許您設置通知消息的click_action字段。要使用click_action,您必須使用所有通知消息字段可用的REST API發送通知消息。

請注意,通過控制檯添加的自定義數據成爲伴隨通知消息的數據有效載荷中的鍵/值對。例如結構:

{ 
    "to": <topic>, 
    "notification": { 
    <notification payload> 
    }, 
    "data": { 
    <data payload, console custom data key/value pairs go here> 
    } 
} 

所以click_action是通知有效載荷的一部分,但必須使用REST API在這一點上使用它。我知道這不是很清楚,我會研究可能的文檔更新以使其更清楚。

2

目前控制檯似乎不支持click_action。在編寫Firebase控制檯中的通知時,您必須使用API​​觸發通知或嘗試通過高級部分中的自定義數據字段傳遞click_action參數(我迄今爲止尚未嘗試此操作,但可能會起作用)。

+0

我已經嘗試通過自定義數據發送該參數,但不會考慮從清單中的意圖過濾器......我所能做的就是獲取啓動器活動中的意圖並使用此參數重定向到相應的活動......但它是一個糟糕的解決方案 – Dieguinho

+0

但它是您從控制檯獲得的最好解決方案。控制檯遠非完美,現在有很多缺失的功能 – crysxd

0

您可以使用REST服務的下面的代碼片段從RESTClient實現發送Push消息(郵差)

Method : POST 
URL: https://fcm.googleapis.com/fcm/send 
Header: 
Authorization : key=<FCM SERVER LEGACY KEY> 
Content-Type: application/json 

Body: 

{ 

     "notification": { 
      "title": "Firebase notification", 
      "message": "I am firebase notification. you can customise me. enjoy", 
      "click_action": "OPEN_ACTIVITY", 
      "sound":"default", 

     } 
    , 
    "to": "<Your device FCM Token - Getting it from the FirebaseInstanceIdService>" 
} 

在您的清單文件 - 包括該意圖過濾器來匹配Click_action值: 例:

<activity 
      android:name=".ui.NotificationActivity" 
      > 

     <intent-filter> 
      <action android:name="OPEN_ACTIVITY" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     </activity>