angular - 如何在 ionic 3 中点击 One Signal 推送通知时导航到特定页面?

标签 angular push-notification navigation ionic3 onesignal

我想在点击 One Signal 发送的推送通知时打开特定页面。我尝试了多种方法,但没有找到任何解决方法! 这是我的代码。

我已经尝试了所有导航方式


        // window["plugins"].OneSignal.sendTag("user_tag", "VIP");

        if (jsonData.notification.payload.additionalData != null) {


          let navigator: any = JSON.stringify(jsonData.notification.payload.additionalData.page);
          alert(navigator);
          alert(navigator == '"TodayspickPage"');
          if (navigator == '"TodayspickPage"') {
            //I TRIED THESE ALL WAYS
            // this.nav.setRoot(TodayspickPage);
            // this.rootPage=TodayspickPage;
            // this.app.nav.push(TodayspickPage);
           //this.nav.push(TodayspickPage);
          }



        }

      };


      window["plugins"].OneSignal
        .startInit("47c084d5-**************437ca9f9bbd", "8324*******08")
        .inFocusDisplaying(OneSignal.OSInFocusDisplayOption.Notification)
        .handleNotificationOpened(notificationOpenedCallback)
        .endInit();

最佳答案

我还使用 OneSignal 进行推送通知,我使用这种方式来实现:

initializeApp() {    
this.platform.ready().then(() => {

    let self = this;
    var notificationOpenedCallback = async function(jsonData) {
      switch (self.user.role) {
        case "client":
          self.router.navigate(["history-customer"]);
          break;
        case "provider":
          self.router.navigate(["history-provider"]);
          break;
        default:
          self.router.navigate(["history-customer"]);
      }
    };

    window["plugins"].OneSignal.startInit(
      "03b**************c7",
      "1**********2"
    )
      .handleNotificationOpened(notificationOpenedCallback)
      .endInit();

    window["plugins"].OneSignal.setSubscription(true);
  });
}

所有内容都在 app.component.ts 上的 platform.ready 上,根据您的情况更改代码。

我用

let self = this

因为我猜想 startInit 会收到回调,所以有必要这样做,并且我使用 Router 在页面之间导航。

import { Router } from "@angular/router"; 

我的项目的结果,其工作原理与应用程序外部的点击通知相同。

希望对您有所帮助:)

enter image description here

关于angular - 如何在 ionic 3 中点击 One Signal 推送通知时导航到特定页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57094197/

相关文章:

Angular2 使用组件外部的动画

angular - 如何使用angular-cli ng build命令创建的/dist文件夹文件来创建一个可以自行运行的应用程序?

angular - oidc-client-js 回调后无响应状态

angular - *ngFor 在某些值 [date] 更改时添加某些 div [date] 元素

java - SSLHandshakeException unknown_ca apns java

android - 如何使向上按钮返回而不是打开抽屉导航

html - 带下拉导航的导航栏未占用整个浏览器宽度

ios - 你能从应用程序端静音传入的推送通知吗[iOS]

当应用程序处于后台时,不会调用 cordova 推送插件回调

css - 如何使用 twitter bootstrap v 3.1.1 使平板电脑使用与手机相同的菜单?