Android设备按钮和PhoneGap / Cordova

时间:2013-01-03 19:56:49

标签: java android cordova

我正在设置Android设备按钮以使用我的应用。根据PG / Cordova文档,我应该能够添加一个监听器,如

document.addEventListener("backbutton", function() {
    console.log('Back Button Pressed.'); 
}, false);

然而,当使用我的Nexus 7作为测试设备时,没有任何反应。

我也尝试将覆盖直接添加到Java中:

@Override
public void onBackPressed() {
    super.loadUrl("javascript:onBackKeyDown()");
    return;
}

但再一次,似乎什么都不做。是否有其他人遇到此问题或已修复?

谢谢。

1 个答案:

答案 0 :(得分:1)

首先,你的函数写入控制台。

document.addEventListener("backbutton", function() {
    console.log('Back Button Pressed.'); 
}, false);

您应该将您的设备设置为调试工具(您可以在下面快速提示如何操作,有关详细信息,请转到here

  • 将手机连接到电脑
  • 在手机上:检查USB调试;     setting =>开发者选项=> USB调试
  • 在手机上:查看未知来源;     设置>>应用程序>> unknown sources = true
  • 将您的设备添加到ADT(在SDK中)
  • 直接从个人电脑到手机运行项目:     右键单击项目=>运行AS =>选择你的设备

现在返回按钮单击“按下后退按钮”。将在Eclipse的控制台中打印。

如果您的设备未连接到计算机,或者您的设备未设置为调试工具,则不会发生任何变化。

一般情况下如果您在设备上进行测试而不将其设置为调试工具,请使用“alert()”代替“console.log()”。

此外,不要使用原生java,使用原始documentation of Cordova,只需将以下代码添加到您的javascript文件中:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Cordova is loaded and it is now safe to call Cordova methods
//
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
//
function onBackKeyDown() {
 // whatever you want to do
 alert('Back button Pressed');
}

然后你应该在body标签上添加“onLoad()”:

<body onLoad="onLoad()">