如果应用程序被杀死,则不会调用(Ionic)handleNotificationReceived

时间:2019-03-28 09:55:29

标签: ionic-framework ionic2 ionic3 onesignal android-push-notification

我正在开发离子应用程序,正在使用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()

如何每次触发该方法?

谢谢。

2 个答案:

答案 0 :(得分:3)

感谢您指出文档中的问题。它们已使用正确的信息更新:

handleNotificationReceived(生成器方法)

设置接收通知的处理程序。仅在收到通知时应用程序在前景中运行时调用。

如果您想从死亡状态中进行处理,请确保使用 handleNotificationOpened method

答案 1 :(得分:1)

我在文档中找到了它:

  

设置接收通知的处理程序。仅在收到通知时应用在前台或后台运行时调用。

也许您的应用程序无法在后台运行。

或者问题是您需要在startinit之后调用ur函数:

this.onesignal.startInit("YOUR_APPID")
this.onesignal.handleNotificationReceived()