如何在用户点击时获取Firebase通知正文?

时间:2016-08-09 04:42:28

标签: android firebase firebase-cloud-messaging

当用户在Android中点击Firebase通知时,您可以获得以下密钥

  • google.sent_time(长)
  • from(字符串)
  • google.message_id(String)
  • collapse_key(String)

使用以下代码:

if (getIntent().getExtras() != null) {
            for (String key : getIntent().getExtras().keySet()) {
                String value = getIntent().getExtras().getString(key);
                Log.d(TAG, "Key: " + key + " Value: " + value);
            }
        }

但是,我需要从邮件中获取Body。有可能吗?

2 个答案:

答案 0 :(得分:2)

如果应用程序在后台,则通知有效负载中定义的值实际上是为了生成通知。如果要访问消息的通知有效负载中定义的值,则应在数据有效负载中重复这些值,这样当用户点击通知时,您将能够从意图的额外内容中检索它们。类似的东西:

{
  "to": "/topics/sometopic",
  "notification": {
    "title": "some title",
    "body": "some body"
  },
  "data": {
    "noti_title": "some title",
    "noti_body": "some body",
    "other_key": "other value"
  }
}

答案 1 :(得分:-1)

您必须手动处理通知,只需按照this guide

要获取通知正文,请使用remoteMessage.getNotification().getBody()方法调用onMessageReceived

然后在显示通知时(查看this file),将身体添加为意图的额外内容。

intent.putExtra("body", notificationBody);
intent.putExtra("title", notificationTitle);

希望这会有所帮助:)