Em dispositivos que executam o iOS 9 e posterior, você pode usar Links universais para iniciar o Google Maps quando você tem um URL do Google Maps.
Você pode usar o esquema de URL do Google Maps para iniciar a App Google Maps para iOS e pesquisar, ver rotas e exibir visualizações de mapa. Quando você abrir o Google Maps, seu pacote identificador é enviado automaticamente como parte da solicitação.
Você não precisa de uma chave de API do Google para usar o esquema de URL do Google Maps.
Links universais e Google Maps
O Google Maps para iOS é compatível com Universal Links em dispositivos com iOS 9 ou posterior.
Se seu URL corresponder à expressão regular a seguir e o dispositivo estiver em execução iOS 9 ou posterior, considere usar o método openURL: diretamente.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Por exemplo,
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"]];
Visão geral
Um esquema de URL permite iniciar um aplicativo iOS nativo de outro aplicativo iOS ou um aplicativo da Web. É possível definir opções no URL que será transmitido para o aplicativo executado. O aplicativo do Google Maps para iOS é compatível com o seguinte URL: esquemas:
comgooglemaps://
ecomgooglemaps-x-callback://
: esses esquemas permitem que você inicie o aplicativo do Google Maps para iOS e realize uma das várias ações:- Exibir um mapa em um local e nível de zoom especificados.
- Procurar locais ou lugares e exibi-los em um mapa.
- Solicitar rotas de um local para outro. Rotas podem ser retornadas para quatro modos de transporte: carro, caminhada, bicicleta e público transporte público.
- Adicione navegação ao app.
- Pelo iOS 8, emita um retorno de chamada quando o aplicativo for concluído, usando
comgooglemaps-x-callback://
Os callbacks são usados com frequência para retornam um usuário ao app que abriu originalmente o Google Maps para iOS. Observe que no iOS 9, o sistema fornece automaticamente um botão "Voltar para" no canto esquerdo do na barra de status.
comgooglemapsurl://
: esse esquema permite iniciar o app Google Maps. para iOS usando um URL derivado do site do Google Maps para computadores. Isso significa que que você pode dar aos usuários uma experiência móvel nativa em vez de simplesmente carregar o site do Google Maps.- O URL original pode ser para
maps.google.com
ou paragoogle.com/maps
, ou usar qualquer domínio de nível superior de país válido em vez decom
. Também é possível transmitir URLs de redirecionamentogoo.gl/maps
. - É possível emitir um callback usando
x-source
ex-success
com o esquema de URLcomgooglemapsurl://
.
- O URL original pode ser para
Como iniciar o aplicativo do Google Maps para iOS e executar uma função específica
Para iniciar o aplicativo do Google Maps para iOS e, opcionalmente, executar uma das compatíveis, use um esquema de URL no seguinte formato:
comgooglemaps://?parameters
ou
comgooglemaps-x-callback://?parameters
Os parâmetros são descritos em detalhes posteriormente neste documento.
Verificar a disponibilidade do app Google Maps no dispositivo
Antes de apresentar um desses URLs a um usuário no seu app, primeiro verificar se o aplicativo está instalado. Seu app pode verificar se o URL esquema está disponível com o seguinte código:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
Por exemplo, para exibir um mapa do Central Park em Nova York, use o seguinte código:
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://");
}
Exibir um mapa
Use o esquema de URL para exibir um mapa em uma localização e com o nível de zoom especificados. Você também pode sobrepor outras visualizações em cima de seu mapa ou exibir imagens do Street View.
Parâmetros
Todos os parâmetros a seguir são opcionais. Se nenhum parâmetro for definido, o O esquema de URL iniciará o aplicativo do Google Maps para iOS.
center
: é o ponto central da janela de visualização do mapa. Formatado como uma vírgula string separada delatitude,longitude
.mapmode
: define o tipo de mapa mostrado. Pode ser definido como:standard
oustreetview
. Se não for especificada, as configurações atuais do aplicativo serão usados.views
: ativa/desativa visualizações específicas. Pode ser definido como:satellite
,traffic
outransit
. Vários valores podem ser definidos usando um separador por vírgula. Se o parâmetro for especificado sem valor, ele será limpar todas as visualizações.zoom
: especifica o nível de zoom do mapa.
Este URL de exemplo exibe o mapa centralizado em Nova York com zoom de 14, com o visualização do trânsito em:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Alguns exemplos adicionais são:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Pesquisar
Use este esquema para exibir consultas de pesquisa em um local especificado da janela de visualização.
Parâmetros
Além dos parâmetros usados para mostrar um mapa, a Pesquisa é compatível com o q
.
q
: a string de consulta da sua pesquisa.
Este URL de exemplo para pesquisar "Pizza" ao redor do local especificado:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Alguns exemplos adicionais são:
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
Exibir rotas
Use este esquema para solicitar e exibir rotas entre duas localizações. Você também pode especificar o meio de transporte.
Parâmetros
saddr
: define o ponto de partida para pesquisas de rota. Isso pode ser uma latitude,longitude ou um endereço formatado de consulta. Se for uma consulta string que retornar mais de um resultado, o primeiro resultado será selecionados. Se o valor for deixado em branco, a localização atual do usuário será usado.daddr
: define o ponto final para pesquisas de rota. Tem o mesmo formato e comportamento desaddr
.directionsmode
: método de transporte. Pode ser definido como:driving
,transit
,bicycling
ouwalking
.
O URL de exemplo exibe rotas de transporte público entre o Google Nova York e o aeroporto JFK:
comgooglemaps://?saddr=Google+Inc,+8th+Avenue,+New+York,+NY&daddr=John+F.+Kennedy+International+Airport,+Van+Wyck+Expressway,+Jamaica,+New+York&directionsmode=transit
Alguns exemplos adicionais são:
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
Especificar um URL de callback
Se quiser especificar um URL de retorno, use o
Esquema de URL comgooglemaps-x-callback://
. Esse esquema está em conformidade
especificação x-callback-url. Quando você liga para o aplicativo do Google Maps para iOS
com esse esquema, o aplicativo exibirá um botão na parte superior
na tela. Ao tocar nesse botão, uma chamada de retorno é emitida para um URL que
que você especificar.
Solicitações para comgooglemaps-x-callback://
precisam estar no formato:
comgooglemaps-x-callback://?parameters
Parâmetros
O esquema de URL do callback x aceita os mesmos parâmetros que o comgooglemaps://
com os parâmetros adicionais a seguir. Os dois parâmetros são
obrigatórios.
x-source
: o nome do aplicativo que envia o callback x solicitação. Recomendamos usar nomes curtos.x-success
: o URL a ser chamado quando concluído. Muitas vezes, isso ser um esquema de URL para seu próprio aplicativo, permitindo que os usuários retornem ao site para o aplicativo.
Observe que seu aplicativo terá que registrar seu próprio esquema de URL para que possa responda ao URL de callback.
- Verifique se seu aplicativo registrou um esquema de URL que pode responder à solicitação de retorno de chamada.
- Transmita o rótulo do botão de callback no parâmetro
x-source
. - Transmita o URL de callback no parâmetro
x-success
.
O exemplo a seguir inicia o app Google Maps para iOS e mostra um mapa
centralizada em Nova York. O app também vai mostrar um botão com o rótulo "SourceApp".
Quando o aplicativo "SourceApp" for clicado, o aplicativo do Google Maps para iOS emitirá
um callback para um esquema de URL fictício, sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Assim como no esquema de URL comgooglemaps://
, primeiro verifique se
o aplicativo do Google Maps para iOS está disponível no dispositivo e suporta
o esquema de URL x-callback. O app pode verificar se o esquema de URL está disponível
pelo seguinte código:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
Este é um exemplo de URL que permite aos usuários retornar a um aplicativo depois de pesquisar a sobremesa.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Como adicionar navegação ao app
Iniciar o aplicativo do Google Maps para iOS com uma solicitação de rotas é uma maneira fácil de
conceder aos usuários acesso à navegação guiada a partir do seu aplicativo. Você pode usar
os esquemas de URL comgooglemaps://
ou comgooglemaps-x-callback://
.
Este snippet de código mostra como usar o esquema comgooglemaps-x-callback://
para
solicitar rotas e retornar ao app quando o usuário estiver pronto. O
vai fazer o seguinte:
- Verifique se o esquema de URL
comgooglemaps-x-callback://
está disponível. - Abra o aplicativo do Google Maps para iOS e solicite rotas para o aeroporto JFK em Nova York. Deixe o endereço de partida em branco para solicitar rotas da a localização atual do usuário.
- Adicionar um botão com o rótulo "AirApp" para o aplicativo do Google Maps para iOS. O botão
rótulo é definido pelo parâmetro
x-source
. - Chame o esquema de URL fictício
sourceapp://
quando os usuários clicarem no botão "Voltar".
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.");
}
Iniciar o app do Google Maps para iOS em um URL do Google Maps para computador
Caso seu app tenha acesso a um URL pré-existente do Google Maps, como uma página da Web ou em um banco de dados, use esse esquema para abrir o URL no app Google Maps. para iOS, oferecendo assim aos usuários a melhor experiência nativa.
- Substitua o esquema
http://
ouhttps://
porcomgooglemapsurl://
. - Se você quiser usar um callback, inclua
x-source
ex-success
. parâmetros. Esse esquema está em conformidade com a especificação x-callback-url.
Formatos de URL do Google Maps compatíveis
O esquema comgooglemapsurl://
oferece suporte a URLs que correspondem a
, em que {TLD}
refere-se a qualquer domínio de nível superior válido de um país. Linhas
foram adicionados para maior clareza:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Verificar a disponibilidade do app Google Maps
Primeiro, verifique se o aplicativo do Google Maps para iOS está disponível no dispositivo. suporta o esquema de URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Exemplos
Exemplo de um URL genérico do Google Maps:
URL original do Google Maps:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Uso do esquema de URL:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
Exemplo de um URL genérico do Google Maps:
URL original do Google Maps:
https://maps.google.com/[email protected],-122.1836
Uso do esquema de URL:
comgooglemapsurl://maps.google.com/[email protected],-122.1836
Exemplo de solicitação de rotas para a Torre de Tóquio com x-callback:
URL original do Google Maps:
http://maps.google.com/maps?f=d&daddr=Tokyo+Tower,+Tokyo,+Japan&sll=35.6586,139.7454&sspn=0.2,0.1&nav=1
O exemplo a seguir inicia o app Google Maps para iOS e mostra um mapa
com rotas para a Torre de Tóquio, conforme especificado no URL original do Google Maps.
(acima). O aplicativo também exibirá um botão com o rótulo
"SourceApp". Quando o aplicativo "SourceApp" é clicado, o aplicativo do Google Maps para iOS
vai emitir um callback para um esquema de URL fictício, 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