2011-10-23 4 views
0

Je développe une application Android qui prend ses informations à partir d'un site qui utilise JavaScript.Programmation androïde Java et script Java

Je veux exécuter l'une des fonctions de script Java via mon application Android.

dans l'exemple: ce site http://www.bgu.co.il/tremp.aspx a "Next page" dans le bas (en hébreu) ​​que la fonction javascript fait. Je veux accéder à la page suivante via mon application. Comment puis-je envoyer au site la commande "passer à la page suivante" ou activer l'événement onClick du bouton?

EDIT: Je prends des informations de ce site, en utilisant un analyseur XML (analyseur sax), je veux aller à la page suivante de ce site afin de l'analyser soit. J'espère que je me suis fait clair maintenant

Répondre

0

OK - maintenant, nous savons que vous êtes analyse la page I peut essayer de répondre à votre question!

Vous ne pouvez pas "cliquer" quelque chose sur une page analysée parce que vous n'avez pas de moteur Javascript - c'est juste un document XML - une collection de nœuds constitués de texte.

Dans ce cas, vous devez déterminer comment le système de pagination fonctionne réellement - et regarder la page dans quelque chose comme Firebug rend cela très simple à faire. Le système de pagination fonctionne via un mécanisme FORM POST. Lorsque vous cliquez sur "Suivant" ou sur un numéro de page comme "2", il charge simplement la même page à partir du serveur, mais avec des variables POST définies. La variable clé est "__EVENTTARGET" - elle indique à ASP quelle page doit être chargée (en hébreu bien sûr). Le problème est que vous aurez besoin de passer toutes les autres variables POST de cette page aussi - c'est chaque INPUT avec sa valeur associée. Je remarque qu'il y en a un appelé "_ EVENTVALIDATION" qui semble exister pour empêcher les gens de contourner cela aussi facilement en passant simplement " _EVENTTARGET".

Un outil comme Fiddler serait utile ici aussi - il montrera ce qui est POSTé au serveur lorsque vous cliquez sur SUIVANT - tout ce que vous avez à faire est de répliquer cela dans votre appel pour charger la page et vous avez la page suivante - et répétez cela avec chaque page jusqu'à ce qu'il n'y ait plus rien à charger ...Alternativement, vous pouvez passer à l'utilisation d'un WebView - en chargeant la page dans cela signifierait qu'il a un moteur de Javascript et vous pourriez automatiser le «clic» (bien que je ne sache pas les détails de comment faire cela, les autres réponses font-elles allusion au fait que c'est possible?)?

1

Vous avez vraiment besoin d'expliquer un peu mieux ...

Êtes-vous ouvrir cette page et l'analyse syntaxique dans votre code, vous avez intégré une WebView ou êtes-vous simplement créer un Intention qui ouvre cette page dans le navigateur Web préféré de l'utilisateur?

Si ce dernier, alors vous ne pouvez certainement pas faire ce que vous suggérez.

Si vous utilisez un WebView je suis sûr que vous ne pouvez toujours pas accéder au DOM de la page de la manière que vous voulez

Cela signifie que votre solution est de charger et d'analyser la page Web dans votre Code - extraire la page « suivante » et faire avec ce que vous voulez ...

+0

Je prends des informations de ce site, en utilisant un analyseur XML (analyseur sax), je veux aller à la page suivante de ce site afin de l'analyser soit. J'espère que je me suis fait clair maintenant – kande

1

Vérifiez la section Utilisation de JavaScript dans WebView dans le Android Developer Guide

+0

Thanx, mais je n'utilise pas WebView ... donc ça ne m'aidera pas – kande

+0

Hmm, je pense que la méthode WebView addJavaScriptInterface fait ce que vous avez besoin http://developer.android. com/reference/android/webkit/WebView.html # addJavascriptInterface (java.lang.Object, java.lang.String) –