0

Извините за мой титул, но позвольте мне объяснить это. Я использую firebase cloud messaging для своих приложений. Теперь мне нужно запустить приложения, после чего показать диалоговое окно с телом уведомления и заголовком, когда приложения не работают или находятся в фоновом режиме, после того как я коснусь уведомления.уведомление об открытии фонового диалога firebase при открытии приложений

Для FCM по умолчанию, когда приложения не работают/в фоновом режиме, я прикасаюсь к уведомлению, а приложения запускаются/переходят на передний план.

Может ли кто-нибудь вести меня, чтобы справиться с этим?

+0

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

+0

@AkshayBhat, вы можете объяснить более подробно, сэр? – Yuw

ответ

1

сообщения уведомления Handle в приложении фоновый

Когда ваше приложение работает в фоновом режиме, Android направляет сообщения уведомлений на панели задач. Пользователь, нажав на уведомление, открывает по умолчанию программу запуска приложений.

Включает в себя сообщения, содержащие как полезную нагрузку для уведомлений и данных (и все сообщения, отправленные с консоли уведомлений). В этих случаях уведомление доставляется на системный лоток устройства, а данные передаются в дополнение к цели вашего запуска. Деятельность.

Когда вы отправляете сообщение с информацией о полезной нагрузке (уведомлении и данных), и приложение находится в фоновом режиме, вы можете извлекать данные из дополнительных функций, которые запускаются в результате нажатия пользователем на уведомление ,

С 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); 
    } 
} 

EDIT:
В onMessageRecieved(RemoteMessage remoteMessage) используйте метод remoteMessage.getData(), чтобы получить данные, которые отправляются на сервер, который возвращает Map<String,String> ,

Теперь создайте намерение и укажите класс для запуска при нажатии уведомления и в этом намерении введите ваши данные уведомления. Нравится:

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

Теперь передайте это намерение в ожидании, когда вы показываете уведомление.

И когда MainActivity.class запускается по щелчку уведомления только получить данные, как это:

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

Так с карты вы можете получить данные.

+0

Что мне нужно, чтобы взять «название» и «тело» уведомления? Причина: мне нужно показать в диалоге уведомление заголовка и тела. – Yuw

+0

Спасибо за информацию сэр. Вы экономите мой день: D – Yuw

+0

всегда приветствуется :) –

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