$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

To know more about $ionicModal

To know more about $ionicPlatform.registerBackButtonAction