Sui dispositivi con iOS 9 e versioni successive, puoi utilizzare Universal Links per avviare Google Maps quando disponi di un URL di Google Maps.
Puoi utilizzare lo schema URL di Google Maps per lanciare l'app Google Maps per iOS ed eseguire ricerche, ricevere richieste di indicazioni stradali e visualizzare le visualizzazioni della mappa. Quando avvii Google Maps, l'identificatore pacchetto viene inviato automaticamente come parte della richiesta.
Non è necessaria una chiave API di Google per utilizzare lo schema URL di Google Maps.
Link universali e Google Maps
Google Maps per iOS supporta i link universali sui dispositivi con iOS 9 o versioni successive.
Se il tuo URL corrisponde alla seguente espressione regolare e il dispositivo esegue iOS 9 o versioni successive, puoi utilizzare il metodo openURL:.
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Ad esempio,
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"]];
Panoramica
Uno schema URL ti consente di avviare un'applicazione nativa per iOS da un'altra app per iOS o da un'applicazione web. Puoi impostare opzioni nell'URL che verranno trasmesse all'applicazione avviata. L'app Google Maps per iOS supporta i seguenti schemi URL:
comgooglemaps://
ecomgooglemaps-x-callback://
: questi schemi consentono di lanciare l'app Google Maps per iOS ed eseguire una delle seguenti azioni:- Visualizza una mappa in una posizione e un livello di zoom specifici.
- Cerca luoghi o luoghi e visualizzali su una mappa.
- Richiedere indicazioni stradali da una località a un'altra. Le indicazioni stradali possono essere restituite per quattro modalità di trasporto: auto, a piedi, in bicicletta e con il trasporto pubblico.
- Aggiungi le funzionalità di navigazione alla tua app.
- Tramite iOS 8, emetti un callback al termine dell'app utilizzando
comgooglemaps-x-callback://
. I callback vengono spesso utilizzati per restituire un utente all'app che in origine ha aperto Google Maps per iOS. Tieni presente che su iOS 9 il sistema fornisce automaticamente un link "Torna a" nell'angolo sinistro della barra di stato.
comgooglemapsurl://
: questo schema consente di lanciare l'app Google Maps per iOS utilizzando un URL ricavato dal sito web per computer desktop di Google Maps. Ciò significa che puoi offrire ai tuoi utenti un'esperienza nativa per dispositivi mobili invece di caricare semplicemente il sito web di Google Maps.- L'URL originale può essere per
maps.google.com
o pergoogle.com/maps
oppure per utilizzare qualsiasi dominio nazionale di primo livello valido anzichécom
. Puoi anche trasmetteregoo.gl/maps
URL di reindirizzamento. - Puoi emettere un callback utilizzando i parametri
x-source
ex-success
con lo schema URLcomgooglemapsurl://
.
- L'URL originale può essere per
Avvio dell'app Google Maps per iOS ed esecuzione di una funzione specifica
Per avviare l'app Google Maps per iOS ed eseguire una delle funzioni supportate, utilizza uno schema URL nel seguente formato:
comgooglemaps://?parameters
oppure:
comgooglemaps-x-callback://?parameters
I parametri sono descritti più avanti in questo documento.
Verifica della disponibilità dell'app Google Maps sul dispositivo
Prima di presentare uno di questi URL a un utente nella tua app, devi verificare che l'applicazione sia installata. La tua app può verificare che lo schema URL sia disponibile con il seguente codice:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps://"]];
Ad esempio, per visualizzare una mappa di Central Park a New York, puoi utilizzare il seguente codice:
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://");
}
Visualizzazione di una mappa
Utilizza lo schema URL per visualizzare la mappa a un livello di zoom e una posizione specifici. Puoi anche sovrapporre altre visualizzazioni sopra la mappa o visualizzare immagini di Street View.
Parametri
Tutti i parametri descritti di seguito sono facoltativi. Se non sono impostati parametri, lo schema dell'URL lancerà l'app Google Maps per iOS.
center
: si tratta del punto centrale dell'area visibile sulla mappa. Formattata come stringa separata da virgole dilatitude,longitude
.mapmode
: imposta il tipo di mappa mostrata. Può essere impostato su:standard
ostreetview
. Se non specificata, verranno utilizzate le impostazioni attuali dell'applicazione.views
: attiva/disattiva visualizzazioni specifiche. Può essere impostato su:satellite
,traffic
otransit
. È possibile impostare più valori utilizzando un separatore di virgola. Se il parametro è specificato senza valore, verranno cancellate tutte le viste.zoom
: specifica il livello di zoom della mappa.
Questo URL di esempio mostra la mappa centrata su New York allo zoom 14 con la visualizzazione del traffico attivata:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Ecco alcuni altri esempi:
comgooglemaps://?center=37.788463,-122.392545&zoom=12
comgooglemaps://?center=46.414382,10.013988&mapmode=streetview
Cerca
Utilizza questo schema per visualizzare le query di ricerca in una posizione dell'area visibile specifica.
Parametri
Oltre ai parametri utilizzati per visualizzare una mappa, la Ricerca supporta il parametro q
.
q
: la stringa di query per la ricerca.
Questo URL di esempio per cercare "Pizza" nei pressi della località specificata:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Ecco alcuni altri esempi:
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
Visualizzazione delle indicazioni stradali
Utilizza questo schema per richiedere e visualizzare le indicazioni stradali tra due sedi. Puoi anche specificare la modalità di trasporto.
Parametri
saddr
: imposta il punto di partenza per le ricerche di indicazioni stradali. Può essere la latitudine,la longitudine o l'indirizzo formattato. Se si tratta di una stringa di query che restituisce più di un risultato, verrà selezionato il primo risultato. Se il valore viene lasciato vuoto, viene utilizzata la località attuale dell'utente.daddr
: imposta il punto finale per le ricerche di indicazioni stradali. Ha lo stesso formato e comportamento disaddr
.directionsmode
: mezzo di trasporto. Può essere impostato su:driving
,transit
,bicycling
owalking
.
L'URL di esempio mostra le indicazioni stradali per il trasporto pubblico tra Google NYC e l'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
Ecco alcuni altri esempi:
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
Specificare un URL di callback
Se vuoi specificare un URL di callback, devi utilizzare lo schema dell'URL comgooglemaps-x-callback://
. Questo schema è conforme alla specifica x-callback-url. Quando chiami l'app Google Maps per iOS con questo schema, l'app mostra un pulsante nella parte superiore dello schermo. Toccando questo pulsante effettuerai un callback a un URL specificato da te.
Le richieste al comgooglemaps-x-callback://
devono essere nel seguente formato:
comgooglemaps-x-callback://?parameters
Parametri
Lo schema URL x-callback accetta gli stessi parametri dello schema URL
comgooglemaps://
, con i seguenti parametri aggiuntivi. Entrambi i parametri sono obbligatori.
x-source
: il nome dell'applicazione che invia la richiesta di x-callback. Sono preferibili i nomi brevi.x-success
: l'URL da chiamare al termine. Spesso si tratta di uno schema di URL per l'app personale, che consente agli utenti di tornare all'applicazione originale.
Tieni presente che la tua app dovrà registrare il proprio schema di URL, in modo che possa rispondere all'URL di callback.
- Assicurati che la tua applicazione abbia registrato uno schema di URL in grado di rispondere alla richiesta di callback.
- Passa l'etichetta per il pulsante di callback nel parametro
x-source
. - Passa l'URL di callback nel parametro
x-success
.
L'esempio riportato di seguito avvia l'app Google Maps per iOS e mostra una mappa centrata su New York. L'app mostrerà anche un pulsante con l'etichetta "SourceApp".
Quando l'utente fa clic sul pulsante "SourceApp", l'app Google Maps per iOS emette un callback per uno schema di URL fittizio, sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Come nello schema dell'URL comgooglemaps://
, devi innanzitutto verificare che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema dell'URL x-callback. La tua app può verificare che lo schema dell'URL sia disponibile con il seguente codice:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemaps-x-callback://"]];
Questo è un esempio di URL che consente agli utenti di tornare a un'app dopo aver cercato dessert.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Aggiungere la navigazione alla tua app
Lanciare l'app Google Maps per iOS con una richiesta di indicazioni stradali è un modo semplice
per consentire agli utenti di accedere alla navigazione passo passo dalla tua app. Puoi
utilizzare gli schemi URL comgooglemaps://
o comgooglemaps-x-callback://
.
Questo snippet di codice mostra come utilizzare lo schema comgooglemaps-x-callback://
per richiedere indicazioni stradali, quindi tornare nell'app quando l'utente è pronto. Il codice esegue queste operazioni:
- Verifica che lo schema dell'URL
comgooglemaps-x-callback://
sia disponibile. - Avvia l'app Google Maps per iOS e richiedi le indicazioni stradali per l'aeroporto JFK a New York. Lascia vuoto l'indirizzo di partenza per richiedere le indicazioni stradali dalla posizione attuale dell'utente.
- Aggiungi un pulsante con l'etichetta "AirApp" all'app Google Maps per iOS. L'etichetta
del pulsante è definita dal parametro
x-source
. - Chiama lo schema URL fittizio,
sourceapp://
, quando gli utenti fanno clic sul pulsante Indietro.
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.");
}
Avvio dell'app Google Maps per iOS da un URL desktop di Google Maps
Se la tua app ha accesso a un URL Google Maps preesistente, ad esempio su una pagina web o in un database, puoi utilizzare questo schema per aprire l'URL nell'app Google Maps per iOS, offrendo così ai tuoi utenti la migliore esperienza nativa.
- Sostituisci lo schema
http://
ohttps://
concomgooglemapsurl://
. - Se vuoi utilizzare un callback, includi i parametri
x-source
ex-success
. Questo schema è conforme alla specifica x-callback-url.
Formati di URL di Google Maps supportati
Lo schema comgooglemapsurl://
supporta gli URL che corrispondono a questa espressione regolare, dove {TLD}
si riferisce a qualsiasi dominio di paese di primo livello valido. Vengono aggiunte interruzioni di riga per maggiore chiarezza:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Verificare la disponibilità dell'app Google Maps
Per prima cosa, verifica che l'app Google Maps per iOS sia disponibile sul dispositivo e che supporti lo schema di URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Esempi
Esempio di URL Google Maps generico:
URL originale di Google Maps:
https://www.google.com/maps/preview/@42.585444,13.007813,6z
Utilizzando lo schema dell'URL:
comgooglemapsurl://www.google.com/maps/preview/@42.585444,13.007813,6z
Esempio di URL Google Maps generico:
URL originale di Google Maps:
https://maps.google.com/?q=@37.3161,-122.1836
Utilizzando lo schema dell'URL:
comgooglemapsurl://maps.google.com/?q=@37.3161,-122.1836
Esempio di richiesta di indicazioni stradali per la Tokyo Tower con il richiamo x:
URL originale di 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
L'esempio riportato di seguito avvia l'app Google Maps per iOS e mostra una mappa con le indicazioni stradali per raggiungere la Tokyo Tower, come specificato nell'URL originale di Google Maps (sopra). L'app mostrerà anche un pulsante con l'etichetta
"SourceApp". Quando l'utente fa clic sul pulsante "SourceApp", l'app Google Maps per iOS emette un callback per uno schema di URL fittizio, 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