2012-09-23 13 views
5

Qualcuno potrebbe dirmi come disabilitare il pulsante Indietro di Android (ovvero il pulsante di ritorno trovato su tutti i telefoni Android).come disattivare il pulsante Indietro del telefono in Android utilizzando Jquerymobile, PhoneGap

Sto utilizzando Jquery mobile con PhoneGap. Lo trovo online nella documentazione Cordova, ma questo non funziona per me. L'evento del pulsante Indietro non è nemmeno registrato.

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

gli utenti si aspettano di essere in grado di utilizzare il tasto BACK per navigare loro app, o forse lasciare l'applicazione. Se si desidera * fare * qualcosa * positivo * con il tasto INDIETRO, va bene. Ad esempio, puoi usarlo per navigare all'interno della tua app, fino a quando l'utente non arriva all'inizio, a quel punto si consente il normale comportamento del pulsante BACK. Altrimenti, si prega di lasciare il pulsante INDIETRO da solo. – CommonsWare

+1

@ La risposta di Oouadie è corretta. Il problema con il tuo codice è che non hai atteso l'evento "deviceready" prima di registrare il listener di eventi per la chiave posteriore. –

risposta

13

ho usato backKeyDown e funziona per me:

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 
    } 

assicurarsi che PhoneGap is ready!

Aggiornamento: È possibile lasciare il gestore vuoto per disabilitarla

+0

Se questa risposta ha risolto il tuo problema, contrassegnalo come risposta sia per il piacere di Ouadie sia per le persone che hanno una domanda simile che finiscono qui. – Ouadie

+0

La funzione onDeviceReady non viene eseguita per me. Ho provato a usare questo prima. Sto facendo esattamente ciò che è nella documentazione e ciò che hai affermato sopra. La mia app funziona bene, ad eccezione del pulsante Indietro. Avresti qualche suggerimento sul perché onDeviceReady non viene chiamato? Grazie Grazie – user1478810

+0

ancora alla ricerca di una soluzione? – 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); 
} 
Problemi correlati