我正在设置 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;
}
但又一次,似乎什么也没做。还有其他人有这个问题或解决了吗?
谢谢。
最佳答案
首先,将您的函数写入控制台。
document.addEventListener("backbutton", function() {
console.log('Back Button Pressed.');
}, false);
您应该将您的设备设置为调试工具(您将在下面找到如何操作的快速提示,有关更多信息,请访问 here)
- 将手机连接到电脑
- 在您的手机上:检查 USB 调试; 设置=>开发者选项=>USB调试
- 在您的手机上:检查未知来源; 设置 >> 应用程序 >> 未知来源 = true
- 将您的设备添加到 ADT(在您的 SDK 中)
- 直接从电脑到手机运行项目: 右键单击项目 => Run AS => 选择你的设备
现在在后退按钮上单击“后退按钮已按下”。会在Eclipse的控制台打印出来。
如果您的设备未连接到计算机或您的设备未设置为调试工具,则不会发生任何变化。
一般情况下,如果您在设备上进行测试但未将其设置为调试工具,请使用“alert()”而不是“console.log()”。
此外,不要使用 native 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()">
关于java - Android 设备按钮和 PhoneGap/Cordova,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146231/