Na urządzeniach z systemem iOS 9 lub nowszym możesz użyć uniwersalnych linków, aby uruchamiać Mapy Google, gdy masz adres URL Map Google.
Możesz użyć schematu adresów URL Map Google, aby uruchomić aplikację Mapy Google na iOS, wyszukiwać informacje, wyświetlać zapytania o trasę i wyświetlać widok mapy. Po uruchomieniu Map Google identyfikator pakietu jest automatycznie wysyłany w ramach żądania.
Aby użyć schematu adresów URL Map Google, nie potrzebujesz klucza interfejsu API Google.
Do uruchamiania Map Google zalecamy używanie adresów URL Map Google międzyplatformowych, ponieważ te uniwersalne adresy URL umożliwiają większą obsługę żądań map niezależnie od platformy, na której znajduje się użytkownik. Schematu URL na iOS należy używać tylko w przypadku funkcji, które mogą działać tylko na platformie mobilnej (np. szczegółowej nawigacji).Uniwersalne linki i Mapy Google
Mapy Google na iOS obsługują uniwersalne linki na urządzeniach z iOS w wersji 9 lub nowszej.
Jeśli URL pasuje do tego wyrażenia regularnego, a urządzenie działa w systemie iOS 9 lub nowszym, możesz użyć metody openURL:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Na przykład
Swift
UIApplication.shared.openURL(URL(string:"https://www.google.com/maps/@42.585444,13.007813,6z")!)
Objective-C
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"https://www.google.com/maps/@42.585444,13.007813,6z"]];
Omówienie
Schemat URL-a umożliwia uruchamianie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić w adresie URL opcje, które będą przekazywane do uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:
comgooglemaps://
icomgooglemaps-x-callback://
– te schematy umożliwiają uruchomienie aplikacji Mapy Google na iOS i wykonanie jednej z kilku czynności:- Wyświetlanie mapy w określonej lokalizacji i na powiększenia.
- Możesz wyszukiwać lokalizacje i miejsca, a następnie wyświetlać je na mapie.
- Możliwość wysyłania wskazówek dojazdu z jednej lokalizacji do drugiej. Wskazówki dojazdu mogą być zwracane w przypadku 4 środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
- Dodaj elementy nawigacyjne do aplikacji.
- W systemie iOS 8 wykonaj wywołanie zwrotne z zakończeniem działania, używając
comgooglemaps-x-callback://
. Wywołania zwrotne są często używane do powrotu użytkownika do aplikacji, która pierwotnie otworzyła Mapy Google na iOS. W systemie iOS 9 system automatycznie podaje w lewym rogu paska stanu link „Powrót do”.
comgooglemapsurl://
– ten schemat umożliwia uruchomienie aplikacji Mapy Google na iOS za pomocą adresu URL uzyskanego z witryny Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom natywny komfort korzystania z urządzenia mobilnego, zamiast wczytywać stronę w Mapach Google.- Pierwotny URL może wskazywać domenę
maps.google.com
lubgoogle.com/maps
albo używać dowolnej innej domeny krajowej najwyższego poziomu zamiastcom
. Możesz też przekazaćgoo.gl/maps
URL przekierowania. - Wywołanie zwrotne możesz wykonać za pomocą parametrów
x-source
ix-success
ze schematem adresu URLcomgooglemapsurl://
.
- Pierwotny URL może wskazywać domenę
Uruchamianie aplikacji Mapy Google na iOS i wykonywanie określonych funkcji
Aby uruchomić aplikację Mapy Google na iOS i opcjonalnie wykonać jedną z obsługiwanych funkcji, użyj schematu adresu URL w tej formie:
comgooglemaps://?parameters
lub
comgooglemaps-x-callback://?parameters
Parametry znajdziesz szczegółowo w dalszej części tego dokumentu.
Sprawdzam dostępność aplikacji Mapy Google na urządzeniu.
Zanim przedstawisz użytkownikowi jeden z tych adresów URL, najpierw sprawdź, czy aplikacja została zainstalowana. Aplikacja może sprawdzić, czy schemat adresu URL jest dostępny za pomocą tego kodu:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
Aby na przykład wyświetlić mapę Central Parku w Nowym Jorku, możesz użyć tego kodu:
Swift
if (UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)) {
UIApplication.shared.openURL(URL(string:
"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic")!)
} else {
print("Can't use comgooglemaps://");
}
Objective-C
if ([[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]]) {
[[UIApplication sharedApplication] openURL:
[NSURL URLWithString:@"comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic"]];
} else {
NSLog(@"Can't use comgooglemaps://");
}
Wyświetlanie mapy
Użyj schematu URL-a, aby wyświetlić mapę na określonym poziomie powiększenia i w określonej lokalizacji. Możesz również nałożyć na mapę inne widoki lub wyświetlać zdjęcia Street View.
Parametry
Wszystkie parametry podane poniżej są opcjonalne. Jeśli nie ustawisz żadnych parametrów, schemat URL-a uruchomi aplikację Mapy Google na iOS.
center
: punkt środkowy widocznego obszaru mapy. Ma formatlatitude,longitude
rozdzielanego przecinkami.mapmode
: określa rodzaj mapy. Wartość może wynosićstandard
lubstreetview
. Jeśli nie określisz tego ustawienia, używane będą aktualne ustawienia aplikacji.views
: włącza lub wyłącza określone widoki. Można je ustawić na:satellite
,traffic
lubtransit
. Wiele wartości można ustawić za pomocą przecinka rozdzielającego. Jeśli parametr jest określony bez wartości, spowoduje to usunięcie wszystkich widoków danych.zoom
: określa poziom powiększenia mapy.
Ten przykładowy URL pokazuje mapę wyśrodkowaną na Nowym Jorku w powiększeniu 14 z włączonym widokiem:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Oto kilka dodatkowych przykładów:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
W sieci wyszukiwania
Ten schemat służy do wyświetlania zapytań w określonej lokalizacji widocznego obszaru.
Parametry
Oprócz parametrów używanych do wyświetlania mapy wyszukiwarka obsługuje parametr q
.
q
: ciąg zapytania.
Przykładowy URL do wyszukania hasła „pizza” w określonym miejscu:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Oto kilka dodatkowych przykładów:
comgooglemaps://?q=Steamers+Lane+Santa+Cruz,+CA¢er=37.782652,-122.410126&views=satellite,traffic&zoom=15
comgooglemaps://?q=Google+Japan,+Minato,+Tokyo,+Japan¢er=35.660888,139.73073&zoom=15&views=transit
Wyświetlanie trasy
Ten schemat umożliwia wyświetlanie i wyświetlanie wskazówek dojazdu między dwiema lokalizacjami. Możesz też określić środek transportu.
Parametry
saddr
: określa punkt początkowy wyszukiwania wskazówek dojazdu. Może to być szerokość i długość geograficzna albo adres w formacie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż jeden wynik, wybierany jest pierwszy. Jeśli wartość jest pusta, zostanie użyta bieżąca lokalizacja użytkownika.daddr
: określa punkt końcowy wyszukiwania trasy. Ma taki sam format i działanie jaksaddr
.directionsmode
: metoda transportu. Możliwe wartości:driving
,transit
,bicycling
lubwalking
.
Przykładowy adres URL zawiera wskazówki dojazdu transportem publicznym pomiędzy Google w Nowym Jorku a lotniskiem w JFK:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
Oto kilka dodatkowych przykładów:
comgooglemaps://?saddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA+94043&daddr=Google+Inc,+345+Spear+Street,+San+Francisco,+CA¢er=37.422185,-122.083898&zoom=10
comgooglemaps://?saddr=2025+Garcia+Ave,+Mountain+View,+CA,+USA&daddr=Google,+1600+Amphitheatre+Parkway,+Mountain+View,+CA,+United+States¢er=37.423725,-122.0877&directionsmode=walking&zoom=17
Określanie adresu URL wywołania zwrotnego
Jeśli chcesz określić URL wywołania zwrotnego, musisz użyć schematu URL comgooglemaps-x-callback://
. Ten schemat jest zgodny ze specyfikacją x-callback-url. Gdy wywołujesz aplikację Mapy Google na iOS zgodnie z tym schematem, u góry ekranu wyświetla się przycisk. Kliknięcie tego przycisku spowoduje wywołanie zwrotne do określonego przez Ciebie adresu URL.
Żądania wysyłane do comgooglemaps-x-callback://
muszą mieć format:
comgooglemaps-x-callback://?parameters
Parametry
Schemat adresu URL wywołania zwrotnego zawiera te same parametry co schemat adresu URL comgooglemaps://
, ale zawiera dodatkowe parametry: Oba parametry są wymagane.
x-source
– nazwa aplikacji wysyłającej żądanie x-callback. Preferowane są krótkie nazwy.x-success
– URL, który zostanie wywołany po zakończeniu wykonywania. Często jest to schemat adresu URL aplikacji, który pozwala użytkownikom wrócić do pierwotnej aplikacji.
Pamiętaj, że Twoja aplikacja musi zarejestrować własny schemat adresu URL, aby mógł reagować na adres URL wywołania zwrotnego.
- Sprawdź, czy aplikacja zarejestrowała schemat adresu URL, który może odpowiedzieć na żądanie wywołania zwrotnego.
- Przekaż etykietę przycisku wywołania zwrotnego w parametrze
x-source
. - Przekaż adres URL wywołania zwrotnego w parametrze
x-success
.
Poniższy przykład przedstawia uruchomienie aplikacji Mapy Google na iOS i wyświetlanie mapy wyśrodkowanej w Nowym Jorku. Będzie też widoczny przycisk z etykietą „SourceApp”.
Gdy użytkownik kliknie przycisk „SourceApp”, aplikacja Mapy Google na iOS zwróci odpowiedź na fikcyjny schemat sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Tak jak w przypadku schematu URL comgooglemaps://
, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy obsługuje schemat adresów URL wywołania zwrotnego. Twoja aplikacja może sprawdzić, czy schemat adresów URL jest dostępny, używając tego kodu:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
Oto przykładowy URL, który pozwala użytkownikom wrócić do aplikacji po wyszukaniu deseru.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Dodawanie nawigacji do aplikacji
Uruchomienie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu umożliwi użytkownikom proste korzystanie ze szczegółowej nawigacji w Twojej aplikacji. Możesz użyć schematów adresów URL comgooglemaps://
lub comgooglemaps-x-callback://
.
Ten fragment kodu pokazuje, jak za pomocą schematu comgooglemaps-x-callback://
zażądać wskazówek dojazdu, a następnie wrócić do aplikacji, gdy użytkownik będzie gotowy. Kod będzie:
- Sprawdź, czy dostępny jest schemat adresu URL
comgooglemaps-x-callback://
. - Uruchom aplikację Mapy Google na iOS i poproś o trasę do lotniska JFK w Nowym Jorku. Aby uzyskać wskazówki dojazdu od bieżącej lokalizacji użytkownika, pozostaw adres początkowy pusty.
- Dodaj przycisk z etykietą „AirApp” do aplikacji Mapy Google na iOS. Etykietę przycisku definiuje parametr
x-source
. - Wywołuj fikcyjny schemat
sourceapp://
, gdy użytkownik kliknie przycisk Wstecz.
Swift
let testURL = URL(string: "comgooglemaps-x-callback://")!
if UIApplication.shared.canOpenURL(testURL) {
let directionsRequest = "comgooglemaps-x-callback://" +
"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
"&x-success=sourceapp://?resume=true&x-source=AirApp"
let directionsURL = URL(string: directionsRequest)!
UIApplication.shared.openURL(directionsURL)
} else {
NSLog("Can't use comgooglemaps-x-callback:// on this device.")
}
Objective-C
NSURL *testURL = [NSURL URLWithString:@"comgooglemaps-x-callback://"];
if ([[UIApplication sharedApplication] canOpenURL:testURL]) {
NSString *directionsRequest = @"comgooglemaps-x-callback://" +
@"?daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York" +
@"&x-success=sourceapp://?resume=true&x-source=AirApp";
NSURL *directionsURL = [NSURL URLWithString:directionsRequest];
[[UIApplication sharedApplication] openURL:directionsURL];
} else {
NSLog(@"Can't use comgooglemaps-x-callback:// on this device.");
}
Uruchamianie aplikacji Mapy Google na iOS z adresu URL Map Google na komputery
Jeśli Twoja aplikacja ma dostęp do istniejącego adresu URL Map Google, np. do strony internetowej lub bazy danych, możesz otworzyć ten adres w aplikacji Mapy Google na iOS, aby zapewnić użytkownikom Androida najwyższą jakość.
- Zastąp schemat
http://
lubhttps://
ciągiemcomgooglemapsurl://
. - Jeśli chcesz użyć wywołania zwrotnego, dodaj parametry
x-source
ix-success
. Ten schemat jest zgodny ze specyfikacją x-callback-url.
Obsługiwane formaty adresów URL w Mapach Google
Schemat comgooglemapsurl://
obsługuje adresy URL pasujące do tego wyrażenia regularnego, gdzie {TLD}
odnosi się do prawidłowej domeny najwyższego poziomu. Aby zwiększyć czytelność, dodaliśmy podziały wierszy:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Sprawdzam dostępność aplikacji Mapy Google
Najpierw sprawdź, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy obsługuje schemat adresów URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Przykłady
Przykład ogólnego URL-a Map Google:
Oryginalny adres URL Map Google:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Za pomocą schematu adresu URL:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
Przykład ogólnego URL-a Map Google:
Oryginalny adres URL Map Google:
https://maps.google.com/?q=@37.3161,-122.1836
Za pomocą schematu adresu URL:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
Przykład żądania wyznaczenia trasy do Tokyo Tower z wywołaniem zwrotnym:
Oryginalny adres URL Map Google:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
Poniższy przykład spowoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze wskazówkami dojazdu do Tokyo Tower, zgodnie z tym, jak wyglądał pierwotny URL Map Google (powyżej). Aplikacja wyświetli też przycisk „SourceApp”. Gdy użytkownik kliknie przycisk „SourceApp”, aplikacja Mapy Google na iOS zwróci odpowiedź do fikcyjnego schematu URL (sourceapp://?resume=true
).
comgooglemapsurl://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
&x-source=SourceApp
&x-success=sourceapp://?resume=true