Na urządzeniach z iOS 9 lub nowszym możesz użyć uniwersalnych linków, aby uruchomić Mapy Google, jeśli masz adres URL w Mapach Google.
Za pomocą schematu adresu URL Map Google możesz uruchamiać aplikację Mapy Google na iOS, przeprowadzać wyszukiwania, otrzymywać prośby o wskazówki dojazdu i wyświetlać mapy. Po uruchomieniu Map Google w żądaniu automatycznie wysyłany jest identyfikator pakietu.
Aby korzystać ze schematu adresu 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 iOS w wersji 9 lub nowszej.
Jeśli URL pasuje do poniższego wyrażenia regularnego, a na urządzeniu działa iOS 9 lub nowszy, możesz użyć metody openURL:.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
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 uruchamianie natywnej aplikacji na iOS z poziomu innej aplikacji na iOS lub aplikacji internetowej. Możesz ustawić opcje w adresie URL, 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świetlaj mapę w określonej lokalizacji i powiększeniu.
- Wyszukuj lokalizacje lub miejsca i wyświetlaj je na mapie.
- Zapytanie o wskazówki dojazdu z jednego miejsca do drugiego. Wskazówki dojazdu mogą być zwracane w przypadku 4 środków transportu: samochodem, pieszo, rowerem i transportem publicznym.
- Dodaj nawigację do aplikacji.
- W systemie iOS 8 wysyłaj wywołanie zwrotne po zakończeniu aplikacji za pomocą polecenia
comgooglemaps-x-callback://
. Wywołania zwrotne są często stosowane w celu zwrócenia użytkownika do aplikacji, w której oryginalnie 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 umożliwia uruchamianie aplikacji Mapy Google na iOS przy użyciu adresu URL pobranego ze strony Map Google na komputery. Oznacza to, że zamiast ładować witrynę z Mapami Google, możesz zapewnić użytkownikom natywny dostęp do urządzeń mobilnych.- Pierwotny adres URL może prowadzić do
maps.google.com
lubgoogle.com/maps
albo używać dowolnej prawidłowej domeny krajowej najwyższego poziomu zamiastcom
. Możesz też przekazywać adresy URL przekierowańgoo.gl/maps
. - Możesz wykonać wywołanie zwrotne, używając parametrów
x-source
ix-success
ze schematem adresu URLcomgooglemapsurl://
.
- Pierwotny adres URL może prowadzić do
Wprowadzenie aplikacji Mapy Google na iOS i wykonanie określonej 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 zostały szczegółowo opisane w dalszej części tego dokumentu.
Sprawdzam dostępność aplikacji Mapy Google na urządzeniu
Zanim udostępnisz ten adres URL użytkownikowi w aplikacji, sprawdź, czy aplikacja jest 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żywaj schematu adresu URL do wyświetlania mapy przy określonym powiększeniu i lokalizacji. Na mapę możesz też nałożyć inne widoki lub wyświetlać zdjęcia Street View.
Parametry
Wszystkie parametry podane poniżej są opcjonalne. Jeśli nie zostaną ustawione żadne parametry, schemat URL uruchomi aplikację Mapy Google na iOS.
center
: jest to punkt środkowy widocznego obszaru mapy. Sformatowany jako ciąg znakówlatitude,longitude
rozdzielony przecinkami.mapmode
: określa rodzaj wyświetlanej mapy. Można ustawić wartośćstandard
lubstreetview
. Jeśli nie podasz żadnej wartości, zostaną użyte bieżące ustawienia aplikacji.views
: włącza lub wyłącza określone widoki danych. Możesz ustawić wartość:satellite
,traffic
lubtransit
. Za pomocą separatora przecinków można ustawić wiele wartości. Jeśli parametr jest określony bez wartości, spowoduje to wyczyszczenie wszystkich widoków.zoom
: określa poziom powiększenia mapy.
Pod tym przykładowym adresem URL mapa jest wyśrodkowana na Nowym Jorku w zbliżeniu 14 i z włączonym widokiem natężenia ruchu:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
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 parametr q
.
q
: ciąg zapytania dla Twojego wyszukiwania.
Ten przykładowy URL do wyszukania hasła „pizza” w określonej lokalizacji:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
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
Zastosuj ten schemat, aby zażądać i wyświetlić wskazówki dojazdu między dwoma 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 lub adres w formie zapytania. Jeśli jest to ciąg zapytania, który zwraca więcej niż 1 wynik, wybrany zostanie pierwszy wynik. Jeśli wartość pozostanie pusta, używana będzie bieżąca lokalizacja użytkownika.daddr
: ustawia punkt końcowy wyszukiwania wskazówek dojazdu. Ma taki sam format i zachowanie co właściwośćsaddr
.directionsmode
: środek transportu. Można ustawić na:driving
,transit
,bicycling
lubwalking
.
Przykładowy URL zawiera wskazówki dojazdu transportem publicznym między Google NYC a lotniskiem JFK:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
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. Wywołanie aplikacji Mapy Google na iOS za pomocą tego schematu powoduje wyświetlenie przycisku u góry ekranu. Kliknięcie tego przycisku spowoduje wysłanie wywołania zwrotnego do podanego adresu URL.
Prośby o dostęp do usługi comgooglemaps-x-callback://
muszą mieć następujący format:
comgooglemaps-x-callback://?parameters
Parametry
Schemat adresu URL wywołania zwrotnego x akceptuje te same parametry co schemat adresu URL comgooglemaps://
z poniższymi parametrami dodatkowymi. Oba parametry są wymagane.
x-source
– nazwa aplikacji wysyłającej żądanie wywołania zwrotnego x. Preferowane są krótkie nazwy.x-success
– adres URL, który ma zostać wywołany po ukończeniu. Często będzie to schemat adresu URL Twojej aplikacji, który umożliwia użytkownikom powrót do pierwotnej aplikacji.
Pamiętaj, że aplikacja musi zarejestrować własny schemat adresu URL, by odpowiadać na adres URL wywołania zwrotnego.
- Sprawdź, czy aplikacja zarejestrowała schemat adresu URL, który może odpowiadać na żądanie wywołania zwrotnego.
- Przekaż etykietę przycisku wywołania zwrotnego w parametrze
x-source
. - Przekaż URL wywołania zwrotnego w parametrze
x-success
.
Poniższy przykład spowoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze środkiem w Nowym Jorku. Aplikacja wyświetli też przycisk „Aplikacja źródłowa”.
Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS wysyła wywołanie zwrotne 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
Podobnie jak w przypadku schematu adresu URL comgooglemaps://
, musisz najpierw sprawdzić, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i obsługuje schemat adresu URL wywołania zwrotnego x. Aplikacja może sprawdzać dostępność schematu adresu URL za pomocą tego kodu:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
To jest przykład adresu URL, który umożliwia użytkownikom powrót do aplikacji po wyszukaniu słowa „deser”.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Dodawanie nawigacji do aplikacji
Wprowadzenie aplikacji Mapy Google na iOS z prośbą o wskazówki dojazdu to łatwy sposób na zapewnienie użytkownikom dostępu do szczegółowej nawigacji z aplikacji. Możesz użyć schematu adresu URL comgooglemaps://
lub comgooglemaps-x-callback://
.
Ten fragment kodu pokazuje, jak używać schematu comgooglemaps-x-callback://
do uzyskiwania wskazówek dojazdu i powracania do aplikacji, gdy użytkownik będzie gotowy. Ten kod wykona te działania:
- Sprawdź, czy dostępny jest schemat adresu URL
comgooglemaps-x-callback://
. - 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 pole adresu początkowego puste.
- Dodaj przycisk o nazwie „AirApp” do aplikacji Mapy Google na iOS. Etykieta przycisku jest definiowana przez parametr
x-source
. - Wywołaj fikcyjny schemat adresu URL (
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.");
}
Wprowadzenie aplikacji Mapy Google na iOS z adresu URL Map Google na komputery
Jeśli Twoja aplikacja ma dostęp do dotychczasowego adresu URL w Mapach Google, np. na stronie internetowej lub w bazie danych, możesz użyć tego schematu, aby otworzyć go w aplikacji Mapy Google na iOS. Dzięki temu użytkownicy będą mogli korzystać z najlepszej aplikacji natywnej.
- Zastąp schemat
http://
lubhttps://
ciągiemcomgooglemapsurl://
. - Jeśli chcesz użyć wywołania zwrotnego, dołącz 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 pasujące do tego wyrażenia regularnego, gdzie {TLD}
odnosi się do dowolnej prawidłowej domeny krajowej najwyższego poziomu. Aby zwiększyć przejrzystość, dodano 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 w Mapach Google:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Korzystając ze 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 w Mapach Google:
https://maps.google.com/?q=@37.3161,-122.1836
Korzystając ze schematu adresu URL:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
Przykład prośby o wskazówki dojazdu do Tokyo Tower z numerem X:
Oryginalny adres URL w Mapach 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 powoduje uruchomienie aplikacji Mapy Google na iOS i wyświetlenie mapy ze wskazówkami dojazdu do Tokyo Tower, zgodnie z pierwotnym adresem URL Map Google (powyżej). Wyświetli się też przycisk
„Aplikacja źródłowa”. Po kliknięciu przycisku „SourceApp” aplikacja Mapy Google na iOS zwraca 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