Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ionic framework 使用Hardware Back(硬件后退)按钮从特定页面退出使用IONIC 3开发的应用程序_Ionic Framework_Ionic2_Ionic3_Back Button Control - Fatal编程技术网

Ionic framework 使用Hardware Back(硬件后退)按钮从特定页面退出使用IONIC 3开发的应用程序

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 (

我尝试使用硬件后退按钮从特定页面(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({});
    }
  });
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中,请遵循此指南。