【问题标题】:multiple notificaition in gcm meteorgcm流星中的多个通知
【发布时间】:2026-01-29 01:20:05
【问题描述】:

我有一个简单的查询。我在我用流星开发的应用程序中实现 GCM 通知。代码如下

    var gcm = Meteor.npmRequire('node-gcm');
    var sender = new gcm.Sender('MY_ID');
    var message = new gcm.Message();
    //message.addData('message',new Date().getTime());
    message.addData({'title':'mytitle','message':new Date().getTime()});
    message.delay_while_idle = true;
    var registrationIds = [];
    registrationIds.push("MY_REG_NO");
    sender.send(message, registrationIds, 4, function (err, result) {
        console.log(result);
    });

现在,当我从客户端调用此方法时,我会正确收到通知。但是当我再次调用此方法时,先前的通知将被最新的通知覆盖。如何在通知托盘中显示通知列表而不覆盖以前的通知?

提前致谢。

【问题讨论】:

  • 您应该检查您的消息变量,以确保您实际上是在声明一个新变量,而不是仅仅将新文本添加到已经存在的 gcm.Message() 中。所以,我猜这个想法是每当你添加新消息时总是有一个新的消息变量。
  • 完成了,没有效果!
  • 嘿@larryp 你能详细说明一下吗。尚未找到任何解决方案。

标签: javascript node.js meteor push-notification google-cloud-messaging


【解决方案1】:

我终于找到了自己问题的答案。我们需要在消息中添加一个通知 id。

这是完整的解决方案。

var gcm = Meteor.npmRequire('node-gcm');
var sender = new gcm.Sender('MY_ID');
var message = new gcm.Message();
// message.addData('message',new Date().getTime());
message.addData({'title':'mytitle','message':new Date().getTime()});
message.delay_while_idle = true;
var registrationIds = [];
registrationIds.push("MY_REG_NO");
// YOU HAVE TO ADD THIS LINE
message.addData("notId", parseInt(Math.random() * 25));
sender.send(message, registrationIds, 4, function (err, result) {
    console.log(result);
});

【讨论】:

    最近更新 更多