ionic android 双击退出

app.component.ts

import { Component } from '@angular/core';
import { Platform , ToastController, App ,Tabs,NavController } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';

import { TabsPage } from '../pages/tabs/tabs';
// import { NativeService } from "../provider/NativeService";

@Component({
  templateUrl: 'app.html'
})
export class MyApp {
  rootPage:any = TabsPage;
  backButtonPressed: boolean = false;
  constructor(
    public platform: Platform, 
    statusBar: StatusBar, 
    splashScreen: SplashScreen,
    // private nativeService:NativeService,
    public appCtrl: App, 
    public toastCtrl: ToastController
  ) {
    platform.ready().then(() => {
      // Okay, so the platform is ready and our plugins are available.
      // Here you can do any higher level native things you might need.
      statusBar.styleDefault();
      splashScreen.hide();

      // this.nativeService.detectionUpgrade();//检查app是否升级
      this.registerBackButtonAction(this.rootPage);//注册返回按键事件

    });
  }
  registerBackButtonAction(tabRef: Tabs): void {
    
    //registerBackButtonAction是系统自带的方法
    this.platform.registerBackButtonAction(() => {
      //获取NavController
      let activeNav: NavController = this.appCtrl.getActiveNavs()[0];
      //如果可以返回上一页,则执行pop
      if (activeNav.canGoBack()) {
        activeNav.pop();
      } else {
        this.showExit()
      }
    });
  }
    //退出应用方法
    private showExit(): void {
      //如果为true,退出
      if (this.backButtonPressed) {
        this.platform.exitApp();
      } else {
          //第一次按,弹出Toast
          this.toastCtrl.create({
              message: '再按一次退出应用',
              duration: 2000,
              position: 'bottom'
          }).present();
        //标记为true
        this.backButtonPressed = true;
        //两秒后标记为false,如果退出的话,就不会执行了
        setTimeout(() => this.backButtonPressed = false, 2000);
      }
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • core package 概要:Core是所有其他包的基础包.它提供了大部分功能包括metadata,templa...
    LOVE小狼阅读 2,891评论 0 3
  • 在Ionic2项目结构解析中,我们知道在 src/app/app.component.ts 初始化项目,因此我们可...
    待花谢花开阅读 983评论 0 1
  • STEP: Prerequist: (1) NodeJS: download the latest version...
    于恺雯阅读 584评论 0 1
  • 思这个字,有思考,也有反思的意思。 这一年过来我觉得没有什么进步,可能主要是在工作上所造成的影响吧,因为在公司基本...
    DuckInDark阅读 526评论 0 0
  • 玫瑰牵着她的狗,在秋日的午后瞎逛着,在她这个年纪,已经被时代归属到大龄剩女的圈子了,玫瑰不急,急的倒是父母以及一大...
    骊玥阅读 598评论 0 1

友情链接更多精彩内容