На стороне сервера FCM различают iOS и Android - PullRequest
0 голосов
/ 26 мая 2020

Я отправляю уведомления pu sh со своего сервера (на токен firebase, а не на topi c). Я не делаю различий между платформами, сервер просто отправляет JSON через RestTemplate (приложение Spring Boot).

Если я подготовлю его для Android, он работает, но не для iOS. Но если я подготовлю его для iOS, он не будет работать для Android.

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

Проблема: если я использую notification в моем JSON, уведомление будет отображаться на iOS и Android но только iOS может обрабатывать полезную нагрузку (в состоянии переднего плана / фона / убит). Если я удалю тег notification в JSON, тогда все будет работать нормально (Android и iOS получает полезную нагрузку во всех состояниях, но iOS не отображает уведомление).

В Android вы можете создать клиентскую сторону уведомления (как и я), но в iOS это невозможно.

Итак, как я могу отправить FCM (JSON) с токеном firebase и он не зависит от платформы? Оба могут обрабатывать его должным образом, оба получают полезную нагрузку и отображают сообщение, а полезная нагрузка должна обрабатываться в каждом состоянии.

Это работает на android и отображает сообщение (на стороне клиента), но не работает для iOS

{
   "content_available": true,
   "data":{
        "action":"bla",
        "value":"true",
        "id":"111111"
   },
   "android":{
      "priority":"high"
   },
   "apns":{
      "headers":{
         "apns-priority":"10"
      }
   },
   "to":"<MY_FCM_TOKEN>"
}

Отображает FCM для android и iOS, но обрабатывает полезную нагрузку только на iOS

{
   "notification":{
      "sound":"default",
      "title":"Test Title",
      "body":"Message of FCM"
   },
   "content_available": true,
   "data":{
        "action":"bla",
        "value":"true",
        "id":"111111"
   },
   "android":{
      "priority":"high"
   },
   "apns":{
      "headers":{
         "apns-priority":"10"
      }
   },
   "to":"<MY_FCM_TOKEN>"
}

Или можно объявить уведомление -tag только для iOS? Или можно создавать уведомления также на стороне клиента в iOS при получении полезной нагрузки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...