在javascript中捕获Android手机中的本机按钮点击

在javascript中捕获Android手机中的本机按钮点击,javascript,android,cordova,jqtouch,Javascript,Android,Cordova,Jqtouch,有没有一种方法可以让我们使用phonegap/jqtouch/javascript在android应用程序的html文件中捕获HOME和BACK按钮的点击 我有一个使用phonegap的Android应用程序。我想在html页面中捕获Android手机的本地主页和返回按钮,以优雅地退出/返回。我有一个使用phonegap的Android应用程序。我想在html页面中捕获安卓手机本机主页和后退按钮的点击,以优雅地退出/返回。您可以在PhoneGap中捕获后退按钮事件,但不能捕获主页按钮(这是一个糟

有没有一种方法可以让我们使用phonegap/jqtouch/javascript在android应用程序的html文件中捕获HOME和BACK按钮的点击


我有一个使用phonegap的Android应用程序。我想在html页面中捕获Android手机的本地主页和返回按钮,以优雅地退出/返回。

我有一个使用phonegap的Android应用程序。我想在html页面中捕获安卓手机本机主页和后退按钮的点击,以优雅地退出/返回。

您可以在PhoneGap中捕获后退按钮事件,但不能捕获主页按钮(这是一个糟糕的安卓操作,因为无论您使用的应用程序是什么,用户都有一个明确的期望:将您发送回主屏幕!您不想覆盖此功能)

我将指导您使用PhoneGap(最新源代码!从github获取最新版本的PhoneGap框架)中的代码片段,以获得指导

首先,有一个绑定到“BackButton”JavaScript全局的“BrowserKey”java对象:

此类的定义如下:

您在应用程序中需要做的第一件事(我建议您在应用程序初始化期间运行此操作)是让框架的本机端知道您正在覆盖后退按钮功能。您可以通过一个简单的调用在JavaScript中完成此操作:

BackButton.override();
从那时起,您可以将事件处理程序附加到文档的“backKeyDown”事件,以便在每次点击“后退”按钮时执行逻辑。类似的操作应该可以:

document.addEventListener('backKeyDown', function(e) {
  alert('you hit the back key!');
}, false);
作为附录,下面是包装back按钮事件调度的JavaScript代码:


基本上,在调用BackButton.override()之后,框架的本机端将在每次点击后退按钮时调用window.keyEvent.backTrigger()。

此代码示例适用于PhoneGap 0.9.5及更高版本(在0.9.6上测试):


主页按钮无法处理。这是由系统保留的。

你能更具体地回答这个问题吗?使用phonegap为Android开发一个应用程序。我想在html页面中捕获Android手机的本机主页和后退按钮的点击,以优雅地退出/返回。我不想覆盖主页按钮。我只想捕获单击该按钮并结束应用程序的会话。有什么方法可以做到这一点吗?您必须在此处扩展Java代码:使用一个开关捕获主按钮,然后调用app.loadUrl('javascript:myFunction();'));在JavaScript中触发一个全局“myFunction”函数来处理此问题。只需扩展我在回答中描述的后退按钮捕获如何工作的方法,并将其应用于HOME按钮。HOME按钮不应导致应用程序结束会话。在Android中,HOME用于应用程序切换,用户可能会在o您的应用程序。相反,当活动被销毁时关闭会话(请参阅),但PhoneGap允许您这样做。@filmaj您应该修复您提供的url,因为它们都不起作用。
    document.addEventListener("menubutton", function () { 
        alert('Menu button');
    }, false);  

    document.addEventListener("searchbutton", function () { 
        alert('Search button');
    }, false);                      

    document.addEventListener("backbutton", function () { 
        alert('Back button');
    }, false);