IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

[PhoneGap][JQueryMobile][JSONP]Requête sans effet


Sujet :

Android

  1. #1
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut [PhoneGap][JQueryMobile][JSONP]Requête sans effet
    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

  2. #2
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut On a réussi à me dépanner :)
    Quelqu'un de mon entourage a finalement réussi à me dépanner :

    Dans mon code JQuery, lors de mon appel AJAX, je ne spécifiais pas le port ("http") dans mon adresse.
    • Cela fonctionnait sur le PC
    • Mais je n'avais aucun résultat sur l'émulateur


    Voilà. Je pense que c'est le navigateur de l'emulateur android qui est plus stricte.

    En tout cas, merci de m'avoir lu. Et, même si peu de gens seront aussi étourdis que moi pour refaire une erreur pareil, j'espère que cela puisse être utile à qui en a besoin.

    Cordialement.

  3. #3
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Citation Envoyé par tails Voir le message
    Quelqu'un de mon entourage a finalement réussi à me dépanner :

    Dans mon code JQuery, lors de mon appel AJAX, je ne spécifiais pas le port ("http") dans mon adresse.
    • Cela fonctionnait sur le PC
    • Mais je n'avais aucun résultat sur l'émulateur


    Voilà. Je pense que c'est le navigateur de l'emulateur android qui est plus stricte.

    En tout cas, merci de m'avoir lu. Et, même si peu de gens seront aussi étourdis que moi pour refaire une erreur pareil, j'espère que cela puisse être utile à qui en a besoin.

    Cordialement.
    Le protocole http ou le port 8080, car ca m'interresserai dans le temps enormement.
    Merci.

  4. #4
    Membre chevronné
    Avatar de tails
    Homme Profil pro
    Inscrit en
    Novembre 2003
    Messages
    799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 799
    Points : 2 148
    Points
    2 148
    Billets dans le blog
    15
    Par défaut Dans ma situation il me faut les deux
    Bonjour jahbromo

    En fait dans ma situation
    • sur le pc je dois mettre http:localhost:8080 et surtout ne pas omettre le port 8080. Dans le cas inverse, mon code ne fonctionne pas.
    • sur la version qui doit tourner sur l'émulateur : je dois mettre http://10.0.2.2:8080 car le "localhost" est celui de l'émulateur

  5. #5
    Inscrit

    Profil pro
    Inscrit en
    Février 2008
    Messages
    658
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 658
    Points : 892
    Points
    892
    Par défaut
    Citation Envoyé par tails Voir le message
    Bonjour jahbromo

    En fait dans ma situation
    • sur le pc je dois mettre http:localhost:8080 et surtout ne pas omettre le port 8080. Dans le cas inverse, mon code ne fonctionne pas.
    • sur la version qui doit tourner sur l'émulateur : je dois mettre http://10.0.2.2:8080 car le "localhost" est celui de l'émulateur

    Merci pour ton retour. J'ai bien compris maintenant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête native SQL sans effet
    Par Philcmoi dans le forum Hibernate
    Réponses: 2
    Dernier message: 02/09/2013, 11h25
  2. [AC-2010] Requête INSERT sans effet
    Par scrouet dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 18/03/2013, 10h50
  3. requête sans prendre en compte la casse
    Par clems34 dans le forum PostgreSQL
    Réponses: 13
    Dernier message: 13/04/2009, 16h50
  4. Requête UPDATE sans effet
    Par Death83 dans le forum Requêtes
    Réponses: 4
    Dernier message: 15/01/2006, 01h23
  5. Sans effet: StringGrid1->Cells[1][1][2] = c ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 27/11/2002, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo