有没有办法可以使用phonegap / jqtouch / javascript在Android应用程序的html文件中捕获HOME和BACK按钮的点击?
我有一个使用phonegap的Android应用程序。我想在html页面中捕获Android手机的原生HOME和BACK按钮的点击以退出/返回优雅。
答案 0 :(得分:10)
您可以在PhoneGap中捕获BACK按钮事件,但不能在HOME按钮上捕捉(这是一个糟糕的Android练习,因为无论您使用的是关于HOME键做什么的应用程序,都有明确的用户期望:发回给您到你的主屏幕!你不想覆盖这个功能。)
我将引导您访问PhoneGap中的代码片段(最新源代码!从github获取最新版本的phonegap框架)以获得指导。
首先,有一个'BrowserKey'java对象绑定到'BackButton'JavaScript全局:
此课程的定义如下: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()。
答案 1 :(得分:4)
此代码示例适用于PhoneGap 0.9.5及更高版本(在0.9.6上测试):
document.addEventListener("menubutton", function () {
alert('Menu button');
}, false);
document.addEventListener("searchbutton", function () {
alert('Search button');
}, false);
document.addEventListener("backbutton", function () {
alert('Back button');
}, false);
无法处理主页按钮。这是由系统保留的。
答案 2 :(得分:0)
我有一个使用phonegap的Android应用程序。我想在html页面中捕获Android手机的原生HOME和BACK按钮的点击以退出/返回优雅。