检查navigator.app.backHistory是否存在

时间:2017-06-19 18:35:12

标签: android angularjs ionic-framework mobile-application

我有一个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 个答案:

答案 0 :(得分:1)

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

.find

否则,您还可以使用($ ionicHistory,$ state)处理复杂情况:

<ul class="category-checklist form-no-clear">
    <li>
        <label>
            <input type="radio" name="post_category" value="1" class="post-category">
            <span class="tag-name">Uncategorised</span>
        </label>
    </li>
    <li>
        <label>
            <input type="radio" name="post_category" value="2" class="post-category">
            <span class="tag-name">Basic Statistics</span>
       </label>
    </li>
    <li>
        <label>
            <input type="radio" name="post_category" value="3" class="post-category">
            <span class="tag-name">Advanced Statistics</span>
        </label>
    </li>
</ul>`

$('.category-checklist li').click(function() {
    $('.category-checklist li').removeClass('selected');
    $(this).addClass('selected').find("input[type='radio']").prop('checked', true);
 });