GCM邮件未送达Chrome Packaged Apps(离线模式)

时间:2015-10-29 08:55:16

标签: google-chrome google-cloud-messaging google-chrome-app

我正在使用https://github.com/ToothlessGear/node-gcm使用GCM向Chrome打包的应用发送消息。

如果Chrome应用正在运行,一切正常

当我关闭Chrome应用程序时发送消息时,启动应用程序后不会传递这些消息。我确实在服务器的结果中得到了message_id。

我也尝试过使用命令行,在命令行中也面临同样的问题。

服务器端的代码(nodejs)

var GCM = require('node-gcm');
var gcmSender = new GCM.Sender(apiKey);
var sendGCMMessage = function(data, regIds, collapseKey, callback) {

                var message = new GCM.Message({
                    priority: 'high',
                    collapseKey: collapseKey,
                    data: data                  
                });

                gcmSender.send(message, regIds, 
                    function(err, result) {
                    callback(err, result)
                })

    }

打包应用:

//register 

var senderIds = [senderId];
chrome.gcm.register(senderIds, function(registrationId) {

    sendRegistrationIdToServer(registrationId, function(succeed) {

    });
});

    //listen to incoming messages

chrome.gcm.onMessage.addListener(function(message) {
   console.log("gcm message")        
});

1 个答案:

答案 0 :(得分:0)

问题在于我假设铬的行为方式。

在chrome中,如果chrome正在运行(并且app已关闭),则会传递GCM消息。鉴于注册发生在background.js中,chrome唤醒应用程序并运行onMessage侦听器。否则消息将被丢弃。

就我而言,我没有在backgroud.js中进行注册。将我的注册移至backgroud.js,现在工作正常