2015-11-19 18 views
6

Sto provando a bloccare il pulsante Indietro in alcuni casi.cordova/blocco PhoneGap e consenti pulsante Indietro

Tuttavia, non appena aggiungo l'eventlistener, blocca sempre il pulsante Indietro.

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

function onBackKey() { 
    if($scope.quicksetup) 
    { 
     alert("1"); 
     return false; 
    } 
    else 
    { 
     alert("2"); 
     return true; 
    } 
} 

Viene nella struttura else ma quando restituisce true non esegue più l'azione di ritorno.

Non ci sono errori di sorta in logcat. ho idea che cosa sta causando questo ...

risposta

6

Una volta impostato l'ascoltatore si sovrascrive il comportamento backbutton non importa se si torna true o false esso non eseguirà più la via normale.
È necessario utilizzare navigator.app.backHistory() e navigator.app.exitApp(); per gestire il ritorno e l'uscita dall'app.

Il onbackbutton callback non si aspetta nulla da restituire, è non una funzione di callback boolean.

function onBackKey() { 
    if($scope.quicksetup) 
    { 
     alert("1"); 
     return; 
    } 
    else 
    { 
     alert("2"); 
     navigator.app.exitApp(); //I guess you want to exit the app here 
    } 
} 
+0

Grazie, questo ha fatto il trucco, se non in quicksetup voleva elaborare il tasto di ritorno in modo da sostituire exitApp con il backHistory e ora funziona come un incantesimo. –

+0

@GerardvandenBosch contento che abbia aiutato :) –

Problemi correlati