ионная вкладка не выбирается из push-уведомления - PullRequest
0 голосов
/ 09 июля 2019

У меня есть 5 вкладок в моем приложении ionic 3, и они работают, как и ожидалось, в приложении.

Теперь я внедряю push-уведомления FCM и пытаюсь перенаправить пользователя из уведомления на конкретный экран, используя приведенный ниже код

this.fcm.onNotification().subscribe(data => {
        if(data.wasTapped){
          if(window.localStorage.getItem("rememberMe") == "true"){
            this.rootPage = TabsPage;
            if(data.location == "Page2"){

              this.app.getRootNav().getActiveChildNav().select(0);
              this.eve.publish('user:created', 0);
              setTimeout(() => {
                this.app.getActiveNav().push(Page2,{'storyData':data,'imgpath':'pathtoimage'});
              }, 100);

            } else if(data.location == "Page1"){
              this.app.getRootNav().getActiveChildNav().select(0);
              this.eve.publish('user:created', 0);
            } else if(data.location == "Page3") {
              this.app.getRootNav().getActiveChildNav().select(3);
              this.eve.publish('user:created', 3);
            }
          }
          console.log("Received in background");
        } else {
          console.log("Received in foreground");
        };
      });

это работает нормально, когда приложение убито или не работает в фоновом режиме, и я могу перенаправить пользователя на нужные страницы вместе с активными соответствующими вкладками.

когда приложение находится в фоновом режиме, страницы снова отлично загружаются, но активная вкладка не выбирается, вместо нее отображается ранее выбранная вкладка.

tabs.html

<ion-tabs selectedIndex={{dat}} (ionChange)="tada($event)">
  <ion-tab style="font-family:segoeprb" [root]="tab1Root" tabTitle="tab1" tabIcon="icon"></ion-tab>
  <ion-tab [show]="guest" [root]="tab2Root" tabTitle="tab2" tabIcon="icon"></ion-tab>
  <ion-tab [show]="guest" [root]="tab3Root" tabTitle="tab3" tabIcon="icon"></ion-tab>
  <ion-tab [root]="tab4Root" tabTitle="tab4" tabIcon="icon"></ion-tab>
  <ion-tab [show]="guest" [root]="tab5Root" tabTitle="tab5" tabIcon="icon"></ion-tab>
</ion-tabs>

здесь я использую selectedIndex, добавленный к dat, и обновляю его, используя события, которые выталкиваются из app.component, как вы можете видеть.

tabs.ts

eve.subscribe('user:created', (data) => {
       this.dat = data;
       console.log(this.dat);
    });

здесь я вижу переданное значение индекса вкладки, но оно не обновляется, когда приложение загружается из фонового режима.

...