$ ionicModal打开后,硬件后退按钮不起作用?

时间:2015-10-19 12:10:46

标签: android ionic-framework back-button

我试图覆盖硬件后退按钮功能。  所以,下面的代码一切正常。

但是,我的应用中有两个$ 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);

谢谢..

1 个答案:

答案 0 :(得分:2)

首先检查打开的离子模态实例是否被正确移除。如果您打开两次相同的模态实例但只关闭一次,则可能会出现后退按钮问题。因此,模态的一个实例可能尚未清理。

在这种情况下,硬件后退按钮将尝试关闭每次尚未清理的模态而不是前一个视图。由于'Dismiss modal'的优先级(200)高于'Return to previous view'(100)。

registerBackButtonAction的优先级如下:

  • 返回上一个视图= 100
  • 关闭侧边菜单= 150
  • Dismiss modal = 200
  • 关闭行动表= 300
  • 取消popup = 400
  • 取消加载overlay = 500

To know more about $ionicModal

To know more about $ionicPlatform.registerBackButtonAction