2

我正在设置 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;
}

但再一次,似乎无能为力。其他人有这个问题或修复?

谢谢你。

4

1 回答 1

1

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

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

您应该将您的设备设置为调试工具(您将在下面找到如何操作的快速提示,更多信息请点击此处

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

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

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

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

此外,不要使用本机 java,使用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');
}

那么你应该将“onLoad()”添加到body标签中:

<body onLoad="onLoad()">
于 2013-01-04T09:30:39.613 回答