$ionicModal 打开后硬件后退按钮不起作用?
hardware back button doesn't work after $ionicModal is opened?
我正在尝试覆盖硬件后退按钮功能。
所以,下面的代码一切正常。
但是,我的应用程序中有两个 $ionicModal。当 $ionicModal 打开并且 closed.Hardware 后退按钮停止工作时,应用程序无法使用后退按钮关闭?
甚至没有调用 $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);
谢谢..
首先检查正在打开的离子模态实例是否被正确删除。如果您打开同一个模态实例两次但仅关闭一次,则可能会出现后退按钮问题。因此,模态的一个实例可能尚未清理。
在这种情况下,硬件后退按钮将尝试关闭每次尚未清理的模态,而不是转到上一个视图。由于 'Dismiss modal' 比 'Return to previous view'(100) 具有更高的优先级 (200)。
registerBackButtonAction 的优先级如下:
- Return 到上一个视图 = 100
- 关闭侧边菜单 = 150
- 关闭模态 = 200
- 关闭操作 sheet = 300
- 关闭弹出窗口 = 400
- 关闭加载覆盖 = 500
我正在尝试覆盖硬件后退按钮功能。 所以,下面的代码一切正常。
但是,我的应用程序中有两个 $ionicModal。当 $ionicModal 打开并且 closed.Hardware 后退按钮停止工作时,应用程序无法使用后退按钮关闭? 甚至没有调用 $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);
谢谢..
首先检查正在打开的离子模态实例是否被正确删除。如果您打开同一个模态实例两次但仅关闭一次,则可能会出现后退按钮问题。因此,模态的一个实例可能尚未清理。
在这种情况下,硬件后退按钮将尝试关闭每次尚未清理的模态,而不是转到上一个视图。由于 'Dismiss modal' 比 'Return to previous view'(100) 具有更高的优先级 (200)。
registerBackButtonAction 的优先级如下:
- Return 到上一个视图 = 100
- 关闭侧边菜单 = 150
- 关闭模态 = 200
- 关闭操作 sheet = 300
- 关闭弹出窗口 = 400
- 关闭加载覆盖 = 500