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

Detect use of Android back button using JavaScript

本文关键字:按钮 JavaScript 检测 Android 使用      更新时间:2024-02-21

我的网站有一些面包屑,可以突出显示用户已经到达流程的哪个阶段。面包屑依赖于浏览器历史记录来判断在使用浏览器后退按钮时应该突出显示哪个阶段,但在使用硬件后退按钮的Android设备上,这似乎被绕过了,突出显示的面包屑不会改变。

我的网站没有使用PhoneGap或类似的东西,因为它通常不是一个移动网站,所以是否可以捕捉Android后退按钮的使用,这样我就可以在使用该按钮时添加一个事件,以基于历史日志设置面包屑高亮显示,只需使用JavaScript或jQuery?

1。使用popstate事件

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

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

2.使用onhashchange事件

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

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

您可以在活动的onBackPressed方法内部以及调用super.onBackPressed()之前进行检查触发该方法调用javascript方法。

例如:

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

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

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