7 Stimmen

Erfassen von nativen Tastenklicks in Android-Handy in Javascript

Gibt es eine Möglichkeit, mit der wir den Klick auf die HOME- und BACK-Taste in der HTML-Datei in der Android-Anwendung mit phonegap/jqtouch/javascript erfassen können?

Ich habe eine Anwendung für Android mit Phonegap. Ich möchte den Klick der nativen HOME- und BACK-Taste des Android-Telefons in der Html-Seite erfassen, um sie elegant zu beenden bzw. zurückzugehen.

10voto

fil maj Punkte 2250

Sie können das BACK-Ereignis in PhoneGap abfangen, jedoch nicht die HOME-Taste (dies ist eine schlechte Android-Praxis, da es eine klare Benutzererwartung gibt, unabhängig von der App, die Sie verwenden, was die HOME-Taste tut: Sie schickt Sie zurück zu Ihrem Home-Bildschirm! Sie wollen diese Funktionalität nicht außer Kraft setzen).

Ich werde Sie auf Stücke von Code in PhoneGap (LATEST Quelle! Pull von Github für die neueste Version des PhoneGap-Framework) für die Führung.

Zunächst gibt es ein 'BrowserKey'-Java-Objekt, das an das JavaScript-Global 'BackButton' gebunden ist:

http://github.com/phonegap/phonegap-Android/blob/master/framework/src/com/phonegap/DroidGap.java#L291

Die Definition dieser Klasse finden Sie hier: http://github.com/phonegap/phonegap-Android/blob/master/framework/src/com/phonegap/BrowserKey.java

Das erste, was Sie in Ihrer Anwendung tun müssen (ich schlage vor, dass Sie dies während der Anwendungsinitialisierung ausführen), ist, die native Seite des Frameworks wissen zu lassen, dass Sie die Funktionalität der Schaltfläche BACK überschreiben. Sie würden dies in JavaScript mit einem einfachen Aufruf tun:

BackButton.override();

Von dort aus können Sie einen Event-Handler an das "backKeyDown"-Ereignis des Dokuments anhängen, um jedes Mal, wenn die BACK-Taste gedrückt wird, eine Logik auszuführen. Etwas wie dies sollte funktionieren:

document.addEventListener('backKeyDown', function(e) {
  alert('you hit the back key!');
}, false);

Als Nachtrag finden Sie hier den JavaScript-Code, der die Ereignisabwicklung der Schaltfläche "Zurück" umschließt: http://github.com/phonegap/phonegap-Android/blob/master/framework/assets/js/keyevent.js

Nach dem Aufruf von BackButton.override() ruft die native Seite des Frameworks jedes Mal window.keyEvent.backTrigger() auf, wenn die BACK-Taste gedrückt wird.

4voto

Reborn Punkte 136

Dieses Codebeispiel funktioniert für PhoneGap 0.9.5 und später (getestet mit 0.9.6):

    document.addEventListener("menubutton", function () { 
        alert('Menu button');
    }, false);  

    document.addEventListener("searchbutton", function () { 
        alert('Search button');
    }, false);                      

    document.addEventListener("backbutton", function () { 
        alert('Back button');
    }, false);  

Die Home-Taste kann nicht bedient werden. Sie ist vom System reserviert.

0voto

Newbee Punkte 1310

Ich habe eine Anwendung für Android mit Phonegap. Ich möchte den Klick der nativen HOME- und BACK-Taste des Android-Telefons in der HTML-Seite erfassen, um sie elegant zu beenden/zurückzugehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X