- 创建
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)
}
}
}
- app.module.ts引入
import { BackButtonService } from '../service/back-ser/back-ser' providers
中写入BackButtonService
- app.component.ts中
constructor(backButtonService: BackButtonService, platform: Platform) {
platform.ready().then(() => {
backButtonService.registerBackButtonAction()
})
}
可以测试了。这个是在别人的基础上改的来源不记得了