在 Android 托盘上显示 Firebase 通知数据消息

Posted

技术标签:

【中文标题】在 Android 托盘上显示 Firebase 通知数据消息【英文标题】:Display firebase notification data-message on Android tray 【发布时间】:2017-03-28 16:11:04 【问题描述】:

我需要使用 Firebase 的不可折叠通知。为此,我正在使用这样的数据消息:


 "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
 "data" : 
   "Nick" : "Mario",
   "body" : "great match!",
   "Room" : "PortugalVSDenmark"
  ,

此消息在 onMessageReceived() 方法中进行解释。 我仍然想在托盘中显示此数据消息,就像系统自动显示通知消息一样。

如何实现这一目标?我找不到这方面的文档。

谢谢!

【问题讨论】:

它是json 所以解析它 【参考方案1】:

您可以通过调用RemoteMessage.getData(),然后调用.get("<KEY_HERE>"),从onMessageReceived() 中的数据负载中检索值。像这样:

public void onMessageReceived(RemoteMessage remoteMessage) 
        super.onMessageReceived(remoteMessage);
        Log.d(TAG, "onMessageReceived()");

        // Check if message contains a data payload.
        if (remoteMessage.getData().size() > 0) 
            Log.d(TAG, "Message data payload: " + remoteMessage.getData());

            String dataTitle = remoteMessage.getData().get("data_title");
            String dataBody = remoteMessage.getData().get("data_body");

            sendNotification(dataTitle, dataBody);

然后你必须自己build and display the Notification。像这样:

private void sendNotification(String title, String body) 
        Notification notif = new NotificationCompat.Builder(this)
                .setSmallIcon(R.mipmap.ic_launcher)
                .setContentTitle(title)
                .setContentText(body)
                .build();

        NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this);
        notificationManager.notify(0, notif);

【讨论】:

以上是关于在 Android 托盘上显示 Firebase 通知数据消息的主要内容,如果未能解决你的问题,请参考以下文章

Flutter Firebase:抬头通知未在后台显示

从托盘中删除 Firebase 通知(Android、Unity SDK)

当应用程序从多任务托盘停止时,Android 应用程序未收到 Firebase 通知

android firebase reg id recived但通知未显示在手机显示屏中

Flutter 应用程序的 FCM 通知未显示在 iOS 系统托盘中

React-Native - Firebase 云消息传递 - 如果从托盘打开则没有事件