Я отправляю уведомления 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 при получении полезной нагрузки?