2016-07-12 2 views
2

Я отправляю сообщения в свое приложение из Консоли, и мне удалось настроить приложение так, как я хочу, когда он находится в фоновом режиме. Таким образом, в основном есть уведомление, показанное SDK, и когда пользователь забирает его и приложение запускается, у меня есть некоторые пользовательские поля данных, которые можно использовать для создания диалогового сообщения.Уведомление Firebase onMessageReceived показывает то же уведомление, что и при приложении в фоновом режиме

Поскольку я также хочу приложение реагировать, когда на переднем плане я добавил службу, и я заметил, что RemoteMessage также содержит getNotification() метод, который возвращает RemoteMessage.Notification, который я полагаю используется SDK, чтобы показать уведомление, когда приложение в фоновом режиме.

Есть ли простой способ просто использовать полученное уведомление и отображать его так же, как когда приложение находится в фоновом режиме?

+0

[это] (http://stackoverflow.com/a/37845174/5296734) может работать для вас! –

ответ

2

Там обязательно. Просто переопределить FirebaseMessagingService.onMessageReceived и получить тело уведомления как в этом примере из документации Firebase Cloud Messaging:

@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, "Notification Message Body: " + remoteMessage.getNotification().getBody()); 
} 

Смотрите документацию Firebase Cloud Messaging для receiving downstream messages on Android под "Override onMessageReceived".

+0

Также, как только вы получите сообщение, вам необходимо создать уведомление. См. Метод sendNotification в примере с FCM Android: https://github.com/firebase/quickstart-android/blob/master/messaging/app/src/main/java/com/google/firebase/quickstart/fcm/MyFirebaseMessagingService .java # L57 –

+2

Спасибо, я надеялся на более простой подход, например, внутри onMessageReceived, чтобы просто принять уведомление и отобразить его, как SDK делает это, когда приложение в фоновом режиме со всеми настраиваемыми полями и значком и сообщением. Поскольку такого простого способа нет, я использую согласованный ответ и сделаю свое собственное уведомление, которое в конце будет похоже на тот, который сгенерирован SDK. – Alin

+0

может ли кто-нибудь решить эту проблему? http://stackoverflow.com/questions/41750548/show-notification-of-firebase-message-onrecieved-when-app-is-in-background-throu –

Смежные вопросы