Sui dispositivi con iOS 9 e versioni successive, puoi utilizzare i link universali per avviare Google Maps quando hai un URL di Google Maps.
Puoi utilizzare lo schema URL di Google Maps per avviare l'app Google Maps per iOS ed eseguire ricerche, ottenere richieste di indicazioni stradali e visualizzare le mappe. Quando avvii Google Maps, l'identificatore del bundle 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, ti consigliamo di utilizzare direttamente 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 consente di avviare un'applicazione iOS nativa da un'altra app iOS o da un'applicazione web. Puoi impostare le opzioni nell'URL che verrà passato all'applicazione avviata. L'app Google Maps per iOS supporta i seguenti schemi URL:
comgooglemaps://
ecomgooglemaps-x-callback://
: questi schemi consentono di avviare l'app Google Maps per iOS ed eseguire una delle diverse azioni:- Visualizza una mappa in una posizione e a un livello di zoom specifici.
- Cercare località o luoghi e visualizzarli su una mappa.
- Richiedere indicazioni stradali da una località all'altra. Le indicazioni stradali possono essere restituite per quattro modalità di trasporto: auto, a piedi, in bicicletta e con il trasporto pubblico.
- Aggiungi la navigazione alla tua app.
- Fino a iOS 8, emetti un callback al termine dell'app utilizzando
comgooglemaps-x-callback://
. I callback vengono spesso utilizzati per reindirizzare un utente all'app che ha aperto originariamente 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 ti consente di avviare l'app Google Maps per iOS utilizzando un URL derivato dal sito web Google Maps per computer. Ciò significa che puoi offrire ai tuoi utenti un'esperienza mobile nativa anziché semplicemente caricare il sito web di Google Maps.- L'URL originale può essere per
maps.google.com
o pergoogle.com/maps
oppure può utilizzare qualsiasi dominio di primo livello valido per il paese al posto dicom
. Puoi anche trasmettere gli URL di reindirizzamentogoo.gl/maps
. - 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 facoltativamente una delle funzioni supportate, utilizza uno schema URL del seguente formato:
comgooglemaps://?parameters
oppure:
comgooglemaps-x-callback://?parameters
I parametri sono descritti in dettaglio 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 prima verificare che l'applicazione sia installata. La tua app può verificare che lo schema dell'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://");
}
Visualizzare una mappa
Utilizza lo schema URL per visualizzare la mappa a un livello di zoom e in una posizione specifici. Puoi anche sovrapporre altre visualizzazioni alla mappa o visualizzare le immagini di Street View.
Parametri
Tutti i parametri descritti di seguito sono facoltativi. Se non sono impostati parametri, lo schema URL avvierà l'app Google Maps per iOS.
center
: Questo è il punto centrale della visualizzazione della mappa. Formattato come stringa separata da virgole dilatitude,longitude
.mapmode
: imposta il tipo di mappa mostrata. Può essere impostato su:standard
ostreetview
. Se non specificate, verranno utilizzate le impostazioni dell'applicazione corrente.views
: attiva/disattiva visualizzazioni specifiche. Può essere impostato su:satellite
,traffic
otransit
. È possibile impostare più valori utilizzando un separatore virgola. Se il parametro è specificato senza valore, verranno cancellate tutte le visualizzazioni.zoom
: specifica il livello di zoom della mappa.
Questo URL di esempio mostra la mappa centrata su New York con zoom 14 e la visualizzazione del traffico attiva:
comgooglemaps://?center=40.765819,-73.975866&zoom=14&views=traffic
Ecco alcuni esempi aggiuntivi:
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 specificata della finestra.
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 le ricerche di "Pizza" intorno alla posizione specificata:
comgooglemaps://?q=Pizza¢er=37.759748,-122.427135
Ecco alcuni esempi aggiuntivi:
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 località. Puoi anche specificare la modalità di trasporto.
Parametri
saddr
: imposta il punto di partenza per le ricerche di indicazioni stradali. Può trattarsi di una latitudine,una longitudine o un indirizzo formattato per la query. 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, verrà utilizzata la posizione attuale dell'utente.daddr
: imposta il punto di arrivo per le ricerche di indicazioni stradali. Ha lo stesso formato e lo stesso comportamento disaddr
.directionsmode
: mezzo di trasporto. Può essere impostato su:driving
,transit
,bicycling
owalking
.
L'URL di esempio mostra le indicazioni 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 esempi aggiuntivi:
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
Specifica di un URL di callback
Se vuoi specificare un URL di callback, devi utilizzare lo schema URL comgooglemaps-x-callback://
. Questo schema rispetta la
specifica x-callback-url. Quando chiami l'app Google Maps per iOS
con questo schema, l'app visualizza un pulsante nella parte superiore
dello schermo. Se tocchi questo pulsante, viene eseguito un callback a un URL che
hai specificato.
Le richieste di comgooglemaps-x-callback://
devono avere il 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. Sono necessari entrambi i parametri.
x-source
: il nome dell'applicazione che invia la richiesta x-callback. Sono preferibili i nomi brevi.x-success
: l'URL da chiamare al termine. Spesso si tratta di uno schema URL per la tua app, che consente agli utenti di tornare all'applicazione originale.
Tieni presente che la tua app dovrà registrare il proprio schema URL in modo da poter rispondere all'URL di callback.
- Assicurati che la tua applicazione abbia registrato uno schema 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 seguente avvierà l'app Google Maps per iOS e mostrerà una mappa
centrata su New York. L'app mostrerà anche un pulsante con l'etichetta "SourceApp".
Quando viene fatto clic sul pulsante "SourceApp", l'app Google Maps per iOS emette
un callback a uno schema URL fittizio, sourceapp://?resume=true
.
comgooglemaps-x-callback://?center=40.765819,-73.975866&zoom=14
&x-success=sourceapp://?resume=true
&x-source=SourceApp
Come per lo schema URL comgooglemaps://
, devi prima verificare che
l'app Google Maps per iOS sia disponibile sul dispositivo e supporti
lo schema URL x-callback. La tua app può verificare che lo schema 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 un dessert.
comgooglemaps-x-callback://?q=dessert¢er=37.759748,-122.427135
&x-success=sourceapp://?resume=true
&x-source=Nom+Nom
Aggiungere la navigazione all'app
Avviare 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 e poi tornare alla tua app quando l'utente è pronto. Il codice eseguirà le seguenti 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 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 di Google Maps per computer
Se la tua app ha accesso a un URL di Google Maps preesistente, ad esempio in 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 rispetta la specifica x-callback-url.
Formati 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 primo livello valido. I ritorni
a capo sono stati aggiunti per maggiore chiarezza:
(http(s?)://)?
((maps\.google\.{TLD}/)|
((www\.)?google\.{TLD}/maps/)|
(goo.gl/maps/))
.*
Controllo della disponibilità dell'app Google Maps in corso
Innanzitutto, verifica che l'app Google Maps per iOS sia disponibile sul dispositivo e supporti lo schema URL:
Swift
UIApplication.shared.canOpenURL(URL(string:"comgooglemaps-x-callback://")!)
Objective-C
[[UIApplication sharedApplication] canOpenURL:
[NSURL URLWithString:@"comgooglemapsurl://"]];
Esempi
Esempio di URL generico di Google Maps:
URL di Google Maps originale:
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 generico di Google Maps:
URL di Google Maps originale:
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 x-callback:
URL di Google Maps originale:
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 seguente avvierà l'app Google Maps per iOS e mostrerà una mappa
con le indicazioni per la Torre di Tokyo, come specificato nell'URL di Google Maps originale
(sopra). L'app mostrerà anche un pulsante con l'etichetta
"SourceApp". Quando viene fatto clic sul pulsante "SourceApp", l'app Google Maps per iOS
esegue un callback a uno schema 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