7
votes

Capturer une touche native clique sur le téléphone Android dans JavaScript

Y a-t-il un moyen par lequel nous pouvons capturer le clic de home and back dans le fichier HTML dans l'application Android à l'aide de téléphonesGap / JQTouch / JavaScript?

J'ai une application pour Android à l'aide de téléphones android. Je souhaite capturer le clic de natif de la maison et du bouton arrière du téléphone Android dans la page HTML pour quitter / revenir gracieusement.


2 commentaires

Pouvez-vous être plus précis avec la question


avoir une application pour Android à l'aide de PhoneGap. Je souhaite capturer le clic de natif de la maison et de l'arrière du téléphone Android dans la page HTML pour quitter / revenir gracieusement.


3 Réponses :


0
votes

J'ai une application pour Android à l'aide de téléphones android. Je souhaite capturer le clic de natif de la maison et du bouton arrière du téléphone Android dans la page HTML pour quitter / revenir gracieusement.


0 commentaires

10
votes

Vous pouvez attraper l'événement Button Button dans PhoneGap, mais pas le bouton d'accueil (il s'agit d'une mauvaise pratique Android, car il existe une attente de l'utilisateur clair quelle que soit l'application que vous utilisez à propos de la clé d'accueil: vous renvoie à votre écran d'accueil! Vous ne voulez pas remplacer cette fonctionnalité).

Je vais vous diriger vers des morceaux de code dans PhoneGap (dernière source! Tirez de GitHub pour la dernière version du framework téléphonique) pour guider.

Premièrement, il y a un objet Java 'Browserkey' Java liée au «Backbutton» JavaScript Global:

http://github.com/phonegap/phonegap-andrid/blob/master/framework/src/com/phonegap/droidgap .java # L291

La définition de cette classe est ici: http://github.com/phonegap/phonegap-andrid/blob/maste r / framework / src / com / téléphongap / brwrowserkey.java

première chose à faire dans votre application (je vous suggère d'exécuter ceci lors de l'initialisation de l'application) est de laisser le côté natal de Le cadre savez que vous remplacez la fonctionnalité du bouton arrière. Vous feriez cela en JavaScript avec un appel simple: xxx

à partir de là, vous pouvez joindre un gestionnaire d'événements à l'événement "Backkeydown" du document pour exécuter la logique à chaque fois que le Le bouton arrière est touché. Quelque chose comme ça devrait fonctionner: xxx

comme un addenda, voici le code JavaScript qui enveloppe l'évacuation de l'événement Button Button: http://github.com/phonegap/phonegap-andrid/blob/master/framework/assets/js /yeyevent.js

Fondamentalement, après avoir appelé Backbutton.Override (), le côté natif du framework appelle la fenêtre.KeyEvent.backtrigger () chaque fois que le bouton arrière est touché.


4 commentaires

Je ne veux pas remplacer le bouton de la maison. Je veux juste capturer le clic du bouton et mettre fin à la session de ma candidature. Y a-t-il un moyen par lequel je peux le faire?


Vous devriez étendre le code Java ici: GitHub.com/Phonegap/Phonegap-Android/blob/Master/framework/s rc / ... Avec un commutateur pour capturer le bouton HOME, puis appelle app.harlorl ('JavaScript: mycéorisation ( ); '); Pour déclencher une fonction «myfunction» globale de retour en JavaScript qui gérerait cela. Il suffit d'étendre l'approche que je décris dans ma réponse sur la manière dont la capture du bouton arrière fonctionne et l'applique sur le bouton de la maison.


Le bouton HOME ne doit pas faire mettre fin à votre demande de session. Dans Android, Home est pour la commutation d'applications et l'utilisateur peut revenir à votre application. Au lieu de cela, fermez votre session lorsque l'activité est détruite (voir Activité Lifecycle ), cependant, PhoneGap vous permet de le faire.


@filmaj Vous devriez corriger l'URL que vous avez fourni aucun d'entre eux ne fonctionne.



4
votes

Cet échantillon de code fonctionne pour PhoneGap 0.9.5 et ultérieur (testé sur 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);  


0 commentaires