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

C# Discussion :

[WebService][GoogleMap] acceder au webservice via une appli winform?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut [WebService][GoogleMap] acceder au webservice via une appli winform?
    Bonjour,

    Actuellement, pour acceder à googlemap, j'utilise un webbrowser et la communication avec javascript.

    une seule chose m'interesse dans mon application, c'est les directions.

    donc j'ai les méthodes JS suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    var gdir;
    function initialize()
    {
    	gdir = new GDirections(null, null);
     
    	GEvent.addListener(gdir,"load",function() {
    	  var duree = gdir.getDuration();
    	  var dist = gdir.getDistance();
     
    	  window.external.saveData(duree.seconds,dist.meters);
    		});
    }
     
    function setDirections(from,to) {
          gdir.load("from: " + from + " to: " + to,
                    { "locale": "fr" });
     
          //alert("from: " + from + " to: " + to);
    }
    puis dans C# :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ...
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow row = ds.Tables[0].Rows[i];
     
                    webBrowser1.Document.InvokeScript("eval",
                        new string[] { "setDirections(\""+
                            row[2].ToString()+", "+row[3].ToString()+"\",\""+
                            row[4].ToString()+", "+row[5].ToString()+"\");" });
                }
    ...
    Le soucis est que mon gdir.load ne renvoi ni resultat, ni erreur, sauf si je décommente mon alert qui suit. Si je le décommente, j'ai mes resultats (mais bon cliquer plusieurs fois sur un alert.....).

    J'ai essayé à la place de l'alert, d'implementer une variable feuvert de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    var gdir;
    function initialize()
    {
    	gdir = new GDirections(null, null);
     
    	GEvent.addListener(gdir,"load",function() {
    	  var duree = gdir.getDuration();
    	  var dist = gdir.getDistance();
     
                      feuvert = true;
    	  window.external.saveData(duree.seconds,dist.meters);
    		});
    }
     
    function setDirections(from,to) {
          feuvert = false;
          gdir.load("from: " + from + " to: " + to,
                    { "locale": "fr" });
     
          //alert("from: " + from + " to: " + to);
          while(!feuvert);
    }
    ca marche mais le webbrowser m'affiche le message à chaque fois "un script ralentit.....", et je suis obligé de mettre continuer à chaque passage.

    je pense donc passer directement par le webservice mais je n'ai jamais utilisé les webservice avant, donc si quelqu'un pouvait me guider, ca serait sympa.

    Merci d'avance.

  2. #2
    Membre éclairé
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Par défaut
    Bon, j'ai résolu le problème.

    Apparament, c'est dû à un problème de sécurité (à quel niveau exactement, je ne sais pas, je pencherai plutot pour le webbrowser).

    En gros, pour que ça marche, il faut que le thread, appelant la méthode JS via le webbrowser, soit terminé après l'appel de la méthode, pour que ça fonctionne correctement.

    Donc pour faire ma boucle, j'ai utilisé un Timer, qui à chaque tick traite un element de ma boucle.

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

Discussions similaires

  1. Connexion à un serveur Oracle via une appli Android
    Par Eriatolc dans le forum API standards et tierces
    Réponses: 13
    Dernier message: 26/04/2011, 22h53
  2. Mettre un lien web, et ping via une appli
    Par juninho dans le forum Windows Forms
    Réponses: 5
    Dernier message: 21/01/2009, 14h11
  3. Manipuler un doc Word via une appli Web
    Par bewyder dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 13/12/2007, 17h43
  4. Installer une macro Word via une appli distante
    Par JnewB dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/09/2006, 14h17
  5. Créer un mail via une appli
    Par Cedced dans le forum C++
    Réponses: 5
    Dernier message: 11/10/2005, 11h52

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