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

cordova - Android push notifications not received when app is closed

我目前正在开发 Android (Cordova) 应用程序,我正在使用 OneSignal 推送通知。首先,如果我关闭应用程序,推送通知不会被发送,所以我必须添加一个 Cordova 插件来让我的应用程序 运行 留在后台:

cordova.plugins.backgroundMode.enable();

问题是,当我启动 phone 时,我无法接收推送通知(因为 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);
    }

谢谢。

你是如何关闭你的应用程序的?确保您使用的是我们的 OneSignal Cordova SDK 1.7.5 或更新版本,因为与接收通知相关的后退按钮问题已得到修复。您可以通过 运行 cordova plugin list.

查看项目使用的当前版本

我在 Android 5.0.2 和 4.3 设备上进行了一些测试,只要应用未处于 "Force Stop" 状态,每次启动时都会收到通知。

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

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

  • GCM push notification works after app Force Stop?
  • BroadcastReceiver not receiving BOOT_COMPLETED

回顾一下,OneSignal 通知将始终由您的应用 displayed/received 只要它没有因按下“设置”>“应用”中的 "Force Stop" 按钮或来自积极的第 3 方任务管理器也执行相同的操作。

谢谢。