【问题标题】:how do I disable the phone's back button in Android using Jquerymobile, PhoneGap如何使用 Jquerymobile、PhoneGap 在 Android 中禁用手机的后退按钮
【发布时间】:2012-09-23 23:44:35
【问题描述】:

谁能告诉我如何禁用 Android 的后退按钮(这是所有 Android 手机上的后退按钮)。

我正在使用带有 PhoneGap 的 Jquery 手机。我在 Cordova 文档中在线找到了这个,但这对我不起作用。后退按钮事件甚至没有注册。

function onLoad() {
    console.log("**** INSIDE ONLOAD FUNCTION *****");
    document.addEventListener("backbutton", onBackKeyDown, false);   
}

// Handle the back button
function onBackKeyDown() {

    // Pressing the back button does not print this message.
    console.log("**************** INSIDE BACK BUTTON *************");
}

【问题讨论】:

  • 用户希望能够使用 BACK 按钮来导航他们的应用程序,或者可能离开应用程序。如果你想用 BACK 按钮一些积极的,那很好。例如,您可以使用它在您自己的应用程序中导航,直到用户到达开头,此时您允许正常的 BACK 按钮行为发生。否则,请不要使用“返回”按钮。
  • @Ouadie 的答案是正确的。您的代码的问题是您在注册后退键事件侦听器之前没有等待“deviceready”事件。

标签: android jquery cordova jquery-mobile


【解决方案1】:

我使用了backKeyDown,它对我有用:

function onDeviceReady() {
        document.addEventListener("backbutton", backKeyDown, true);
        console.log("PhoneGap is ready");
    }

    function backKeyDown(d) {
        navigator.app.exitApp(); // To exit the app!
        e.preventDefault(); // to disable the back
    }

确保PhoneGap is ready!

更新:您可以将处理程序留空以禁用它

【讨论】:

  • 如果此答案解决了您的问题,请将其标记为 Ouadie 的快乐和有类似问题的人的答案。
  • onDeviceReady 函数没有为我执行。我以前试过用这个。我正在做文档中的内容以及您上面所说的内容。我的应用程序运行良好,除了后退按钮。您对为什么不调用 onDeviceReady 有什么建议吗?谢谢谢谢
  • 还在寻找解决方案?
  • @Jason,是的,只需添加一个空事件处理程序
  • 如果您想禁用手机的返回按钮,请使用“e.preventDefault()”
【解决方案2】:
sometimes you can get blocking Back button, sometimes not.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    document.addEventListener("backbutton", function (e) {
        e.preventDefault();
    }, false );
}

【讨论】:

    猜你喜欢
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多