我试图覆盖硬件后退按钮功能。 所以,下面的代码一切正常。
但是,我的应用中有两个$ ionicModal。当$ ionicModal打开和关闭。硬件后退按钮停止工作,app无法用后退按钮关闭? 甚至没有$ ionicPlatform.registerBackButtonAction函数被调用。
$state.$current.name == "";
var backbutton=0;
$ionicPlatform.registerBackButtonAction(function (event) {
if (($state.$current.name == "app.intro") ||
($state.$current.name == "app.main.home") ||
($state.$current.name == "app.account") ||
($state.$current.name == "app.myBusiness")||
($state.$current.name == "app.support")||
($state.$current.name == "app.noConnection")) {
if(backbutton==0){
backbutton++;
window.plugins.toast.showLongBottom('Press again to exit');
$timeout(function(){backbutton=0;},3000);
}else{
navigator.app.exitApp();
}
console.log("one");
}else if($state.$current.name == "app.welcome.takeControl") {
console.log("two");
$state.go("app.main.home");
}else{
console.log("three");
navigator.app.backHistory();
}
}, 100);
谢谢..
答案 0 :(得分:2)
首先检查打开的离子模态实例是否被正确移除。如果您打开两次相同的模态实例但只关闭一次,则可能会出现后退按钮问题。因此,模态的一个实例可能尚未清理。
在这种情况下,硬件后退按钮将尝试关闭每次尚未清理的模态而不是前一个视图。由于'Dismiss modal'的优先级(200)高于'Return to previous view'(100)。
registerBackButtonAction的优先级如下: