Na urządzeniach z iOS 9 lub nowszym można użyć uniwersalnych linków, aby uruchomić Mapy Google, gdy znasz adres URL Map Google.
Za pomocą schematu adresu URL Map Google możesz uruchomić aplikację Mapy Google na iOS oraz przeprowadzić wyszukiwanie, uzyskać wskazówki dojazdu i wyświetlić widoki mapy. Gdy uruchomisz Mapy Google, identyfikator pakietu zostanie automatycznie wysłany w ramach żądania.
Aby korzystać ze schematu adresu URL Map Google, nie musisz mieć klucza interfejsu API Google.
Uniwersalne linki i Mapy Google
Mapy Google na iOS obsługują uniwersalne linki na urządzeniach z iOS 9 lub nowszym.
Jeśli adres URL pasuje do tego wyrażenia regularnego, a na urządzeniu jest system iOS 9 lub nowszy, rozważ użycie bezpośrednio 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 adresu URL umożliwia uruchamianie natywnej aplikacji na iOS z innej aplikacji na iOS lub aplikacji internetowej. W adresie URL możesz ustawić opcje, które zostaną przekazane uruchomionej aplikacji. Aplikacja Mapy Google na iOS obsługuje te schematy adresów URL:
comgooglemaps://
icomgooglemaps-x-callback://
– te schematy umożliwiają uruchamianie aplikacji Mapy Google na iOS i wykonywanie jednej z tych czynności:- Wyświetlanie mapy w określonej lokalizacji i poziomie powiększenia.
- wyszukiwać lokalizacje i miejsca oraz wyświetlać je na mapie;
- prosić o wskazówkę dojazdu z jednego miejsca do drugiego. Wskazówki dojazdu mogą być zwracane w przypadku 4 rodzajów transportu: samochodowego, pieszego, rowerowego i publicznego.
- Dodaj nawigację do aplikacji.
- W iOS 8 wywołaj metodę wywołania zwrotnego, gdy aplikacja zakończy działanie, za pomocą
comgooglemaps-x-callback://
. Zwróć uwagę, że funkcje zwracane są często używane do przywracania użytkownika do aplikacji, która pierwotnie otworzyła Mapy Google na iOS. Pamiętaj, że w iOS 9 system automatycznie wyświetla link „Wróć” w lewym rogu paska stanu.
comgooglemapsurl://
– ten schemat umożliwia uruchamianie aplikacji Mapy Google na iOS za pomocą adresu URL pochodzącego z witryny Map Google na komputery. Oznacza to, że możesz zapewnić użytkownikom natywną obsługę na urządzeniach mobilnych, zamiast po prostu wczytywać stronę Map Google.- Oryginalny adres URL może być adresem
maps.google.com
lubgoogle.com/maps
albo może zawierać dowolną prawidłową domenę najwyższego poziomu kraju zamiastcom
. Możesz też przekazać adresy URLgoo.gl/maps
przekierowania. - Możesz wywołać funkcję obsługiwaną przez operatora, używając parametrów
x-source
ix-success
w schemacie adresu URLcomgooglemapsurl://
.
- Oryginalny adres URL może być adresem
uruchamianie aplikacji Mapy Google na iOS i wykonywanie określonej funkcji.
Aby uruchomić aplikację Mapy Google na iOS i opcjonalnie wykonać jedną z obsługiwanych funkcji, użyj schematu adresu URL w takim formacie:
comgooglemaps://?parameters
lub
comgooglemaps-x-callback://?parameters
Parametry są szczegółowo opisane w dalszej części tego dokumentu.
Sprawdzanie dostępności aplikacji Mapy Google na urządzeniu
Zanim wyświetlisz użytkownikowi jeden z tych adresów URL w aplikacji, najpierw 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żyj schematu adresu URL, aby wyświetlić mapę z określonym poziomem powiększenia i lokalizacją. Możesz też nałożyć na mapę inne widoki lub wyświetlić zdjęcia Street View.
Parametry
Wszystkie parametry podane poniżej są opcjonalne. Jeśli nie ustawisz żadnych parametrów, schemat URL uruchomi aplikację Mapy Google na iOS.
center
: punkt centralny widoku mapy. Jest on sformatowany jako ciąg znakówlatitude,longitude
oddzielony przecinkami.mapmode
: określa rodzaj wyświetlanej mapy. Może mieć wartośćstandard
lubstreetview
. Jeśli nie zostanie określony, zostaną użyte bieżące ustawienia aplikacji.views
: włącza lub wyłącza określone widoki. Może przyjmować wartości:satellite
,traffic
lubtransit
. Można ustawić wiele wartości, rozdzielając je przecinkami. Jeśli parametr nie ma wartości, spowoduje wyczyszczenie wszystkich wyświetleń.zoom
: określa poziom powiększenia mapy.
Ten przykładowy adres URL wyświetla mapę z centrum w Nowym Jorku przy powiększeniu 14 i widokiem na ruch drogowy:
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
Szukaj
Używaj tego schematu, aby wyświetlać zapytania w wyświetlaczu w określonej lokalizacji.
Parametry
Oprócz parametrów służących do wyświetlania mapy wyszukiwarka obsługuje parametr q
.
q
: ciąg zapytania do wyszukiwania.
Ten przykładowy adres URL służy do wyszukiwania informacji o sklepie „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świetlanie wskazówek
Użyj tego schematu, aby poprosić o wyświetlenie trasy między 2 lokalizacjami. Możesz też określić środek transportu.
Parametry
saddr
: ustawia punkt początkowy wyszukiwania tras. Może to być współrzędna szerokości i długości geograficznej lub adres w formacie zapytania. Jeśli jest to ciąg znaków zapytania, który zwraca więcej niż 1 wynik, zostanie wybrany pierwszy wynik. Jeśli pozostawisz to pole puste, używana będzie bieżąca lokalizacja użytkownika.daddr
: ustawia punkt końcowy wyszukiwania wskazówek. Ma ten sam format i działa tak samo jak polesaddr
.directionsmode
: sposób transportu. Może przyjmować wartości:driving
,transit
,bicycling
lubwalking
.
Przykładowy adres URL wyświetla wskazówki dotyczące transportu 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
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://
. Ten schemat jest zgodny ze specyfikacją x-callback-url. Gdy wywołasz aplikację Mapy Google na iOS za pomocą tego schematu, u góry ekranu pojawi się przycisk. Kliknięcie tego przycisku spowoduje wywołanie zwrotne do podanego adresu URL.
Żądania wysyłane do comgooglemaps-x-callback://
muszą mieć następującą formę:
comgooglemaps-x-callback://?parameters
Parametry
Schemat adresu URL x-callback akceptuje te same parametry co schemat adresu URL comgooglemaps://
, z tymi dodatkowymi parametrami. Oba parametry są wymagane.
x-source
– nazwa aplikacji wysyłającej żądanie x-callback. Preferowane są krótkie nazwy.x-success
– URL, pod którym po zakończeniu wyświetlania reklamy następuje połączenie. 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, aby mogła odpowiadać na wywołania zwrotne w adresie URL.
- Upewnij się, że aplikacja ma zarejestrowany schemat adresu URL, który może odpowiedzieć na żądanie wywołania zwrotnego.
- W parametrze
x-source
podaj etykietę przycisku wywołania zwrotnego. - Przekaż URL wywołania zwrotnego w parametrze
x-success
.
W tym przykładzie uruchamiana jest aplikacja Mapy Google na iOS i wyświetlana jest mapa z Nowym Jorkiem w środku. Aplikacja wyświetli też przycisk „Aplikacja źródłowa”.
Gdy klikniesz przycisk „Aplikacja źródłowa”, aplikacja Mapy Google na iOS wyśle 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
Podobnie 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://"]];
Przykład adresu 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 wskazanie trasy to łatwy sposób na umożliwienie użytkownikom korzystania z nawigacji zakręt po zakręcie w aplikacji. Możesz użyć schematu URL comgooglemaps://
lub comgooglemaps-x-callback://
.
Ten fragment kodu pokazuje, jak za pomocą schematu comgooglemaps-x-callback://
poprosić o wskazówki dojazdu, a potem wrócić do aplikacji, gdy użytkownik będzie gotowy. Kod wykona te czynności:
- Sprawdź, czy schemat adresu URL
comgooglemaps-x-callback://
jest dostępny. - Otwórz aplikację Mapy Google na iOS i uzyskaj wskazówki do lotniska JFK w Nowym Jorku. Pozostaw pole adresu początkowego puste, aby poprosić o wskazanie trasy z bieżącej lokalizacji użytkownika.
- Dodaj do aplikacji Mapy Google na iOS przycisk „AirApp”. Etykieta przycisku jest definiowana przez parametr
x-source
. - Gdy użytkownik kliknie przycisk Wstecz, wywołaj 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.");
}
Uruchamianie aplikacji Mapy Google na iOS z adresu URL Map Google na komputerze
Jeśli Twoja aplikacja ma dostęp do wcześniej utworzonego adresu URL Map Google, np. na stronie internetowej lub w bazie danych, możesz użyć tego schematu, aby otworzyć ten adres URL w aplikacji Mapy Google na iOS, zapewniając użytkownikom najlepsze wrażenia z korzystania z aplikacji natywnej.
- Zamień schemat
http://
lubhttps://
nacomgooglemapsurl://
. - Jeśli chcesz użyć wywołania zwrotnego, dodaj parametry
x-source
ix-success
. Schemat ten jest zgodny ze specyfikacją x-callback-url.
Obsługiwane formaty adresów URL Map Google
Schemat comgooglemapsurl://
obsługuje adresy URL, które pasują do tego wyrażenia regularnego, gdzie {TLD}
oznacza dowolną prawidłową domenę najwyższego poziomu kraju. W celu ułatwienia odczytu dodaliśmy znaki końca wiersza:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Sprawdzanie dostępności aplikacji Mapy Google
Najpierw sprawdź, czy aplikacja Mapy Google na iOS jest dostępna na urządzeniu i czy 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 Map Google:
Pierwotny URL Map 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 Map Google:
Pierwotny URL Map 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 wieży Tokyo Tower z użyciem parametru x-callback:
Pierwotny 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
W tym przykładzie aplikacja Mapy Google na iOS uruchamia mapę z kierunkami do wieży Tokyo Tower zgodnie z adresem URL Map Google (powyżej). Aplikacja wyświetli też przycisk „Aplikacja źródłowa”. Gdy klikniesz przycisk „Aplikacja źródłowa”, 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