2017-06-19 9 views
0

Ich habe eine Ionic v1 App und in der Android Version versuche ich die Standard Hardware Zurück Taste zu übersteuern. Anstelle der Hardware-Zurück-Taste, die die App schließt, möchte ich, dass sie zur vorherigen Seite in der App geht. Dies ist mein Code im Laufblock:Überprüfen, ob navigator.app.backHistory vorhanden ist

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

Sie können sehen, dass die Hardware zurück, um den Benutzer auf den vorherigen Zustand in meiner App navigiert sich stattdessen die App zu schließen. Aber was ich tun möchte, ist, wenn es keine weiteren Stapel in der navigator.app.backHistory() gibt, möchte ich, dass die App beendet wird. Wie kann ich das machen? Wie kann ich überprüfen, ob weitere Verlaufszustände in navigator.app.backHistory() vorliegen?

Antwort

1

Stattdessen sollten Sie überprüfen, ob Ansicht Ihrer Homepage ist:

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

sonst können Sie auch komplexe Situationen mit ($ ionicHistory, $ Zustand) Griff:

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"); 
    } 
Verwandte Themen