2012-09-23 22 views
5

¿Podría alguien decirme cómo desactivar el botón Atrás de Android (que es el botón de retroceso que se encuentra en todos los teléfonos Android).cómo desactivo el botón de retroceso del teléfono en Android usando Jquerymobile, PhoneGap

Estoy usando Jquery mobile con PhoneGap. Encuentro esto en línea en la documentación de Córdoba, pero esto no funciona para mí. El evento del botón Atrás ni siquiera se está registrando.

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 *************"); 
} 
+1

los usuarios esperan poder utilizar el botón Atrás para navegar a su aplicación, o posiblemente salir de la aplicación. Si desea * hacer * algo * positivo * con el botón ATRÁS, está bien. Por ejemplo, puede usarlo para navegar dentro de su propia aplicación, hasta que el usuario llegue al principio, momento en el que permite que ocurra el comportamiento normal del botón BACK. De lo contrario, deje el botón ATRÁS solo. – CommonsWare

+1

@Ouadie la respuesta es correcta. El problema con su código es que no esperó el evento "listo para el dispositivo" antes de registrar su oyente de evento clave posterior. –

Respuesta

13

que utilizan backKeyDown y funciona para mí:

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 
    } 

asegurarse de que PhoneGap is ready!

Actualización: Puede dejar el controlador de vacío a deshabilitarlo

+0

Si esta respuesta resolvió su problema, márquelo como respuesta tanto para el placer de Ouadie como para las personas que tienen una pregunta similar que termina aquí. – Ouadie

+0

la función onDeviceReady no se está ejecutando para mí. He intentado usar esto antes. Estoy haciendo exactamente lo que está en la documentación y lo que ha indicado anteriormente. Mi aplicación funciona bien, excepto el botón Atrás. ¿Tendría alguna sugerencia de por qué onDeviceReady no se está llamando? Gracias Gracias – user1478810

+0

¿Todavía está buscando una solución? – Ouadie

0
sometimes you can get blocking Back button, sometimes not. 

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