Firebase FCM тихие push-уведомления для iOS
у меня проблема с тихими уведомлениями на iOS.
когда мое приложение находится в фоновом режиме, я не получаю тихое уведомление, отправленное FCM. Но если я попытаюсь отправить непосредственно в APNS, уведомление будет успешно получено.
это JSON, отправленный в FCM:
{
"to" : "<token>",
"priority": "high",
"content_available": true,
"data" : {
"<key>" : "<string>",
"<key2>" : "<string>"
}
}
это JSON, отправленный непосредственно в APNS:
{
"aps": {
"content-available": 1
},
"<key>": "<string>",
"<key>": "<string>"
}
Я уже пытался удалить ключ "приоритет", потому что я видел, как кто-то сказал, что я не следует устанавливать приоритет, если "content_available" уже установлен. Это не сработало.
- у меня есть" Push-уведомления", включенные в XCode > возможности.
- у меня есть" удаленные уведомления", проверенные в фоновых режимах в XCode > возможности.
- уведомления FCM работают нормально, когда приложение находится на переднем плане, а иногда, когда приложение находится в фоновом режиме.
3 ответов
удалить "уведомления" пара ключевых значений и добавить "content_available": true
Это будет выглядеть так
{
"to" : "...",
"priority": "high",
"content_available": true,
"data" : {
....
}
}
Это должно сделать его бесшумным APNS, и вам нужно обработать соответствующий метод делегата APNS.
вам нужно будет обработать это через делегатов См. эту документацию firebase для деталей:https://firebase.google.com/docs/cloud-messaging/concept-options
Я нашел обходной путь. Я помещаю пустое значение для "звука" в поле "уведомление", и тихие уведомления доставляются даже тогда, когда приложение находится в фоновом режиме.
{
"to" : "...",
"priority": "high",
"notification": {
"sound": ""
},
"data" : {
....
}
}
моя догадка заключается в том, что Apple не разрешает тихие уведомления с "высоким" приоритетом и каким-то образом"уведомление": {"звук":""} обманывает APNS, что это уведомление не является тихим.
пожалуйста документация на стороне сервера и сделайте настройку для json, как описано в документе. Я столкнулся с аналогичной проблемой ранее и решил проблему, идущую в этом документе.
{
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"priority" : "high",
"notification" : {
"body" : "This week's edition is now available.",
"title" : "NewsMagazine.com",
"icon" : "new"
},
"data" : {
"volume" : "3.21.15",
"contents" : "http://www.news-magazine.com/world-week/21659772"
}
}
у вас отсутствовал ключ уведомления. который используется apns для получения уведомлений на фоне.