2017-06-19 131 views
0

我有一个Ionic v1应用程序,在Android版本中,我试图覆盖默认的硬件返回按钮。而不是关闭应用程序的硬件后退按钮,我希望它能够转到应用程序中的上一页。这是我在运行块代码:检查navigator.app.backHistory是否存在

$ionicPlatform.registerBackButtonAction(function() { 
      if (typeof(navigator) != 'undefined' && typeof(navigator.app) != 'undefined' && typeof(navigator.app.backHistory) == 'function') 
      { 
       navigator.app.backHistory(); 
      } 
      else { 
       navigator.app.exitApp(); 
      } 
     }, 100); 

你可以看到硬件后退按钮将用户导航到以前的状态在我的应用程序本身,而不是关闭该应用程式。但是我想要做的是,如果navigator.app.backHistory()中没有更多堆栈,我希望它退出应用程序。我怎样才能做到这一点?我如何检查navigator.app.backHistory()中是否有更多历史状态?

回答

1

相反,你应该检查一下看法是你的主页:

  if($state.current.name === "bookevent.home"){ 
       navigator.app.exitApp(); 
      } 
      else { 
       navigator.app.backHistory(); 
      } 

否则,你也可以处理复杂的情况与($ ionicHistory,$状态):

if ($state.current.name === "bookevent.detail" || $state.current.name === "bookevent.online" || $state.current.name === "bookevent.offline") { 
     navigator.app.backHistory(); 
    } 
    else if($state.current.name === "bookevent.home"){ 
     navigator.app.exitApp(); 
    } 
    else { 
     $ionicHistory.nextViewOptions({ 
      disableBack: true 
     }); 
     $state.go("bookevent.home"); 
    }