java - Android 设备按钮和 PhoneGap/Cordova

标签 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;
}

但又一次,似乎什么也没做。还有其他人有这个问题或解决了吗?

谢谢。

最佳答案

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

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/

相关文章:

java - 从 DropBox 下载文件到本地机器

java - 使用 Spring Boot 异步自定义 ThreadPoolTask​​Executor

Android - 如何在 ListView 的背景上显示一条垂直线(并根据行高)?

android - 方法签名与实际调用不匹配

android - PhoneGap 上的 ClassNotFoundException Android 入门

ios - Phonegap iOS 键盘隐藏完整应用程序

android - 迁移到 Cordova 3.6.3 后,不存在的对话框会阻止 Android 上的 Appium 测试

Java ActionListener 操作未执行

java - 表示带有列/行标签的矩阵

php - HttpURLConnection 响应返回空