Huawei Push Kit в Android: отправка уведомлений и сообщений с данными
Я смотрю, как Huawei Push Kit работает в Android. Для этого я использую почтальон для отправки уведомлений, я отправляю сообщение с уведомлением и сообщение с данными. Уведомляющие сообщения видны в области уведомлений, но я не могу получить данные, которые я отправил в сообщении с данными. Я хотел бы знать, как их получить, когда приложение находится на переднем плане и в фоновом режиме.
3 ответа
- Есть разница между HMS Core Push Kit и FCM. Уведомляющие сообщения будут доставляться на панель задач, а сообщения с данными будут доставляться методу onMessageReceived по умолчанию при использовании HMS Core Push Kit. Таким образом, невозможно получить заголовок и текст сообщения уведомления.
Если вы хотите передать данные в свое приложение при отправке сообщения с уведомлением, вы можете коснуться сообщения уведомления, чтобы инициировать соответствующее действие, например открытие приложения, веб-страницы или определенной страницы в приложении. Чтобы получить данные с помощью настраиваемых действий, см. Документацию.
- Для параметров сообщения с данными см. Это:
{
"validate_only": false,
"message": {
"data": "{'param1':'value1','param2':'value2'}",
"token": [
"pushtoken1",
"pushtoken2"
]
}
}
и получить данные с помощью метода onMessageReceived().
Вы должны включить "foreground_show": false, чтобы получить сообщение "data", которое будет доставлено в "onMessageReceived" .. иначе оно будет отображаться только в области уведомлений .. и вы не сможете прочитать полезную нагрузку ..
Прочтите заголовок «Получение сообщения с уведомлением» в приведенном выше документе.
Когда вы отправляете push-уведомление без явного указания значения*message.android.notification.foreground_show = **false***
, содержимое данных не будет прочитано, потому что NC (Центр уведомлений телефонов Huawei) позаботится об уведомлении (когда ваше приложение работает на переднем плане).
NC не реализует метод чтения содержимого данных , как указано здесь Huawei.
Поэтому вы должны проинструктировать свое приложение, чтобы ваше приложение обрабатывало push-уведомления, а не NC. Для этого вам необходимо:
-
message.android.notification.foreground_show = false
в полезной нагрузке (см. здесь ) - Вам необходимо объявить класс реализации HmsMessageService в файле AndroidManifest.xml приложения (см. здесь ).
Здесь вы можете найти все подробности о полезной нагрузке нисходящих сообщений.