Hallo, ich versuche derzeit die Map auf mobilen Geräten zum Laufen zu bekommen.
Ziel ist es, sie in einer Phonegap-Anwendung zu nutzen (die App ruft dabei lediglich in einem einzigen IFrame die Webserver-Seite auf).
Zur Schilderung des Problems habe ich eine Contao 3.2.beta1-Installation bereitgestellt, welche unter (link entfernt, gleiches Problem auf der Google Maps Seite) aufrufbar ist und dlh_googlemaps 1.1.5 stable nutzt. Zum Testen nutze ich auf dem Desktop Firefox 24.0 und Rekonq 0.9.1, auf dem Mobiltelefon Firefox 23.0 und die Phonegap-App mit Phonegap Version 3.0.0-0.14.3. Es existiert eine Testseite, welche ein GoogleMaps-Modul einbindet, dass eine Karte eingebunden hat (wie im Handbuch eingerichtet).
Das Problem besteht darin, dass die Karte mit unverändertem User Agent funktioniert, sobald jedoch ein mobiler User Agent verwendet wird, lässt sich die Karte nicht mehr verschieben und Zoomen geht nur noch mittels +/- Buttons an der Seite (deren Rand im Firefox nicht geladen wird). Zum Ändern des User Agents nutze ich das User Agent Switcher-Plugin und stelle ihn auf IPhone 3 sodass auf whatsmyuseragent.com/ der User Agent
Mozilla/5.0 (iPhone; U; CPU iPhone OS 3_0 like Mac OS X; en-us) AppleWebKit/528.18 (KHTML, like Gecko) Version/4.0 Mobile/7A341 Safari/528.16
ermittelt wird. Ähnlich im Rekonq, wo ein Android1.0-User Agent erzeugt wird.
Auf dem Smartphone sieht es leicht anders aus, in der Phonegap-App wird die Karte überhaupt nicht geladen (leeres Feld), während seltsamerweise im mobilen Firefox die Karte einwandfrei funktioniert (bis auf das Laden der Zoombuttonränder).
Ist GoogleMaps wirklich so User-Agent-abhängig oder fehlen einfach noch ein paar Zeilen Code?
Vielen Dank im Voraus
PS.: Laut Desktop-Firefoxkonsole treten keine nennenswerten JS-Fehler auf:
Code:
[12:41:14.173] getUserData() oder setUserData() sollten nicht mehr verwendet werden. Verwenden Sie stattdessen WeakMap oder element.dataset. (requestNotifier.js)
[12:41:14.220] getAttributeNode() sollte nicht mehr verwendet werden. Verwenden Sie stattdessen getAttribute(). (4cf4acd27d2f.js)
Lesezeichen