我正在开发离子应用程序,正在使用onesignal进行推送通知。
我面临的问题是,当应用程序未终止(从最近的应用程序中删除)时,在收到推送通知时不会触发handleNotifiactionRecieved()
。尽管它可以按预期运行,但在后台运行(而不是在焦点)。
设置代码如下:
if (this.platform.is('cordova')) {
this.oneSignal.startInit('APP_ID');
this.oneSignal.inFocusDisplaying(this.oneSignal.OSInFocusDisplayOption.None);
this.openOneSignalMessage();
this.oneSignal.endInit();
}
我的代码是这样的:
openOneSignalMessage() {
this.oneSignal.handleNotificationReceived().subscribe((data) => {
this.MsgBody = data.payload.body
console.log('newMessageOneSignal MsgBody', this.MsgBody);
});
}
实际结果:
handleNotificationReceived()
在应用未运行时未调用,这被终止。预期结果:即使应用未打开,每次推送通知到达时,都应调用
handleNotificationReceived()
。
如何每次触发该方法?
谢谢。
答案 0 :(得分:3)
感谢您指出文档中的问题。它们已使用正确的信息更新:
设置接收通知的处理程序。仅在收到通知时应用程序在前景中运行时调用。
如果您想从死亡状态中进行处理,请确保使用 handleNotificationOpened
method
答案 1 :(得分:1)
我在文档中找到了它:
设置接收通知的处理程序。仅在收到通知时应用在前台或后台运行时调用。
也许您的应用程序无法在后台运行。
或者问题是您需要在startinit之后调用ur函数:
this.onesignal.startInit("YOUR_APPID")
this.onesignal.handleNotificationReceived()