首页 > 移动端web开发,页面如何监听安卓手机物理返回键的回退事件

移动端web开发,页面如何监听安卓手机物理返回键的回退事件

移动端web开发,浏览器或微信浏览器,打开web页面后,如何监听用户触发了安卓手机物理返回键?
你们有用javascript实现过这个功能么?


就是加历史记录,点击返回手机会自动处理,不要你监听。


没办法监听的


这是我修改后的监听事件代码:
;!function(pkg, undefined){ //此声明函数在xback.js文件里有,在app.js里必须再声明一次,不然监听返回事件失败

var STATE = 'x-back';
var element;

var onPopState = function(event){
    event.state === STATE && fire();
    record(STATE);  //初始化事件时,push一下
}

var record = function(state){
    history.pushState(state, null, location.href);
}

var fire = function(){
    var event = document.createEvent('Events');
    event.initEvent(STATE, false, false);
    element.dispatchEvent(event);
}

var listen = function(listener){
    element.addEventListener(STATE, listener, false);
}

!function(){
    element = document.createElement('span');
    window.addEventListener('popstate', onPopState);
    this.listen = listen;
    record(STATE);  
}.call(window[pkg] = window[pkg] || {});

}('XBack');

调用方法:
XBack.listen(function(){

alert('oh! you press the back button');

});


移动端web开发,页面如何监听安卓手机物理返回键的回退事件?你最终是是怎么解决的呢? 这个代码完整的咋写的?


android物理返回键只能通过类似cordova提供的插件来监听,引入cordova后就可以监听backbutton事件了

document.addEventListener("backbutton", onBackKeyDown, false);

关键词:

  1. pagehide

  2. persisted


如果说你的浏览有历史记录的话,点击返回其实就相当于点击浏览器回退键,然后这样的话你是可以通过监听hashchange 或者popstate事件来做处理,如果没有的话,那就无能为力了

【热门文章】
【热门文章】