Wie kann man einen Google Maps Link in einer iOS App öffnen?
Einleitung
Beim Entwickeln einer iOS App stellt sich häufig die Frage, wie man einen Google Maps Link so öffnet, dass dieser direkt in der Google Maps App auf dem Gerät angezeigt wird, anstatt im Browser oder einer Webansicht. Dies verbessert die Benutzererfahrung erheblich, da die Nutzer die gewohnte Oberfläche von Google Maps verwenden können und von zusätzlichen Funktionen profitieren.
Die Wahl des richtigen URL-Schemas
Apple Geräte unterstützen verschiedene URL-Schemata, um andere Apps direkt zu öffnen. Für Google Maps gibt es ein spezielles URL-Schema namens comgooglemaps://, welches verwendet werden kann, um die Google Maps App gezielt zu starten. Wenn dieses Schema verwendet wird, öffnet iOS automatisch die Google Maps App mit den gewünschten Parametern, wie Zieladresse, Koordinaten oder Navigationsrouten.
Sollte diese App nicht installiert sein, kann man als Fallback auf die standardmäßige Web-URL von Google Maps zurückgreifen, die im Browser geöffnet wird. So kann man sicherstellen, dass der Nutzer zumindest eine Karte angezeigt bekommt.
Implementierung in Swift
In Swift kann man zunächst prüfen, ob die Google Maps App installiert ist, indem man überprüft, ob das URL-Schema geöffnet werden kann. Dazu verwendet man die Methode UIApplication.shared.canOpenURL(). Wenn das Schema verfügbar ist, öffnet man die App mit dem gewünschten URL. Ansonsten wird eine Web-URL geöffnet.
Beispielcode:
if let googleMapsURL = URL(string: "comgooglemaps://?daddr=37.7749,-122.4194&directionsmode=driving"), UIApplication.shared.canOpenURL(googleMapsURL) { UIApplication.shared.open(googleMapsURL, options: , completionHandler: nil)} else if let webURL = URL(string: "https://maps.google.com/?daddr=37.7749,-122.4194&directionsmode=driving") {
UIApplication.shared.open(webURL, options: , completionHandler: nil)}} else if let webURL = URL(string: "https://maps.google.com/?daddr=37.7749,-122.4194&directionsmode=driving") {
In diesem Beispiel wird eine Navigation zum Ziel mit den Koordinaten 37.7749,-122.4194 gestartet. Das Flag directionsmode=driving gibt an, dass die Route mit dem Auto berechnet werden soll.
Info.plist anpassen
Um das Öffnen von benutzerdefinierten URL-Schemata wie comgooglemaps:// zu erlauben, muss die App die entsprechenden Schemas in der Datei Info.plist registrieren. Dies geschieht durch Hinzufügen eines Eintrags unter LSApplicationQueriesSchemes:
Man fügt dort den Wert comgooglemaps als erlaubtes URL-Schema ein, damit canOpenURL() funktioniert. Ohne diesen Eintrag wird die Prüfung negativ ausfallen, selbst wenn die Google Maps App installiert ist.
Fazit
Um Google Maps Links in einer iOS App optimal zu öffnen, ist es am besten, das URL-Schema der Google Maps App zu verwenden. Durch eine Prüfung, ob die App installiert ist, und ein entsprechendes Fallback auf die Webversion, kann man eine reibungslose Nutzererfahrung sicherstellen. Das Registrieren des URL-Schemas in der Info.plist ist Voraussetzung, damit die App diese Funktion einwandfrei nutzen kann.
