我目前正在使用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);
}
感谢。
答案 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通知将始终由您的应用显示/接收,只要它不会按下强制停止"强制停止"设置>应用程序中的按钮或来自执行相同操作的激进的第三方任务管理器。
感谢。