Na urządzeniach z systemem iOS 9 i nowszym możesz używać linków uniwersalnych do uruchamiania Map Google, jeśli masz adres URL Map Google.
Korzystając ze schematu adresów URL Map Google, możesz uruchomić aplikację Mapy Google na iOS i przeprowadzić wyszukiwanie, otrzymywać prośby o wskazówki dojazdu oraz wyświetlać widoki mapy. Po uruchomieniu Map Google automatycznie wysyłamy Twój identyfikator pakietu.
Aby korzystać ze schematu URL Map Google, nie potrzebujesz klucza interfejsu API Google.
Linki uniwersalne i Mapy Google
Mapy Google na iOS obsługują uniwersalne linki na urządzeniach z systemem iOS 9 lub nowszym.
Jeśli adres URL pasuje do poniższego wyrażenia regularnego, a urządzenie korzysta z systemu iOS 9 lub nowszego, możesz bezpośrednio 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"]];
Przegląd
Schemat adresu URL umożliwia uruchomienie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić opcje w adresie URL, który będzie przekazywany do uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:
comgooglemaps://
icomgooglemaps-x-callback://
– te schematy pozwalają uruchomić aplikację Mapy Google na iOS i wykonać jedną z tych czynności:- Możesz wyświetlić mapę w określonej lokalizacji i na poziomie powiększenia.
- Wyszukaj lokalizacje lub miejsca i wyświetl je na mapie.
- Uzyskiwanie wskazówek dojazdu z jednego miejsca do drugiego. Trasa dojazdu może zostać zwrócona dla czterech środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
- Dodaj nawigację do aplikacji.
- W iOS 8 wyślij wywołanie zwrotne po zakończeniu działania aplikacji za pomocą narzędzia
comgooglemaps-x-callback://
. Wywołania zwrotne często służą do powrotu użytkownika do aplikacji, w której uruchomiono Mapy Google na iOS. Pamiętaj, że w iOS 9 system automatycznie wyświetla link „Powrót do” w lewym rogu paska stanu.
comgooglemapsurl://
– ten schemat pozwala uruchomić aplikację Mapy Google na iOS przy użyciu adresu URL pochodzącego z witryny Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom środowisko mobilne, zamiast wczytywać stronę Map Google.- Pierwotny adres URL może wskazywać domenę
maps.google.com
, domenęgoogle.com/maps
lub dowolną prawidłową domenę krajową najwyższego poziomu zamiast domenycom
. Możesz również przekazaćgoo.gl/maps
adresy URL przekierowania. - Możesz wysłać wywołanie zwrotne za pomocą parametrów
x-source
ix-success
ze schematem adresu URLcomgooglemapsurl://
.
- Pierwotny adres URL może wskazywać domenę
Uruchomienie aplikacji Mapy Google na iOS i wykonanie konkretnej funkcji
Aby uruchomić aplikację Mapy Google na iOS i opcjonalnie skorzystać z jednej z obsługiwanych funkcji, użyj schematu URL o następującej postaci:
comgooglemaps://?parameters
lub
comgooglemaps-x-callback://?parameters
Parametry zostały szczegółowo opisane w dalszej części tego dokumentu.
Sprawdzam dostępność aplikacji Mapy Google na urządzeniu
Zanim pokażesz użytkownikowi jeden z tych adresów URL w aplikacji, musisz najpierw sprawdzić, czy aplikacja jest zainstalowana. Aplikacja może sprawdzić, czy schemat adresów 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ę Poznania w Nowym Jorku, możesz użyć następującego 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
Aby wyświetlić mapę z określonym powiększeniem i w określonej lokalizacji, użyj schematu adresu URL. Możesz też nakładać 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 adresu URL uruchomi aplikację Mapy Google na iOS.
center
: to centralny punkt widocznego obszaru mapy. Sformatowana jako ciąglatitude,longitude
rozdzielany przecinkami.mapmode
: ustawia rodzaj wyświetlanej mapy. Możliwe wartości:standard
lubstreetview
. Jeśli go nie podasz, zostaną użyte bieżące ustawienia aplikacji.views
: włącza lub wyłącza określone widoki danych. Można ustawić na:satellite
,traffic
lubtransit
. Za pomocą separatora przecinka można ustawić wiele wartości. Jeśli parametr jest bez wartości, spowoduje to usunięcie wszystkich wyświetleń.zoom
: określa poziom powiększenia mapy.
Ten przykładowy URL pokazuje mapę wyśrodkowaną na Nowym Jorku przy powiększeniu 14 z widokiem natężenia ruchu:
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
Wyszukiwarka
Ten schemat służy do wyświetlania wyszukiwanych haseł w określonej lokalizacji widocznego obszaru.
Parametry
Oprócz parametrów używanych do wyświetlania mapy wyszukiwarka obsługuje też parametr q
.
q
: ciąg zapytania do wyszukania.
Ten przykładowy adres URL do wyszukiwania hasła „pizza” w określonej lokalizacji:
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świetlam trasę
Ten schemat służy do pobierania i wyświetlania wskazówek dojazdu między dwiema lokalizacjami. Możesz też określić środek transportu.
Parametry
saddr
: ustawia punkt początkowy wyszukiwania wskazówek dojazdu. Może to być szerokość i długość geograficzna lub adres w formacie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż 1 wynik, wybierany jest pierwszy wynik. Jeśli wartość jest pusta, używana jest bieżąca lokalizacja użytkownika.daddr
: ustawia punkt końcowy wyszukiwania wskazówek dojazdu. Ma taki sam format i działanie jaksaddr
.directionsmode
: sposób transportu. Możliwe wartości:driving
,transit
,bicycling
lubwalking
.
Przykładowy URL pokazuje wskazówki dojazdu transportem publicznym między Google Nowy Jork a lotnisko 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ć adres URL wywołania zwrotnego, musisz użyć schematu adresu URL comgooglemaps-x-callback://
. Schemat ten jest zgodny ze specyfikacją x-callback-url. Gdy wywołasz aplikację Mapy Google na iOS za pomocą tego schematu, aplikacja wyświetli przycisk u góry ekranu. Kliknięcie tego przycisku spowoduje wywołanie zwrotne do określonego przez Ciebie adresu URL.
Żądania wysyłane do comgooglemaps-x-callback://
muszą mieć następujący format:
comgooglemaps-x-callback://?parameters
Parametry
Schemat adresu URL x-wywołania zwrotnego akceptuje te same parametry co schemat adresu URL comgooglemaps://
, ale dodatkowo następujące parametry dodatkowe. Oba parametry są wymagane.
x-source
– nazwa aplikacji wysyłającej żądanie x-callback. Preferowane są krótkie nazwy.x-success
– adres URL, który ma zostać wywołany po zakończeniu. Często będzie to schemat adresu URL Twojej aplikacji, który pozwoli użytkownikom wrócić do pierwotnej aplikacji.
Pamiętaj, że aplikacja musi zarejestrować własny schemat adresu URL, by móc odpowiadać na adres URL wywołania zwrotnego.
- Sprawdź, czy aplikacja zarejestrował 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 pozwala uruchomić aplikację Mapy Google na iOS i wyświetlić mapę wyśrodkowaną na Nowym Jorku. W aplikacji wyświetli się również przycisk „SourceApp”.
Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS zwróci wywołanie do fikcyjnego schematu adresu URL 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 adresu URL comgooglemaps://
, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy obsługuje schemat adresu URL x-callback. Aplikacja może sprawdzić, czy schemat adresu URL jest dostępny za pomocą tego kodu:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
To przykład adresu URL, który pozwala użytkownikom wrócić do aplikacji po wyszukaniu deserów.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Dodaję nawigację do aplikacji
Uruchomienie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu to prosty sposób na zapewnienie użytkownikom dostępu do nawigacji zakręt po zakręcie z poziomu Twojej aplikacji. Możesz użyć schematów adresów URL comgooglemaps://
lub comgooglemaps-x-callback://
.
Ten fragment kodu pokazuje, jak używać schematu comgooglemaps-x-callback://
do wysyłania zapytań o wskazówki dojazdu, a następnie powrotu do aplikacji, gdy użytkownik będzie gotowy. Kod wykona te działania:
- Sprawdź, czy schemat adresu URL
comgooglemaps-x-callback://
jest dostępny. - Uruchom aplikację Mapy Google na iOS i zapytaj o trasę dojazdu na lotnisko JFK w Nowym Jorku. Aby uzyskać wskazówki dojazdu z bieżącej lokalizacji użytkownika, pozostaw to pole puste.
- Dodaj przycisk „AirApp” do aplikacji Mapy Google na iOS. Etykieta przycisku jest określana przez parametr
x-source
. - Gdy użytkownik kliknie przycisk Wstecz, zostanie wywołany fikcyjny schemat adresu URL (
sourceapp://
).
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.");
}
Uruchomienie 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, na przykład na stronie internetowej lub w bazie danych, możesz skorzystać z tego schematu, aby otwierać ten adres w aplikacji Mapy Google na iOS, aby zapewnić użytkownikom najlepsze wrażenia natywne.
- Zastąp schemat
http://
lubhttps://
elementemcomgooglemapsurl://
. - Jeśli chcesz używać wywołania zwrotnego, uwzględnij parametry
x-source
ix-success
. Schemat ten jest zgodny ze specyfikacją x-callback-url.
Obsługiwane formaty adresów URL w Mapach Google
Schemat comgooglemapsurl://
obsługuje adresy URL, które pasują do tego wyrażenia regularnego, gdzie {TLD}
oznacza dowolną prawidłową domenę krajową najwyższego poziomu. Aby zwiększyć przejrzystość, 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 obsługuje schemat adresu URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Przykłady
Przykład ogólnego adresu URL w Mapach 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 adresu URL w Mapach 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 prośby o wskazówki dojazdu do Tokyo Tower z wywołaniem zwrotnym x:
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 uruchamia aplikację Mapy Google na iOS i wyświetla mapę ze wskazówkami dojazdu do Tokyo Tower, zgodnie z oryginalnym adresem URL Map Google (powyżej). Aplikacja wyświetli też przycisk
„SourceApp”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wyśle wywołanie zwrotne do fikcyjnego schematu adresu 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