将带有node-gcm的有效负载通知发送到android设备

时间:2014-01-22 06:46:31

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

我正在使用node-gcm通过GG GCM向Android设备发送通知。问题是,当我发送2条或更多消息时,它们彼此重叠(旧消息消失,新消息替换它)。当我从互联网断开我的设备,然后发送2条消息,我连接到互联网,只有一个通知与我发送的最后一条消息。这是发送消息的代码,我已经删除了在GG在他们的指南中说的collapse_key:

function sendNoti(content){

// with object values
var message = new gcm.Message({
    //collapseKey: 'cms',
    //delayWhileIdle: true,
    //timeToLive: 10,
    data: {
        news: content
    }
});
var sender = new gcm.Sender('MY KEY');
var registrationIds = [];
db.noti.find({}, function (err, getted) {
    getted.forEach(function (each) {
        registrationIds.push(each.regId);
    });

    /**
     * Params: message-literal, registrationIds-array, No. of retries, callback-function
     **/
    sender.send(message, registrationIds, 10, function (err, result) {
        console.log(result);
    });
})
}

请帮我解决这个问题。非常感谢你!

1 个答案:

答案 0 :(得分:4)

您的服务器代码与您的问题无关。 您的客户端代码可能显示带有常量标识符的通知。这会导致每个新通知都覆盖前一个通知。

您必须从以下位置更改通知方法调用:

notificationManager.notify (CONSTANT_NOTIFICATION_ID, notification);

到:

notificationManager.notify (unique_identifier, notification);