Сообщения GCM не доставляются в Chrome Packaged Apps(автономный режим)

Я использую 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 ответ

Проблема заключалась в том, как я предполагал, что хром ведет себя.

В Chrome сообщение GCM доставляется, если Chrome запущен (и приложение закрыто). chrome запускает приложение и запускает прослушиватель onMessage, учитывая, что регистрация произошла в background.js. Или же сообщение отбрасывается.

В моем случае я не делал регистрацию в backgroud.js. Перенес мою регистрацию в backgroud.js и теперь она работает нормально

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