Bonjour à tous,
Avant de vous décrire mon problème, voici l'architecture logicielle utilisée
- Eclipse Helios avec le plug-in d'android
- L'OS Windows XP
- Le SDK d'Android - avec notamment l'api 2.2 Froyo
- Jquery (1.4.3) et JqueryMobile (1.0 alpha 1)
- PhoneGap (0.9.2)
- Eclipse Ganymede avec un servlette tournant sur Tomcat 6.0.29 pour le côté serveur
Je voulais intégrer de l'HTML/CSS/Javascript avec l'interface de JQueryMobile au sein de l'émulateur Android. Cette étape a été fructueuse grâce à l'utilisation de PhoneGap et en suivant leur tutoriel ( Tutoriel officiel et rapide de PhoneGap ) . Mais pour l'étape qui suit, à savoir, effectuer une requête Ajax et exploiter le résultat sur la page Web du navigateur de l'émulateur d'Android, je n'ai aucun résultat.
Ce que j'ai réussis à faire, néanmoins, c'est à faire cette chose sur mon PC (donc en laissant tomber le Eclipse Helios mais en lancant quand même le serveur depuis mon instance de Eclipse Ganymede) depuis le navigateur Google Chrome.
Donc, j'ai intégré la permission internet (android.permission.INTERNET), ce qui m'a permis de ne plus bénéficier de l'erreur "SocketException : permission denied" dans le LogCat. Mais ce ne fut pas suffisant.
A noter : j'éffectue un appel de ma servlette sur le port "10.0.2.2:8080/ApplicationEclipse/Servlette" (la fin n'est pas exacte, j'ai volontairement changé les 2 dossiers), et non sur le 127.0.0.1, comme cela est recommandé par Google. Comme cela, j'espère accéder au vrai Localhost de mon serveur Tomcat 6.
Parmi les carences de ma programmation que j'ai remarqué et que je n'ai su résoudre (en regardant entièrement dans le Logcat) (dans le désordre)
- request time failed : java.net.SocketException : Address family not supported by protocol (lancé par SmtpClient)
- Note : attach of thread "Binder Thread #3" failed (lancé par AndroidRuntime)
- Not granting permission android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS to <package1> (où <package1> est là où je définis ma classe héritée de DroidGap) (lancée par PackageManager)
- Force stopping <package1>(où <package1> est là où je définis ma classe héritée de DroidGap)(Lancé par ActivityManager)
La requête effectuée est de type JSONP : je récupère le "callback" utilisateur, et par mon serveur, j'encapsule les données à produire dans le callback récupéré. Par ailleurs, l'adresse invoquee de la Servlette se termine par le paramètre callback=?, afin que mon code JQuery, effectuant un $.getJSON(), puisse traiter le JSONP.
Je teste surtout mon application sur un émulateur Android 2.2 Froyo (API 8)
Il y a peut être des informations dont vous avez besoin que je n'ai pas fournies (je ne voulais pas faire un copier/coller ni du LogCat, ni de mes codes) : n'hésitez-pas à me le signaler.
Je vous remercie d'avance
Partager