点击FCM通知消息时如何获取消息正文?

时间:2016-08-10 07:46:13

标签: android android-notifications firebase-cloud-messaging firebase-notifications

当应用程序处于后台时,通知消息将通过通知发送,当通知点击时,应用程序启动,我该如何获取消息正文?

意图是:

    Bundle[{google.sent_time=1470813025421, from=568540028909, 
google.message_id=0:1470813025865549%31bd1c9631bd1c96,
 collapse_key=com.google.firebase.quickstart.fcm}]

没有意图的消息体,只有消息ID! 谢谢!

2 个答案:

答案 0 :(得分:4)

试试这个

  @Override
        public void onMessageReceived(RemoteMessage remoteMessage) {
            // TODO(developer): Handle FCM messages here.
            // If the application is in the foreground handle both data and notification messages here.
            // Also if you intend on generating your own notifications as a result of a received FCM
            // message, here is where that should be initiated. See sendNotification method below.
            Log.d(TAG, "From: " + remoteMessage.getFrom());
            Log.d(TAG, "From: " + remoteMessage.getData().get("message"));
    //        Log.d(TAG, "Notification Message Body: " + remoteMessage.getNotification().getBody());
// if you sending data with custom key
 Log.d(TAG, "Notification Message of custom key: " +remoteMessage.getData().get("your key"));
            sendNotification(remoteMessage.getData().get("message"));
        }

答案 1 :(得分:4)

我很抱歉,但你想做的事情是不可能的。

目前无法访问中的(正文,标题,图标...)信息 来自通知打开时启动的活动的notification-message

您可以改为访问通知消息的数据组件。

一种可能的替代方法是使用data-message消息并创建自己的自定义通知和自定义逻辑。

在此处查看notification-message vs data-message
https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

PS:如果您可以通过firebase支持页面报告功能请求,那将非常有用 通过这种方式,团队可以正确地确定未来功能的优先级。 https://firebase.google.com/support/contact/bugs-features/