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.