Я нашел различные примеры того, как настроить сообщение json для push-уведомлений в firebase для Android и ios. Но у меня проблема, что не все push-сообщения приходят в мои клиентские приложения. Я заметил, что на разных версиях андроида это работает по-разному. Некоторые из них не получают никаких сообщений, некоторые из них без настроенной мелодии звонка, некоторые из них только с мелодией по умолчанию, а некоторые работают нормально. На стороне клиента, я думаю, все должно быть хорошо. Я использую формы xamarin для этого. Мое сообщение json выглядит так. Теперь я прочитал, что я должен удалить тег уведомления, но тогда он работает для старых андроидов?
{
"to": "/topics/MYTOPIC",
"notification": {
"title": null,
"body": "test",
"sound": "de900",
"content_available": true
},
"priority": "high",
"data": {
"missionGuid": "",
"eventGuid": "",
"messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
"ric": "199900",
"title": null,
"body": "test",
"priority": "high",
"sound": "de900"
},
"android": {
"priority": "high",
"notification": {
"title": null,
"body": "test",
"sound": "de900",
"content_available": true
},
"data": {
"missionGuid": "",
"eventGuid": "",
"messageGuid": "e3ab4c34-125b-4ea7-abf7-3ee8fe1453ce",
"ric": "199900",
"title": null,
"body": "test",
"priority": "high",
"sound": "de900"
},
},
"apns": {
"headers": {
"apns-priority": 10
},
"payload": {
"aps": {
"alert": {
"title": null,
"body": "test"
},
"sound": "de900"
}
}
}
}
Это может быть вам интересно stackoverflow.com/a/39505298/6055194stackoverflow.com/a/37429495/6055194
Проверьте этот stackoverflow.com/a/50737948/5805371
Насколько я знаю, настройка "priority": "high" — это единственное, что вы можете сделать, чтобы уведомления доставлялись немедленно. Если они по-прежнему ничего не могут получить, вероятно, это что-то на стороне клиента.
Предположительно, для мелодии звонка "sound": "WHATEVER" должен указывать звук, но опять же, из-за разных OEM-производителей и вариантов системы может быть более последовательно просто отправить сообщение с данными и отправить уведомление самостоятельно при получении, но вы должны знайте, что даже это, вероятно, не гарантирует ни доставки, ни рингтона.
Тот факт, что на некоторых устройствах это работает нормально (надеюсь, на большинстве из них), указывает на то, что вы, вероятно, правильно настроили конфигурацию, и лучшее, что вы можете сделать, — это обработать уведомление самостоятельно и, возможно, иметь особые случаи для конкретных устройств.
Установка "priority" и "sound" в полезной нагрузке notification никогда не помогала мне. Поведение этого было очень странным.
Я решил использовать только Data полезную нагрузку и обрабатывать оба background/foreground сообщения внутри onMessageReceived метода и показывать ваши пользовательские уведомления.
После этого я смог показать уведомления с самыми высокими priority, pop-ups и звуком.
Подробнее о сообщениях данных Firebase здесь
как я могу обрабатывать фон с полученным сообщением. это работает не только для переднего плана?
@cpiock Проверьте этот лист firebase.google.com/docs/cloud-messaging/android/…. При использовании Data срабатывает как передний план, так и фон onMessageReceived
это означает, что, удалив тег уведомления, я могу обрабатывать свои сообщения с помощью onmessagereceived? о звучит великолепно
Снятие блокировки уведомлений работает на 4.4, 5.х, тестировалось, насчет младших версий не знаю. Но да, с некоторыми устройствами бывают разные проблемы. Например, stackoverflow.com/questions/52736782/…