js控制android原生返回按钮

js是无法直接监听物理返回键的,但是我们可以用HTML5的 History 新 API pushState 来曲线监听 Android 设备的返回按钮

原理:

在页面加载后往历史记录写入一个 state, 并监听 popstate 事件, 如果返回按钮被按下, 则会触发 popstate, 比对到触发的 state 跟写入的一致, 则认为返回按钮被按下了.

Example:
页面引入xback.js后, 使用下面的方法监听返回按钮事件, 支持多方法绑定
XBack.listen(function(){
	alert('oh! you press the back button');
});
xback.js
/*使用HTML5的history新API pushState来曲线监听Android设备的返回按钮
/*增加个分号,防止压缩时出错
;!function(pkg,undefined){
var STATE =  'x-back';
var element;
var onPopState = function(event){
event.state === STATE && fire();
}
var record = function(state){
history.pushState(state,null,location.href);
}
var fire = function(){
var event = document.createEvent('Evenets');
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');




你可能感兴趣的:(混合开发)