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
    }
  }
}

Это портит значок уведомления, который отображается (это увеличенная версия), но на этом этапе я могу с этим смириться.

Другие вопросы по тегам