Как получить субтитры из push-уведомлений Firebase - PullRequest
0 голосов
/ 04 марта 2019

Я получаю push-уведомление в этом формате с сервера.

{
                title: messageTitle,
                body: messageBody,
               subtitle: messageSubtitle
}

В моем проекте Android я прочитал уведомление, используя следующий код.

remoteMessage.getNotification().getTitle();
remoteMessage.getNotification().getBody(); 

Приведенные выше 2 строки дают мне Title и Body, но я не могу понять, как читать свойство subtitle.

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Стандартный формат уведомлений не включает субтитры , следовательно, нет способа извлечь его, чтобы получить сообщение с субтитрами, используйте data key.

Стандартный формат уведомлений

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    }
  }
}

, если вам нужны субтитры, добавьте субтитры в поле данных, а затем извлекайте их методом getData ()

Индивидуальное уведомление для субтитров

{
  "message":{
    "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification":{
      "title":"Portugal vs. Denmark",
      "body":"great match!"
    },
    "data" : {
      "subtitle" : "Mario",
      "subHeading" : "PortugalVSDenmark"
    }
  }
}
0 голосов
/ 04 марта 2019

Чтобы получать уведомления FCM с пользовательскими данными, нам необходимо проверить полезную нагрузку данных следующим образом: -

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

  • На переднем плане ваше приложение получает объект сообщения с обоими полезными нагрузками.

    В случае 2 вы можете просто проверить, как показано ниже: -

    String customData = remoteMessage.getData().get("customData");

И в первом случае, пожалуйста, обратитесь к ответу; -

обработка уведомлений с пользовательскими данными

Надеюсь, это поможет.

0 голосов
/ 04 марта 2019

// remoteMessage является ссылкой на RemoteMessage

 `val data = remoteMessage.data

    if(data.isNotEmpty())
    {

        if (data.containsKey("title"))
            title = data["title"].toString()

        if (data.containsKey("body"))
            body = data["path"].toString()

        if(data.containsKey("subtitle"))
            subtitle = data["subtitle"].toString()

        if(data.containsKey("notifyId"))
            notifyId = data["notifyId"]?.toInt()

        }`
...