【问题标题】:notification on background firebase show dialog when apps open应用程序打开时在后台 Firebase 显示对话框上的通知
【发布时间】:2016-12-14 11:38:21
【问题描述】:

对不起我的标题,但让我解释一下。 我在我的应用程序上使用 Firebase 云消息传递。现在,当我触摸通知后,我需要运行应用程序,然后在 应用程序未运行或在后台 时显示包含通知正文和标题的对话框。

对于默认 FCM 是当应用程序未运行/在后台时,我触摸通知然后应用程序运行/转到前台。

谁能指导我处理?

【问题讨论】:

  • 当点击通知时,你会在你的启动活动中获得一个包中的通知数据,所以在启动器活动中从包中获取数据并正确使用。
  • @AkshayBhat,先生,您能详细解释一下吗?

标签: android firebase-cloud-messaging android-dialog android-background


【解决方案1】:

在后台应用中处理通知消息

当您的应用处于后台时,Android 会将通知消息定向到系统托盘。默认情况下,用户点击通知会打开应用启动器。

这包括包含通知和数据负载的消息(以及从通知控制台发送的所有消息)。在这些情况下,通知会发送到设备的系统托盘,并且数据负载会在启动器 Activity 的 Intent 的附加内容中发送

当您发送带有数据负载(通知和数据)的通知消息并且应用程序在后台时,您可以从由于用户点击通知而启动的额外意图中检索数据。

来自FCM sample,它在点击通知时启动 MainActivity:

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

编辑:
onMessageRecieved(RemoteMessage remoteMessage) 方法中,使用remoteMessage.getData() 获取服务器发送的数据,该数据返回Map<String,String>

现在创建一个Intent 并指定一个类以在单击通知时启动并在这个意图把你的通知数据。喜欢:

Intent resultIntent = new Intent(getApplicationContext(), MainActivity.class);
resultIntent.putExtra("notification_data", data.getData());

现在,当您显示通知时,将此意图传递给 pendingIntent。

当点击通知启动 MainActivity.class 时,只需获取如下数据:

Map<String,String> notificationDataMap 
      = getIntent().getSerializableExtra("notification_data");

所以你可以从地图中获取数据。

【讨论】:

  • 通知的“标题”和“正文”需要什么?因为我需要在对话框中显示标题和正文通知。
  • 谢谢你的信息先生。你拯救了我的一天:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-12
  • 2018-11-08
  • 2018-01-12
  • 1970-01-01
相关资源
最近更新 更多