2

I'm currently working on Android (Cordova) App and I'm using OneSignal push notifications. First of all, push notifications were not delivered if I close the app, so I had to add a Cordova plugin to keep my app running in the background :

cordova.plugins.backgroundMode.enable();

The problem is, when I boot my phone I cannot receive push notifications (Because deviceready is not fired). Until I open the app.

Is there a solution to immediately start push notifications service after device boot, like something running in the background ?

My code after 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);
    }

Thanks.

4

1 回答 1

1

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

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

当您的应用程序进入“停止状态”时,您应用程序中的所有广播接收器都将停止接收意图。这包括从 Google 收到通知消息时触发的 GCM 意图。这是 Android 3.1 及更高版本的已知和预期行为。

有关强制停止如何影响应用程序的更多详细信息,请参阅以下链接:

回顾一下,只要您的应用程序没有通过按下“设置”>“应用程序”中的“强制停止”按钮或来自同样执行的激进的第 3 方任务管理器将其置于强制停止状态,OneSignal 通知将始终显示/接收同样的动作。

谢谢。

于 2015-08-26T23:06:38.390 回答