2012-01-18 6 views
2

J'ai besoin d'afficher une carte Google sur plusieurs pages de mon application mobile, qui utilise le framework JQuery Mobile. Mon application est juste une application Android, en utilisant un webview, et en chargeant des pages locales .html (et des fichiers .js) stockés dans le répertoire des biens.JQuery Mobile & Google Maps Glitch

La première fois que j'apporte une page avec une carte, la carte est superbe et fonctionne très bien. Si je retourne à cette page, ou si j'ouvre une autre page avec une carte, la page scintille lors du chargement, puis la carte elle-même clignote. Initialement seulement sur la gauche 1/3 des tuiles de la carte sont visibles. Faire glisser la carte ne fait qu'aggraver le problème. C'est comme si la carte ne savait pas quelles tuiles elle devrait charger.

Est-ce que quelqu'un a rencontré des problèmes lors de l'exécution de plusieurs pages de carte sur le framework JQuery Mobile? Si je devais deviner à ce stade, je suppose que le système de chargement AJAX du framework JQuery Mobile provoque une sorte d'interférence entre les pages en ce qui concerne la carte. Je sais qu'il y a des façons de désactiver le support AJAX, mais je préférerais ne pas le faire si je n'ai pas à le faire.

+0

Je n'ai pas encore résolu ce problème, mais je l'ai confirmé qu'il était un problème AJAX. Quand j'ai changé mes liens vers rel = "external" (désactivant ainsi le comportement AJAX), le problème a disparu. – Matt

Répondre

1

J'ai créé une application cartographique pour mon école à l'aide de jQuery Mobile Framework. En raison de l'utilisation d'AJAX pour charger la carte google pendant que vous faites défiler, c'est ce qui cause les erreurs visuelles et le chargement lent.

http://ceapps.weber.edu/tourdeweber

test l'une des cartes, et laissez-moi savoir si votre problème est similaire.

J'utilise le $.mobile.page.prototype.options.domCache = true; lors de l'initialisation du JQM pour stocker chaque page que vous avez visitée pour des performances plus rapides.

+0

En fait, je ne peux pas obtenir une carte pour apparaître n'importe où sur ce site mobile - ne pas apparaître sur un vrai navigateur web sur mon bureau, ou dans un webview sur mon appareil .... – Matt

+0

Utilisez-vous le JavaScript statique carte API? Assurez-vous que la division de la carte dans la vue Web est affichée. –

+0

Je ne suis pas sûre de te suivre. La première fois que je vais à une page avec une carte, la carte s'affiche très bien - donc la div est évidemment là. C'est seulement la 2ème + fois que j'ouvre une page avec une carte que la carte est déformée - ce n'est pas invisible ou absent. La carte charge juste le mauvais ensemble de tuiles, montrant seulement une fraction de la carte qui devrait être visible. Parfois seulement la moitié de la carte est visible, parfois juste environ 1/4. Lorsque je fais défiler la carte, elle supprime les mosaïques visibles avant qu'elles ne défilent à l'écran. C'est comme si la carte pensait que c'est juste un peu en haut et à gauche d'où elle est réellement. – Matt

0

Appel google.maps.event.trigger(mapObj, "resize"); sur pageshow ou pagechange

+0

Soyez prudent lorsque vous postez copiez et collez les réponses standardisées/verbatim à plusieurs questions, celles-ci ont tendance à être signalées comme «spammeuses» par la communauté. Si vous faites cela, cela signifie généralement que les questions sont des doublons, alors signalez-les comme tels: http://stackoverflow.com/a/12886668/419 – Kev