cordova - 应用关闭时未收到Android推送通知

时间:2015-08-23 15:28:48

标签: android cordova notifications background-service onesignal

我目前正在使用Android(Cordova)应用,我正在使用OneSignal推送通知。首先,如果我关闭应用程序,则不会发送推送通知,因此我必须添加Cordova插件以保持我的应用程序在后台运行:

cordova.plugins.backgroundMode.enable();

问题是,当我启动手机时,我无法接收推送通知(因为deviceready未被触发)。直到我打开应用程序。

是否有解决方案在设备启动后立即启动推送通知服务,就像在后台运行的东西一样?

设备准备完成后的代码:

    cordova.plugins.backgroundMode.enable();

    var notificationOpenedCallback = function(jsonData) {
    console.log('didReceiveRemoteNotificationCallBack: ' + JSON.stringify(jsonData));
  };

    window.plugins.OneSignal.init( "my-api-key",
                                        {googleProjectNumber: "7-cant-share-it"},
                                        app.didReceiveRemoteNotificationCallBack);
    }

感谢。

1 个答案:

答案 0 :(得分:1)

你是如何关闭你的应用程序的?确保您使用的是OneSignal Cordova SDK 1.7.5或更高版本,因为修复了与接收通知相关的后退按钮问题。您可以通过运行cordova plugin list来查看项目正在使用的当前版本。

我在Android 5.0.2和4.3设备上进行了一些测试,每次启动时都会收到通知,只要该应用没有被放入“强制停止”状态。状态。

当您的应用被置于"停止状态"您应用中的所有BroadcastReceivers都将停止接收意图。这包括从Google收到通知消息时触发的GCM意图。这是Android 3.1及更新版本的已知和预期行为。

有关Force Stop如何影响应用的详细信息,请参阅以下链接:

总结一下,OneSignal通知将始终由您的应用显示/接收,只要它不会按下强制停止"强制停止"设置>应用程序中的按钮或来自执行相同操作的激进的第三方任务管理器。

感谢。