使用javascript / jquery检测android后退按钮

时间:2017-11-03 09:32:03

标签: javascript android jquery html

目前我想创建一个函数来检测android后退按钮并按下它并做一些事情。

1)用户打开应用程序,然后单击按钮。此按钮允许用户打开网站。

2)用户填写第2页的信息,他想回到上一页,他点击Android手机上的后退按钮。

3)后退按钮可帮助用户关闭网站并返回我的应用,而不是返回第1页。

有人可以告诉我如何使用jqueryjavascript检查用户按下的后退按钮吗?这样我就可以阻止后退按钮关闭网站,但会重定向到另一个页面。

如果有任何方法可以检测浏览器android后退按钮事件?我想覆盖android后退按钮的默认设置,并在里面添加一些代码。

PS:不使用Java。

  • 顶部的后退按钮(浏览器后退按钮)可以返回到主页面。
  • 底部的后退按钮(后退按钮手机)帮我关闭网站。
  • 我想让底部后退按钮alsso回到上一页。

See this

感谢。

4 个答案:

答案 0 :(得分:3)

您也可以使用javascript实现它。 1.使用以下方法或尝试查找deviceReady方法。

<body onload="onLoad()">

2.在main.js中输入以下代码一旦身体加载,这个函数就会被调用。

function onLoad() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

3.设备准备就绪是在设备准备就绪后触发的功能。

function onDeviceReady() {
        // Register the event listener
        document.addEventListener("backbutton", onBackKeyDown, false);
    }

4.准备就绪后,您可以覆盖后退按钮功能。

function onBackKeyDown() {
// Do stuff here
    }

我可以知道你在寻找这个吗?

OR

您可以使用hashChange事件

window.addEventListener("hashchange", function(e) {
  // ...
})

如果您需要支持旧浏览器,请查看Modernizr的HTML5 Cross Browser Polyfills维基页面中的hashChange Event部分。

答案 1 :(得分:1)

您需要覆盖WebView Activity上的onBackPressed并检查webview是否可以返回。

@Overide
public void onBackPressed(){
  if(webview.canGoBack())
   webview.goBack();
  else
   super.onBackPressed();
}

<强>更新

当给出这个答案时,问题不是针对“仅Javascript”“不用Java编码”等特定的..即仅由后端处理。 这个答案严格针对Android方面而不是后端方面。如果Android的某个人需要这个答案,我会保留这个答案。

答案 2 :(得分:1)

我想说的是,您应该专注于功能,而不是设备对该功能的实现。

Android后退按钮的行为与浏览器后退按钮相同。

当两者都对URL状态做出反应时,您可以通过URL控制行为。您可以通过pushState实现此目的。您可以从MDN here中了解有关pushState的信息,这是有关使用CSS Trick的文章。

答案 3 :(得分:0)

您可以使用javascript 无需jquery

window.addEventListener("hashchange", function(e) {
    if(e.oldURL.length > e.newURL.length)
        alert("back")
});

Demo in codepen

来源:https://stackoverflow.com/a/56233988/6569224