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是否升級(jí)
this.registerBackButtonAction(this.rootPage);//注冊(cè)返回按鍵事件
});
}
registerBackButtonAction(tabRef: Tabs): void {
//registerBackButtonAction是系統(tǒng)自帶的方法
this.platform.registerBackButtonAction(() => {
//獲取NavController
let activeNav: NavController = this.appCtrl.getActiveNavs()[0];
//如果可以返回上一頁(yè),則執(zhí)行pop
if (activeNav.canGoBack()) {
activeNav.pop();
} else {
this.showExit()
}
});
}
//退出應(yīng)用方法
private showExit(): void {
//如果為true,退出
if (this.backButtonPressed) {
this.platform.exitApp();
} else {
//第一次按,彈出Toast
this.toastCtrl.create({
message: '再按一次退出應(yīng)用',
duration: 2000,
position: 'bottom'
}).present();
//標(biāo)記為true
this.backButtonPressed = true;
//兩秒后標(biāo)記為false,如果退出的話(huà)犁河,就不會(huì)執(zhí)行了
setTimeout(() => this.backButtonPressed = false, 2000);
}
}
}