单击通知后,应用程序在后台运行时不会触发Android推送

时间:2016-10-22 06:14:58

标签: android cordova push-notification push node-gcm

我有一个使用push plugin的Cordova应用程序 在服务器上,我发送带有node-gcm的GCM消息 对于iOS和Android,我收到通知很好,他们点击后会打开应用,但是在Android上通知'事件不会发生。

push.on('notification', function(data) {
    console.log(data);
    alert('got PUSH!');
});

如果应用程序在前台运行,那么我就会得到“推送!”'警报,但当应用程序在后台时,我点击推送通知,它会打开应用程序,但不会发出提示!#39;。

如何获得通知'应用程序打开后要触发的事件?

以下是我发送给设备的gcm消息:

{
  "params": {
    "notification": {
      "title": "SO post demo",
      "body": "THIS IS A TEST!",
      "icon": "ic_launcher",
      "sound": true
    }
  }
}

我认为我需要在通知有效负载中有一些东西来解决这个问题,但是当我从后台打开应用时,我尝试的任何内容都不会触发该事件。

以下是我尝试过的几件事:

使用"内容可用" (按照建议here),使用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 个答案:

答案 0 :(得分:0)

在有条不紊地创建这个问题时,我找到了答案 我需要我的有效载荷看起来像这样:

{
  "params": {
    "data": {
      "title": "SO post demo",
      "body": "THIS IS A TEST!",
      "icon": "ic_launcher",
      "sound": true
    }
  }
}

这会弄乱显示的通知图标(这是一个放大的版本)但是,在这个阶段,我可以忍受它。