我正在使用PhoneGap进行Android应用程序开发,而我仍然停留在设备上捕获后退按键!我尝试了其他线程和官方维基页面上的所有内容,但似乎都没有用! :(
我可以使用keyEvent.menuTrigger和keyEvent.searchTrigger捕获菜单和搜索键,但似乎无法捕获后退按钮按下!我同样尝试了keyEvent.backTrigger,但它没有用!为'backKeyDown'事件添加事件监听器也不起作用!
这是我的代码:
BackButton.override();
document.addEventListener('backKeyDown', function(e) {
console.log('Caught it!');
}, false);
keyEvent.searchTrigger= searchPressed;
keyEvent.menuTrigger=menuPressed;
keyEvent.backTrigger=backPressed;
控制台说:
Line 1 : Uncaught TypeError: Cannot call method 'backTrigger' of undefined
这是不是意味着调用了something.backTrigger(),但是对象不存在。那是什么东西?或者有什么办法吗?
也和KeyEvent一样尝试过,没有运气! 请帮忙!
提前致谢! :)
答案 0 :(得分:6)
PhoneGap Wiki页面已针对PhoneGap 0.9.5进行了更新:
// This is your app's init method. Here's an example of how to use it
function init() {
document.addEventListener("deviceready", onDR, false);
}
function onDR(){
document.addEventListener("backbutton", backKeyDown, true);
//boot your app...
}
function backKeyDown() {
// do something here if you wish
// alert('go back!');
}
使用PhoneGap 0.9.6
为我工作您还可以使用 menubutton 和搜索按钮事件处理其他按钮。
答案 1 :(得分:1)
如果您使用的api级别高于2.0,那么您可以覆盖以下功能
@Override
public void onBackPressed() {
// do something on back.
return;
}
用于跟踪后退按钮事件。
如果没有,则可以覆盖活动的onKeyDown事件并跟踪后退按钮
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// do something on back.
return true;
}
return super.onKeyDown(keyCode, event);
}
答案 2 :(得分:1)
以下是我在PhoneGap w / xuijs中的表现:
// inside your 'deviceready' handler
if (device.platform == 'Android') {
BackButton.override();
// add backkeyDown handler
x$(document).on('backKeyDown', onBackKeyDown);
}
// back button handler
function onBackKeyDown() {
// do something
// or
// BackButton.exitApp();
}