我正在开发一个离子应用程序,我正在使用信号进行推送通知。
我面临的问题是,当应用程序未被杀死(从最近的应用程序中删除)时,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()
。
我每次如何触发该方法?
提前致谢。
感谢您在文档中指出问题。它们已使用正确的信息进行更新:
设置通知接收处理程序。仅在收到通知时应用程序在前台运行时才会调用。
如果你想处理一个被杀死的状态,请务必使用handleNotificationOpened
method
我在文档中找到了这个:
设置通知接收处理程序。仅在收到通知时应用程序在前台或后台运行时才会调用。
也许你的应用程序不适用于后台。
或者问题是你需要在startinit之后调用你的函数:
this.onesignal.startInit("YOUR_APPID")
this.onesignal.handleNotificationReceived()