При открытии закрытого приложения из push-уведомления кнопка «Назад» не отображается в навигационной панели.Если приложение открыто, появляется кнопка.
Я попытался проверить длину navController и вставить страницу, если длина равна 0. Но кнопка «Назад» все равно не отображается.
Какие-нибудь советы о том, как заставить это работать?
<ion-header>
<ion-navbar>
<ion-title>
Title
</ion-title>
</ion-navbar>
</ion-header>
constructor(navCtrl: NavController) {
let lastNavLength = navCtrl.length();
if (lastNavLength == 0) {
console.log('empty');
navCtrl.insert(0, TabsPage);
}
}
app.component.ts
private onPushOpened(payload: OSNotificationPayload) {
if (payload.additionalData.eventKey) {
this.notificationOpen = true;
this.appCtrl.getRootNav().push('EventPage', {
id: payload.additionalData.eventKey,
event: payload.additionalData.event,
action: 'tapped'
});
}
}
-------------- Редактировать --------------------
app.component.ts
private onPushOpened(payload: OSNotificationPayload) {
if (payload.additionalData.eventKey && payload.additionalData.event) {
this.notificationOpen = true;
this.appCtrl.getRootNav().push('event', {
id: payload.additionalData.eventKey,
event: payload.additionalData.event,
});
}
}
tabs.module.ts
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { TabsPage } from './tabs';
@NgModule({
declarations: [
TabsPage,
],
imports: [
IonicPageModule.forChild(TabsPage),
],
})
export class TabsPageModule { }
tabs.ts
import { Component } from '@angular/core';
import { IonicPage } from 'ionic-angular';
@IonicPage({
name: "TabsPage",
segment: "tabs",
})
@Component({
templateUrl: 'tabs.html'
})
export class TabsPage {
tab1Root = 'HomePage';
tab2Root = 'AboutPage';
tab4Root = 'SettingsPage'
constructor() {
}
}
home.ts
@IonicPage({
name: 'HomePage',
segment: 'home'
})
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
event.ts
@IonicPage({
name: 'EventPage',
defaultHistory: ['HomePage'] .. tried with TabsPage also.
})
@Component({
selector: 'page-event',
templateUrl: 'event.html',
})