Pytanie Android DroidGap wyłącza przycisk Wstecz


Proszę, ktoś zasugeruje, w jaki sposób wyłączyć wydarzenie naciśnij przycisk Wstecz podczas pracy z PhoneGap?

Muszę coś zrobić w moim Activity, (DroidGap kod) do kontrolowania zdarzenia przycisku wstecz.

Nawet poniższy kod działa dobrze w moim Activity, ale nie działa, gdy jest używany DroidGap.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
     if (keyCode == KeyEvent.KEYCODE_BACK) {
         //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR
         return true;
     }
     return super.onKeyDown(keyCode, event);    
}

10
2018-04-05 12:59


pochodzenie




Odpowiedzi:


Powołanie setOnKeyListener na appView pomógł mi.

Musiałem tylko wprowadzić niewielką zmianę w powyższym fragmencie kodu, który wygląda następująco:

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});

EDYTOWANY

W rzeczywistości występują dwie akcje podczas naciśnięcia klawisza - Action Up & Action Down

Dlatego też, aby uzyskać kluczowe wydarzenie, należy użyć następujących zasad.

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) {
            // Do Here whatever you want 
            return true;
        }
        return onKeyDown(keyCode, event); 
    } 
});

7
2018-04-10 10:44



Gdyby ten sam problem próbował kodu, ale to zdarzenie wystrzelił dwa razy. - TechFanatic
@PnestecDev: Czy próbujesz coś zrobić na kliknięciu przycisku Wstecz? - NarendraJi
Tak, próbuję nawigować po stronach po kliknięciu. - TechFanatic
Ok, rozumiem. Sprawdź moją zredagowaną odpowiedź. - NarendraJi
Dzięki, zadziałało ... - TechFanatic


Nieco lepszy niż wersja Narendry. Może obsługiwać wywołania klawiszowe dla naciśnięć klawiszy innych niż przycisk Wstecz poprawnie. Umieść poniższy kod na stronie na przykład Zastąp symbol.

appView.setOnKeyListener(new View.OnKeyListener() { 

        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if (event.getAction() == KeyEvent.ACTION_UP) {
                if(keyCode == KeyEvent.KEYCODE_BACK) {
                    // Do Stuff Here
                    return true;
                }
                return onKeyUp(keyCode, event);
            }
            return onKeyDown(keyCode, event); 
        } 
   });

5
2018-05-29 07:23



To ładna improwizowana wersja. Dzięki !!! - Rajaraman


W moim przypadku używam jQery Javascript +, jak to:

$(document).on('backbutton',
     function(e){

         e.preventDefault();

         // do whatever you like here.

});

2
2018-04-05 13:03



Czy jest coś, co można zrobić w moim kodzie aktywności? - NarendraJi
nie działa dla mnie. jQ 1.8.3 + jQM 1.3.2 na Androida (Motorola Razor) - Daniel
to nie działa (jQ v1.11.3) - JFouad


// ************ stop the back button  *****************

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        return true;
    }
    return super.onKeyDown(keyCode, event);
}

0
2017-10-05 05:11





if (keyCode == KeyEvent.KEYCODE_BACK) {

    return true;
}

0
2018-02-25 06:35