Android DroidGap禁用后退按钮
任何人都建议,在使用Android DroidGap禁用后退按钮,android,cordova,back-button,Android,Cordova,Back Button,任何人都建议,在使用PhoneGap时,如何禁用后退按钮按下事件 我需要在我的活动中(DroidGapcode)做一些事情来控制后退按钮事件 甚至,以下代码在我的活动中运行良好,但与DroidGap一起使用时不起作用 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { //preventing default
PhoneGap
时,如何禁用后退按钮按下事件
我需要在我的活动中(DroidGap
code)做一些事情来控制后退按钮事件
甚至,以下代码在我的活动
中运行良好,但与DroidGap
一起使用时不起作用
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
return true;
}
return super.onKeyDown(keyCode, event);
}
在我的例子中,我使用Javascript+jquery,如下所示:
$(document).on('backbutton',
function(e){
e.preventDefault();
// do whatever you like here.
});
在appView
上调用setOnKeyListener
帮助了我
我只需要对上面的代码片段做一个小改动,如下所示:
appView.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return onKeyDown(keyCode, event);
}
});
已编辑
当按下事件键时,实际上会发生两个动作-向上动作
&向下动作
因此,应该使用以下命令来获取密钥事件
appView.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
// Do Here whatever you want
return true;
}
return onKeyDown(keyCode, event);
}
});
略好于纳伦德拉的版本。它可以正确处理除“后退”按钮外的按键通话。例如,将下面的代码放在onCreate覆盖中
appView.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
if(keyCode == KeyEvent.KEYCODE_BACK) {
// Do Stuff Here
return true;
}
return onKeyUp(keyCode, event);
}
return onKeyDown(keyCode, event);
}
});
@PnestecDev:您是否试图在单击“后退”按钮时执行某些操作?是的,我正在尝试在单击“后退”按钮时导航页面。@NarendradroidForm我根据您的回答实现了。。。单击“设备后退”按钮将触发该事件。。。当我单击设备后退按钮时,不应发生任何事情。。。。你能帮助我如何实现吗?只需注释/删除你在单击“后退”按钮时执行的事件。另外,请从条件中删除--event.getAction()==KeyEvent.ACTION\u。对我不起作用。Android上的jQ 1.8.3+jQM 1.3.2(摩托罗拉剃须刀)
// ************ stop the back button *****************
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}