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

问题描述 投票:0回答:2

我正在开发一个离子应用程序,我正在使用信号进行推送通知。

我面临的问题是,当应用程序未被杀死(从最近的应用程序中删除)时,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()

我每次如何触发该方法?

提前致谢。

ionic-framework ionic2 ionic3 onesignal android-push-notification
2个回答
3
投票

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

handleNotificationReceived(构建器方法)

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

如果你想处理一个被杀死的状态,请务必使用handleNotificationOpened method


1
投票

我在文档中找到了这个:

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

也许你的应用程序不适用于后台。

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

this.onesignal.startInit("YOUR_APPID")
this.onesignal.handleNotificationReceived() 
© www.soinside.com 2019 - 2024. All rights reserved.