前言
ionic開發(fā)出的app還是有些不方便的地方,比如不小心按返回鍵退出后,再打開還得等個(gè)一段時(shí)間,所以還是做一個(gè)這個(gè)效果出來方便調(diào)試等,這個(gè)功能也是市面上app必備的
本篇日記僅涉及到homepage
home.ts
public backButtonPressed: boolean = false;
在constructor中添加,這些都會(huì)用上
public navCtrl: NavController,
public platform: Platform,
public toastCtrl: ToastController,
public app: App
同樣在constructor內(nèi)添加
this.platform.ready().then(() => {
//雙擊退出
this.platform.registerBackButtonAction(() => {
let activeVC = this.navCtrl.getActive();
let page = activeVC.instance;
if (page instanceof HomePage) {
this.showExit();
} else {
this.app.goBack();
}
}, 999)
});
做了一個(gè)判斷,主要是區(qū)分當(dāng)前的頁面是不是HomePage,不是得話就是正常的goBack()效果,反之就觸發(fā)showExit()方法,不做區(qū)分的話,從當(dāng)前頁面使用setRoot的方式跳轉(zhuǎn)到其他的頁面也會(huì)有雙擊退出的這個(gè)功能(如有特別的需要,也可以不用判斷是不是HomePage)
PS:后面的999代表什么意思,暫時(shí)還不清楚
在class HomePage當(dāng)中添加showExit()方法
showExit() {
if (this.backButtonPressed) {
this.platform.exitApp();
} else {
let toast = this.toastCtrl.create({
message: '再按一次退出',
duration: 2000,
position: 'middle'
})
toast.present(toast);
this.backButtonPressed = true;
setTimeout(() => {
this.backButtonPressed = false;
}, 2000)
}
}
使用backButtonPressed判斷是否可以退出,當(dāng)它為true的時(shí)候再點(diǎn)擊,才會(huì)進(jìn)入第一個(gè)if的判斷,退出app