Android推送通知不出现时,应用程序完全关闭(使用node-gcm)



我正在使用node-gcm模块向我的Cordova应用程序发送推送通知。
服务器报告它已成功地将消息传递到我的设备。

如果应用程序在后台运行,通知会出现在设备上,但如果应用程序根本没有运行,则不会出现

从我的阅读,我相信我需要设置priority: 'high'来解决这个问题,但是从我的测试,这不起作用。要么是我设置错了,要么是我需要做别的事情。

这是我的发送代码:

var msgJson = {
                priority: 'high',
                contentAvailable: true,
                "data": {
                    title: title,
                    body: message_text,
                    icon: 'ic_launcher',
                    sound: true,
                    extra_data
                }
};

var message = new gcm.Message( msgJson );
console.log(message);
sender.send(message, { registrationTokens: push_tokens }, function (err, response) {
    if(err) {
        console.error('Error sending Google Cloud Message notification:', err, response);
    } else {
        console.log('Android notification successful send to', push_tokens, response);
    }
});

为什么当应用程序完全关闭时,我的通知不会出现在设备上?

在这个线程中声明,用户强制停止应用程序会使应用程序处于停止状态,并且它的任何代码都不会运行,包括manifest中声明的任何广播接收器。只有当用户显式地启动应用程序时,它才会被置于接收器被触发的状态。

您也可以在本文档中看到delay_while_idle的值必须设置为true。如果设备连接但空闲,消息仍将立即传递,除非delay_while_idle标志设置为true。

这里有一个相关的线程可能会有所帮助:

  • app被杀死时未收到推送

最新更新