Выйти из приложения с помощью IONIC 3 с определенной страницы с помощью кнопки "Назад"
Я пытаюсь выйти из приложения с определенной страницы (HometabsPage), используя кнопку "Назад". Я использую ниже код:
var lastTimeBackPress = 0;
var timePeriodToExit = 2000;
platform.registerBackButtonAction(() => {
let view = this.nav.getActive();
if (view.component.name == 'SignInPage' ) {
if (new Date().getTime() - lastTimeBackPress < timePeriodToExit) {
platform.exitApp(); //Exit from app
} else {
this.common.presentToast("Press back again to exit App?", "bottom");
lastTimeBackPress = new Date().getTime();
}
} else {
this.nav.pop({});
}
});
В моем приложении есть два раздела SignIn и Hometabs. Над кодом хорошо работает на странице входа.
if (view.component.name == 'SignInPage')
Но я пытаюсь использовать " HometabsPage " вместо " SignInPage ", после чего на всех страницах показывается тостовое сообщение.
Пожалуйста, помогите мне.
2 ответа
@Neotrixs После входа в систему установите HomeTabsPage в качестве своей корневой страницы. Это предотвратит возврат вашего приложения в LoginPage.
Для аппаратной кнопки возврата я сделал это следующими способами:
/* REGISTERING BACK BUTTON TO HANDLE HARDWARE BUTTON CLICKED */
registerBackButton(){
let backButton = this.platform.registerBackButtonAction(() => {
var stackSize = this.nav.length();
if(stackSize < 1)
this.askForPressAgain();
else
this.nav.pop();
},1);
}
/*ASKING FOR PRESS BACK BUTTON AGAIN*/
askForPressAgain(){
let view = this.nav.getActive();
if (view.component.name == 'ProjectsPage' || view.component.name == 'LoginPage') {
if ((new Date().getTime() - this.lastTimeBackPress) < this.timePeriodToExit) {
this.platform.exitApp(); //Exit from app
} else {
this.toast.showBottomToast(BACK_BTN_MESSAGE);
this.lastTimeBackPress = new Date().getTime();
}
}
}
В приведенном выше коде сначала я проверил размер стека, если он меньше 1, а затем показал тост для подтверждения выхода из приложения.
Надеюсь, это поможет вам или кому-то еще.
Ionic последняя версия 3.xx
Файл app.component.ts:
import { Platform, Nav, Config, ToastController } from 'ionic-angular';
constructor(public toastCtrl: ToastController, public platform: Platform) {
platform.ready().then(() => {
//back button handle
//Registration of push in Android and Windows Phone
var lastTimeBackPress = 0;
var timePeriodToExit = 2000;
platform.registerBackButtonAction(() => {
// get current active page
let view = this.nav.getActive();
if (view.component.name == "TabsPage") {
//Double check to exit app
if (new Date().getTime() - lastTimeBackPress < timePeriodToExit) {
this.platform.exitApp(); //Exit from app
} else {
let toast = this.toastCtrl.create({
message: 'Press back again to exit App?',
duration: 3000,
position: 'bottom'
});
toast.present();
lastTimeBackPress = new Date().getTime();
}
} else {
// go to previous page
this.nav.pop({});
}
});
});
}