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

Я интегрировал API pubnub в один из своих проектов. Я пытаюсь получить пакет данных, который я отправил в полезной нагрузке. Я добавил FCM для push-уведомлений. Я получаю push-уведомление во всех случаях, но не получаю данные пакета, когда приложение убито или находится в фоновом режиме. Уже получает объект полезной нагрузки, когда приложение находится на переднем плане, но не получает никаких данных, когда приложение находится в фоновом режиме или убито.

Полезная нагрузка 1:

{
   "pn_gcm": {
   "notification": {
   "title": "Barack Obama",
   "body": "12",
   "channelName": "Hell 4_656"
   }
 },
"firstName": "Barack",
"lastName": "Obama",
"displayName": "Barack Obama",
"profileImageUrl": "abcURL",
"userId": "173",
"type": "sender",
"time": "1615958943297",
"message": "12"
}

PayLoad 2:

{
pn_gcm={
  notification={
  title=BarackObama,
  body=Hello,
  image=Hell4_656
  }
  },
  firstName=Barack,
  lastName=Obama,
  displayName=BarackObama,
  time=1615958740553,
  type=sender,
  message=Hello,
  profileImageUrl=abcURL,
  userId=173
}

Я получаю объект уведомления, когда приложение находится на переднем плане, но не получаю ни одного из них, когда приложение находится в фоновом режиме или убито (получение некоторого объекта FCM по умолчанию)

Я пытаюсь получить объект уведомления в комплекте при запуске приложения из панели уведомлений

Ответ Сделал полезную нагрузку JSON следующим образом:

  {
"pn_gcm": {
  "notification": {
    "title": "Barack Obama",
    "body": "18"
  },
  "body": {
    "channelName": "Hell 5_657",
    "firstName": "Barack",
    "lastName": "Obama",
    "displayName": "Barack Obama",
    "profileImageUrl": 
    "http://3.137.127.137/quiqle/uploads/profile/1615523786_4866.jpg",
    "userId": "173",
    "type": "sender",
    "time": "1615965488916",
    "message": "18"
  }
}
}

person Nadim Ansari    schedule 17.03.2021    source источник


Ответы (1)


Вам нужно добавить data с информацией, которую вы хотите получить с помощью push в pn_gcm. Информация за пределами pn_(gcm|apns) (включая tjpse) будет доставляться как обычные сообщения.

Сообщение может быть следующим:

используя notification:

{
   "pn_gcm":{
      "notification":{
         "title":"Chat invitation",
         "body":"John invited you to chat",
         "sound":"default"
      }
   }
}

Или используя data:

{
  "pn_gcm" : {
    "data" : {
      "room" : "Portugal vs Denmark",
      "body" : "great match!"
    }
  }
}

или оба:

{
  "pn_gcm" : {
    "notification": {
      "title":"Portugal vs Denmark",
      "body":"great match!"
    },
    "data" : {
      "room" : "Portugal vs Denmark",
      "body" : "great match!"
    }
  }
}

Чтобы узнать о различиях между data и notification, прочтите официальную документацию FCM, О сообщениях FCM.

См. Также: Почему мои push-уведомления FCM не работают?

person Serhii Mamontov    schedule 17.03.2021
comment
можешь уточнить свой ответ? - person Nadim Ansari; 17.03.2021
comment
Я добавил объект данных в файл json, но не получил его в Bundle. - person Nadim Ansari; 17.03.2021
comment
Да, я получаю данные после добавления объекта данных. Спасибо!! - person Nadim Ansari; 17.03.2021
comment
Он будет работать только с notification. Обязательно прочитайте добавленную мной ссылку на документы FCM. notification types should display by default by the Android OS, where as data` требует, чтобы вы реализовали метод для получения сообщения, и ваш код выполняет отображение. По крайней мере, так я запомнил, когда в последний раз читал эти документы. - person Craig Conover; 19.03.2021