2010-12-10 38 views
0

J'écris un programme Android en utilisant Webview qui peut utiliser la clé de retour sur le périphérique, pas de problème avec cela. Mais quand le programme passe "à l'extérieur" et navigue à travers les pages HTML/Javascript à l'intérieur du "wrapper" Webview, il ne peut pas gérer correctement un href = "javascript: window.history.back();" bouton, car il ne monte pas d'un niveau, revient simplement et avance la page précédente.Soft retour bouton dans Android en utilisant Webview

Qu'est-ce que je fais mal?

Répondre

0

La fonction javascript.window.history.back() est conçue pour reculer d'une étape dans l'historique du navigateur. Il ne fonctionne pas (même sur les plates-formes Android) émuler un clic du bouton arrière de l'appareil.

Je crois que le composant WebView intercepte une pression sur le bouton de retour du périphérique pour permettre à un utilisateur de revenir dans l'historique jusqu'au point où le WebView a été créé (la première page consultée).

Ces deux fonctions sont complètement séparées, définies dans différentes langues et l'une ne peut pas être utilisée pour l'autre. Si vous souhaitez implémenter la fonctionnalité du bouton de retour de l'appareil, vous devrez le faire dans le code de l'application, pas une page web (un appel à onKeyPress() devrait faire l'affaire).

+0

Je ne parle pas du bouton arrière de l'appareil; Ça marche pour moi. Ce que je veux, c'est avoir la même fonctionnalité dans les boutons de retour dans les pages du navigateur appelées par Webview; mais ici le javascript window.history.back() vient de s'arrêter de fonctionner. C'est mon problème. – miguel