使用JavaScript检测Android后退按钮的使用

时间:2013-12-04 11:15:23

标签: javascript android

我的网站有面包屑,突出显示用户已达到的流程中的哪个阶段。面包屑依赖于浏览器历史记录来告诉在使用浏览器后退按钮时应该突出显示哪个阶段,但是在使用硬件后退按钮的Android设备上,这似乎被绕过并且突出显示的痕迹不会改变。

我的网站没有使用PhoneGap或类似的东西,因为它通常不是移动网站,因此可以捕获Android后退按钮的使用,以便我可以添加一个事件来根据历史日志设置痕迹突出显示使用按钮,只使用JavaScript或jQuery?

2 个答案:

答案 0 :(得分:1)

<强> 1。使用popstate活动。

https://developer.mozilla.org/en-US/docs/Web/Events/popstate

window.onpopstate = function(e) { 
   updateBreadCrumbObservable();
};

<强> 2。使用onhashchange活动。

window.onhashchange = function(e) {
   updateBreadCrumbObservable();
}

您可以使用事件参数来获取有关所触发事件的更多描述。

答案 1 :(得分:0)

你可以检查活动的 onBackPressed 方法,然后调用 super.onBackPressed(); 触发调用javascript方法的方法。

例如:

override fun onBackPressed() {
    if (handleBackPress) {
        myWebView.loadUrl("javascript:backButtonPressed()")
    }else {
        super.onBackPressed()
    }
}

在上面的示例中,如果 handleBackPress 布尔变量为true,那么它将尝试在webview中调用javascript文件的 backButtonPressed()方法。

如果您需要任何解释或帮助,请告诉我。