Android 检查navigator.app.backHistory是否存在

Android 检查navigator.app.backHistory是否存在,android,angularjs,ionic-framework,mobile-application,Android,Angularjs,Ionic Framework,Mobile Application,我有一个Ionic v1应用程序,在Android版本中,我试图覆盖默认的硬件后退按钮。我希望它转到应用程序的上一页,而不是关闭应用程序的“硬件后退”按钮。这是我在运行块中的代码: $ionicPlatform.registerBackButtonAction(function () { if (typeof(navigator) != 'undefined' && typeof(navigator.app) != 'undefined' &&am

我有一个Ionic v1应用程序,在Android版本中,我试图覆盖默认的硬件后退按钮。我希望它转到应用程序的上一页,而不是关闭应用程序的“硬件后退”按钮。这是我在运行块中的代码:

$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()中是否还有其他历史记录状态?

您应该检查视图是否是您的主页:

            if($state.current.name === "bookevent.home"){
              navigator.app.exitApp();
            }
            else {
                navigator.app.backHistory();
            }
否则,您还可以使用($IonichStory,$state)处理复杂情况:

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