【问题标题】:Handling Android back button in jQuery Mobile在 jQuery Mobile 中处理 Android 后退按钮
【发布时间】:2013-05-21 14:34:02
【问题描述】:

我正在创建一个包含在 Titanium 应用程序的 web 视图中的 jQuery Mobile 应用程序。当按下 Android 后退按钮时,它会退出应用程序而不是转到上一页(在我看来,这不是最好的默认行为。)我试图通过在应用程序加载时执行以下代码来解决这个问题:

document.addEventListener("deviceready", function () {
            alert("adding back button event");
            document.addEventListener("backbutton", function (e) {
                alert("in back button event");
                if ($.mobile.activePage.is('#homepage')) {
                    alert("exit app");
                    e.preventDefault();
                    navigator.app.exitApp();
                }
                else {
                    alert("go back");
                    navigator.app.backHistory()
                }
            }, false);
        }, false);

我到处看到关于这个问题的线程,他们说要使用后退按钮事件,但它根本没有被触发。如果我将它包装在一个 deviceready 事件中,就像上面一样,那么 deviceready 也不会被调用。 webview 是否以某种方式抑制了这些事件,或者是否有另一种方法可以使用 jQuery Mobile 来做到这一点?

【问题讨论】:

    标签: android jquery-mobile webview titanium back-button


    【解决方案1】:

    您的示例将不起作用,因为您尝试使用 Phonegap API 调用来处理后退按钮。

    您需要使用适合 Appcelerator 的东西。首先你应该检查一下 webViews 的 canGoBack、canGoForward、goBack 和 goForward 函数。更多信息可以在here找到。

    基本上你需要创建一个函数来处理你的 webview 中的后退按钮。像这样的:

    detailContainerWindow.addEventListener('android:back', function(e){     
        if (detailView.canGoBack()) {
                detailView.goBack();
            } else {
                detailContainerWindow.close();
            }
    });
    

    【讨论】:

      猜你喜欢
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      • 2011-04-02
      相关资源
      最近更新 更多