android - 禁用/覆盖 Cordova 3.5 中的 Android 后退按钮

标签 android cordova

根据 3.5 版的 Cordova 文档:

http://cordova.apache.org/docs/en/3.5.0/cordova_events_events.md.html#Events

我使用以下代码尝试禁用后退按钮。 onDeviceReady 事件会触发,但后退按钮事件不会。

// Wait for device API libraries to load
//
function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// device APIs are available
//
function onDeviceReady() {
    // Register the event listener
    document.addEventListener("backbutton", onBackKeyDown, false);
}

// Handle the back button
//
function onBackKeyDown() {
}

在其他有趣的消息中,我在我的控制台中收到了这条消息:

exec() call to unknown plugin App.

我已经看到了这个问题的几个答案,包括以下内容以编辑 config.xml 文件并添加:

<feature name="App">
     <param name="android-package" value="org.apache.cordova.App" />
</feature>

这些都不起作用。

最佳答案

要禁用 native 后退按钮功能,您需要调用 preventDefault()在传递给处理程序的事件对象上:

document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown(e) {
    e.preventDefault();
}

如果您遇到其他错误,我建议您删除并重新添加 android 平台(确保您先安装了最新版本的 Cordova):

$ npm update cordova -g
$ cordova platform remove android
$ cordova platform add android

如果你能分享更多你的项目是最好的,这样我就可以看到哪里出了问题。您可以进行的其他检查:

  • 确保为您可能使用的任何其他功能安装了所有插件 cordova plugin ls将为您提供所有已安装的列表。

  • 确保引用 <script type="text/javascript" src="cordova.js"></script> .

  • 检查是否正在触发设备就绪事件。

  • 在运行应用程序的情况下在 Safari 开发工具中进行调试时检查没有 JavaScript 错误。

关于android - 禁用/覆盖 Cordova 3.5 中的 Android 后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088678/

相关文章:

Android Gradle 问题

android - OpenGL ES 2.0 中滚动列表的淡入淡出效果

android - ListView 无法正常显示

java - 反射不适用于 Android 发布的 apk。即使禁用了 proguard/minify

android - 自定义 Google Plus 登录按钮和 Facebook 登录按钮

android - Phonegap(非 Cordova)3.5 示例应用程序未启动设备就绪

android - Phonegap - 为 Android 应用添加启动画面

ios - 使用 xcrun 打包时的怪异(使用变量时代码设计失败)

angularjs - 带有 Angular 的 Phonegap - 指令未显示和奇怪的 View 显示

android - Html5 按钮获取 :hover when it shouldn't