Android push не срабатывает, когда приложение в фоновом режиме после нажатия на уведомление
У меня есть приложение Cordova, использующее push-плагин.
На сервере я отправляю сообщения GCM с помощью node-gcm.
Я получаю уведомления просто отлично, для iOS и Android, и они открывают приложение при нажатии, однако на Android событие "уведомления" не срабатывает.
push.on('notification', function(data) {
console.log(data);
alert('got PUSH!');
});
Если приложение работает на переднем плане, то я получаю "получил толчок!" предупреждение, но когда приложение находится в фоновом режиме, и я нажимаю push-уведомление, когда оно приходит, оно открывает приложение, но не предупреждает "получил PUSH!".
Как я могу получить событие уведомления после запуска приложения?
Вот сообщение gcm, которое я отправляю на устройство:
{
"params": {
"notification": {
"title": "SO post demo",
"body": "THIS IS A TEST!",
"icon": "ic_launcher",
"sound": true
}
}
}
Я считаю, что мне нужно что-то в полезной нагрузке уведомлений, чтобы решить эту проблему, но ничто из того, что я пробовал, не вызывает это событие, когда приложение открывается из фона.
Вот несколько вещей, которые я попробовал:
Используя "content-available" (как предложено здесь), используя message.addData
:
{
"params": {
"notification": {
"title": "SO post demo",
"body": "THIS IS A TEST!",
"icon": "ic_launcher",
"sound": true
},
"data": {
"info": "super secret info",
"content-available": "1"
}
}
}
Снова то же самое, но помещая мои параметры в json, я использую для создания Послания:
{
"params": {
"notification": {
"title": "SO post demo",
"body": "THIS IS A TEST!",
"icon": "ic_launcher",
"sound": true,
"info": "super secret info",
"content-available": "1"
}
}
}
1 ответ
В методическом создании этого вопроса я нашел ответ.
Мне нужно, чтобы мои данные выглядели так:
{
"params": {
"data": {
"title": "SO post demo",
"body": "THIS IS A TEST!",
"icon": "ic_launcher",
"sound": true
}
}
}
Это портит значок уведомления, который отображается (это увеличенная версия), но на этом этапе я могу с этим смириться.