2017-06-19 151 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"); 
    }