任何人都可以在特定页面的Android设备上给我硬件后退按钮事件监听器的例子吗?
我正在使用此代码但无法使用。
$(document).on('pageshow', function(){
document.addEventListener("backbutton", function(e){
if($.mobile.activePage.is('#dept-list-page')){
e.preventDefault();
alert("back button pressed");
navigator.app.exitApp();
}else{
history.back();
}
}, false);
});
在Webview中,我使用的是keydown方法。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN) {
switch (keyCode) {
case KeyEvent.KEYCODE_BACK:
if (webView != null)
if (webView.canGoBack()) {
webView.goBack();
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
但是在一个webview中动态生成了许多html页面,我想在特定页面上查看。
答案 0 :(得分:1)
如果您使用的是phonegap
(cordova),那么您需要在eventlistener
之后设置deviceReady
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", onBackKeyDown, false);
}
function onBackKeyDown(e){
if($.mobile.activePage.is('#dept-list-page')){
//if the page checking doesnt work try:
// $.mobile.activePage.attr("id") == '#dept-list-page'
e.preventDefault();
alert("back button pressed");
navigator.app.exitApp();
}else{
history.back();
}
}
如果您使用Android Webview
,则应该使用Android代码中的后退按钮来处理
@Override
public void onBackPressed (){
if(webView.canGoBack()) webView.goBack();
else super.onBackPressed();
}