有没有办法我们可以使用phonegap/jqtouch/javascript捕获Android应用程序中的html文件中的HOME和BACK按钮的点击?
我有一个使用phonegap的Android应用程序.我想在html页面中捕获Android手机的原生HOME和BACK按钮的点击以优雅地退出/返回.
您可以在PhoneGap中捕获BACK按钮事件,但不是HOME按钮(这是一个糟糕的Android练习,因为无论您使用的是关于HOME键做什么的应用程序都有明确的用户期望:将您送回家屏幕!您不想覆盖此功能).
我将引导您访问PhoneGap中的代码片段(最新源代码!从github获取最新版本的phonegap框架)以获得指导.
首先,有一个'BrowserKey'java对象绑定到'BackButton'JavaScript全局:
http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/DroidGap.java#L291
这个类的定义如下:http://github.com/phonegap/phonegap-android/blob/master/framework/src/com/phonegap/BrowserKey.java
您需要在应用程序中执行的第一件事(我建议您在应用程序初始化期间运行它)是让框架的本机端知道您正在覆盖BACK按钮功能.您可以通过简单的调用在JavaScript中执行此操作:
BackButton.override();
从那里开始,您可以将事件处理程序附加到文档的'backKeyDown'事件,以便在每次按下BACK按钮时执行逻辑.这样的事情应该有效:
document.addEventListener('backKeyDown', function(e) { alert('you hit the back key!'); }, false);
作为附录,这里是包含后退按钮事件调度的JavaScript代码:http://github.com/phonegap/phonegap-android/blob/master/framework/assets/js/keyevent.js
基本上,在调用BackButton.override()之后,每次按下BACK按钮时,框架的本机端都会调用window.keyEvent.backTrigger().