首页 文章

检查navigator.app.backHistory是否存在

提问于
浏览
0

我有一个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() 中没有更多的堆栈,我希望它退出App . 我怎样才能做到这一点?如何检查 navigator.app.backHistory() 中是否还有其他历史状态?

1 回答

  • 1

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

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

    否则,您还可以使用($ ionicHistory,$ 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");
        }
    

相关问题