1. 创建back-ser.ts文件
import { Injectable } from \'@angular/core\'
import { Platform, ToastController, App, NavController } from \'ionic-angular\'

@Injectable()
export class BackButtonService {
  backButtonPressed: boolean = false
  constructor(public platform: Platform, public appCtrl: App, public toastCtrl: ToastController) {}
  registerBackButtonAction(){
    this.platform.registerBackButtonAction(() => {
      let activeNav: NavController = this.appCtrl.getActiveNavs()[0]
      if (activeNav.canGoBack()) {
        activeNav.pop()
      } else {
        this.showExit()
      }
    })
  }
  showExit(){
    if (this.backButtonPressed) {
      this.platform.exitApp()
    } else {
      this.toastCtrl
        .create({
          message: \'再按一次退出应用\',
          duration: 2000,
          position: \'top\'
        })
        .present()
      this.backButtonPressed = true
      setTimeout(() => (this.backButtonPressed = false), 4000)
    }
  }
}
  1. app.module.ts引入import { BackButtonService } from \'../service/back-ser/back-ser\' providers中写入BackButtonService
  2. app.component.ts中
constructor(backButtonService: BackButtonService, platform: Platform) {
    platform.ready().then(() => {
      backButtonService.registerBackButtonAction()
      
    })
  }

可以测试了。这个是在别人的基础上改的来源不记得了

收藏 打印