前一久在做一個以ionic2的小項目,在安卓真機調試中遇到了一個小問題,就是類似時間選擇器、城市選擇器、彈窗等沒有辦法被返回,找了好長時間資料沒有頭緒,最近忙于考試,在空閑時間又找,發現了一篇文章,找到了解決方法。
廢話不多說,貼碼:
registerBackButtonAction(){
this.platform.registerBackButtonAction(() => {
const overlay = this.app._appRoot._overlayPortal.getActive(); //這里返回各種彈窗,選擇器社么的,最好放在最上面
if(overlay && overlay.dismiss) {
overlay.dismiss();
return;
}
const nav = this.app.getActiveNav();
let activeVC = nav.getActive();
let page = activeVC.instance;
if(this.keyboard.isOpen) {
this.keyboard.close(); //關閉鍵盤
}
if(this.menu.isOpen()){
this.menu.close(); //關閉側欄菜單
return;
}
//當前頁面非tab欄
if (page instanceof TabsPage) {
this.app.goBack();
return;
}
if(nav.canGoBack()) {
nav.pop();
}else{
this.showExit(); //這里是退出app的方法,自己按具體需求寫
}
}, 1);
}
這個是注冊返回按鍵的函數,寫在app.component.ts中,并且在platform.ready().then()中調用,就ok了,不要忘記引入依賴。
個人一點點心得,如有錯誤,歡迎指正討論-