捕获PhoneGap for Android上的按键

我正在使用PhoneGap进行Android应用程序开发,并且我被困在捕获设备上的后退按键! 我尝试了其他线程和官方维基页面上的所有内容,但似乎没有任何效果! 🙁

我可以用keyEvent.menuTrigger和keyEvent.searchTrigger捕获菜单和search键,但似乎无法捕获后退button! 我同样尝试了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一样,没有运气! 请帮忙!

提前致谢! 🙂

Solutions Collecting From Web of "捕获PhoneGap for Android上的按键"

PhoneGap有关Androidbutton处理程序的维基页面已更新为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适合我

您也可以使用menubuttonsearchbutton事件来处理其他button。

如果你使用的API级别高于2.0,那么你可以重写下面的函数

 @Override public void onBackPressed() { // do something on back. return; } 

用于追踪button按下的事件。

如果不是,那么你可以重写onKeyDown事件的活动和追踪button

 @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); } 

以下是我在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(); }