Ionic framework 使用Hardware Back(硬件后退)按钮从特定页面退出使用IONIC 3开发的应用程序
我尝试使用硬件后退按钮从特定页面(HometabsPage)退出应用程序。 我使用以下代码:Ionic framework 使用Hardware Back(硬件后退)按钮从特定页面退出使用IONIC 3开发的应用程序,ionic-framework,ionic2,ionic3,back-button-control,Ionic Framework,Ionic2,Ionic3,Back Button Control,我尝试使用硬件后退按钮从特定页面(HometabsPage)退出应用程序。 我使用以下代码: var lastTimeBackPress = 0; var timePeriodToExit = 2000; platform.registerBackButtonAction(() => { let view = this.nav.getActive(); if (view.component.name == 'SignInPage' ) { if (
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({});
}
});
var lastTimeBackPress=0;
var timePeriodToExit=2000;
平台注册表BackButtonAction(()=>{
让view=this.nav.getActive();
如果(view.component.name==“SignInPage”){
如果(新建日期().getTime()-lastTimeBackPress
在我的应用程序中,有两个部分登录和主页标签。上述代码在登录页面上正常工作
如果(view.component.name==“SignInPage”)
但是我尝试使用“HometabsPage”而不是“signipage”,然后在所有页面中显示toast消息
请帮助我。@neotrix登录后,将HomeTabsPage设置为您的根页面。它将阻止你的应用返回到登录页面
对于硬件后退按钮,我通过以下方法完成:
/* 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();
}
}
/*注册后退按钮以处理单击的硬件按钮*/
registerBackButton(){
让backButton=this.platform.RegisterBackButton操作(()=>{
var stackSize=this.nav.length();
如果(堆栈大小<1)
这个。askforpressAgree();
其他的
this.nav.pop();
},1);
}
/*要求再次按下“后退”按钮*/
askforpressAgree(){
让view=this.nav.getActive();
if(view.component.name==“ProjectsPage”| | view.component.name==“LoginPage”){
if((new Date().getTime()-this.lastTimeBackPress)
}
在上面的代码中,首先我检查了堆栈大小,如果小于1,则显示Toast以确认退出应用程序。希望它能帮助您或其他人。爱奥尼亚最新版本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({});
}
});
});
}
import{Platform,Nav,Config,ToastController}来自“离子角”;
构造函数(公共toastCtrl:ToastController,公共平台:平台){
platform.ready()。然后(()=>{
//后退按钮手柄
//在Android和Windows Phone中注册推送功能
var lastTimeBackPress=0;
var timePeriodToExit=2000;
平台注册表BackButtonAction(()=>{
//获取当前活动页面
让view=this.nav.getActive();
if(view.component.name==“TabsPage”){
//再次检查以退出应用程序
如果(新建日期().getTime()-lastTimeBackPress
有点不清楚您想做什么。你能添加你试过但没用的代码吗?通常,“后退”按钮执行“nav.pop()”。这意味着当你按下“硬件后退”按钮时,你希望有一个空堆栈退出应用程序。你能将该代码放入app.component.ts吗?@user7722867登录后,当我单击“硬件后退”按钮时,它会从应用程序主页(选项卡)页面重定向到登录页面。但我想在登录后,若用户点击后退按钮应用程序显示“再次按下后退退出应用程序?”但它并没有显示,它只显示在登录页面,因为上述code@Philip是的,我将代码放在app.component.ts中,请遵循此指南。