ionic2 安卓物理按键的一点小发现

前一久在做一个以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了,不要忘记引入依赖。

个人一点点心得,如有错误,欢迎指正讨论-

你可能感兴趣的:(ionic2 安卓物理按键的一点小发现)