2013-07-26 20 views
7

Sto lavorando all'applicazione Android utilizzando PhoneGap. Ho bisogno di gestire dispositivo di back funzionalità del pulsante utilizzando il codice qui sotto:Android - Disabilita pulsante Indietro dispositivo

import com.phonegap.DroidGap; 
public Class MyClass extends DroidGap { 
appView.setOnKeyListener(new OnKeyListener() { 
     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
       finish(); 
       return true; 
      } 
      return onKeyDown(keyCode, event); 
     } 
    }); 
    } 

Utilizzando il codice di cui sopra, applicazione ottenendo uscito perché ho usato finish(); ma voglio che nulla deve essere accaduto il click del pulsante Dispositivo indietro. Come posso accettarlo? Mi aiuti per favore.

+3

Rimuovere la chiamata finitura, o non capisco la tua domanda ... –

+0

Il pulsante Indietro non può essere disattivata su dispositivi senza radici, le questioni di sicurezza .. – g00dy

+0

Selezionare questa postare: http://stackoverflow.com/questions/15834629/android-droidgap-disabling-back-button?rq=1 – Tinus81

risposta

23

Perché è necessario farlo a livello Java? È possibile raggiungere questo obiettivo con JavaScript utilizzando di PhoneGap Event API

document.addEventListener("backbutton", onBackKeyDown, false); 
function onBackKeyDown(e) { 
    e.preventDefault(); 
} 
+1

Sì, so come fare con 'Phoneegap' ... ma il problema è che ci sono centinaia di pagine HTML nel server e non ho la possibilità di gestire/modificare il contenuto HTML .. quindi, sto cercando di farlo fare nel livello di Java .. Non riesco a passare attraverso Java comunque ...? –

+2

e.preventDefault(); non funziona. Sto provando a rimuovere l'evento predefinito dal pulsante indietro del dispositivo Android e ho provato il codice sopra, ma senza fortuna l'applicazione sta ancora tornando dalla pagina precedente – GianFS

+0

Questo codice deve essere all'interno del listener di eventi "deviceready". Se stai scrivendo questo direttamente in HTML, controlla anche se hai 'in-safe-inline' in default-src per consentire l'inlining javascript. – Honza

Problemi correlati