2015-10-19 91 views
0

我试图覆盖硬件后退按钮功能。 因此,下面的代码一切正常。硬件后退按钮不起作用?

但是,在我的应用程序中有两个$ ionicModal。当$ ionicModal打开和关闭。硬件后退按钮停止工作,应用程序无法关闭后退按钮? 甚至没有$ 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); 

谢谢。

回答

2

首先检查其打开适当去除越来越离子态实例是否都没有。如果您打开两次相同的模式实例但仅关闭一次,则可能会发生后退按钮问题。所以一个模态的实例可能还没有清理。

在这种情况下,硬件后退按钮将尝试关闭每次都未清理的模式,而不是转到上一个视图。由于'消除模态'具有比'返回到先前视图'(100)更高的优先级(200)。

用于registerBackButtonAction优先级如下:

  • 返回前一视图= 100
  • 关闭侧菜单= 150
  • 辞退模态= 200
  • 关闭动作片= 300
  • Dismiss popup = 400
  • Dismiss loading overlay = 500

To know more about $ionicModal

To know more about $ionicPlatform.registerBackButtonAction

+0

很好的解释..!它做..!我是开相同的离子态两次..!闭只一次..! –

相关问题