Per Iniziare
Copy a setup prompt with the install steps and the full markdown guide for this plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-launch-navigator`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/it/docs/plugins/launch-navigator/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Installazione
Section titled “Installazione”npm install @capgo/capacitor-launch-navigatornpx cap syncyarn add @capgo/capacitor-launch-navigatornpx cap syncpnpm add @capgo/capacitor-launch-navigatornpx cap syncbun add @capgo/capacitor-launch-navigatornpx cap syncConfigurazione Piattaforma
Section titled “Configurazione Piattaforma”Aggiungi schemi URL al tuo Info.plist per rilevare le app di navigazione installate:
<key>LSApplicationQueriesSchemes</key><array> <string>googlemaps</string> <string>waze</string> <string>citymapper</string> <string>transit</string> <string>moovit</string> <string>uber</string> <string>lyft</string></array>Android
Section titled “Android”Nessuna configurazione aggiuntiva richiesta. Il plugin rileverà automaticamente le app di navigazione installate.
Esempio di Utilizzo
Section titled “Esempio di Utilizzo”import { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navigazione di base verso coordinateawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], // Coordinate San Francisco});
// Navigazione avanzata con opzioniawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { start: [37.7849, -122.4094], // Punto di partenza opzionale transportMode: TransportMode.DRIVING, app: 'google_maps', // App di navigazione preferita appDisplayName: 'Google Maps' }});
// Controlla se un'app specifica è disponibileconst result = await LaunchNavigator.isAppAvailable({ app: 'google_maps'});
if (result.available) { console.log('Google Maps è installato');} else { console.log('Google Maps non è disponibile');}
// Ottieni tutte le app di navigazione disponibiliconst availableApps = await LaunchNavigator.getAvailableApps();console.log('App di navigazione disponibili:', availableApps);
// Ottieni tutte le app supportate per la piattaformaconst supportedApps = await LaunchNavigator.getSupportedApps();console.log('App supportate:', supportedApps);Riferimento API
Section titled “Riferimento API”navigate(options)
Section titled “navigate(options)”navigate(options: NavigateOptions) => Promise<void>Avvia la navigazione verso coordinate specificate.
| Param | Type |
|---|---|
options | NavigateOptions |
isAppAvailable(options)
Section titled “isAppAvailable(options)”isAppAvailable(options: { app: string }) => Promise<{ available: boolean }>Controlla se un’app di navigazione specifica è installata.
| Param | Type |
|---|---|
options | { app: string } |
Ritorna: Promise<{ available: boolean }>
getAvailableApps()
Section titled “getAvailableApps()”getAvailableApps() => Promise<{ apps: string[] }>Ottieni la lista di tutte le app di navigazione disponibili sul dispositivo.
Ritorna: Promise<{ apps: string[] }>
getSupportedApps()
Section titled “getSupportedApps()”getSupportedApps() => Promise<{ apps: string[] }>Ottieni la lista di tutte le app supportate per la piattaforma corrente.
Ritorna: Promise<{ apps: string[] }>
Interfacce
Section titled “Interfacce”NavigateOptions
Section titled “NavigateOptions”| Prop | Type | Description |
|---|---|---|
destination | [number, number] | Coordinate destinazione [lat, lng] |
options | NavigationOptions | Opzioni di navigazione aggiuntive (opzionale) |
NavigationOptions
Section titled “NavigationOptions”| Prop | Type | Description |
|---|---|---|
start | [number, number] | Coordinate di partenza [lat, lng] (opzionale) |
transportMode | TransportMode | Metodo di trasporto (opzionale) |
app | string | App di navigazione preferita (opzionale) |
appDisplayName | string | Nome visualizzato per l’app (opzionale) |
TransportMode
Section titled “TransportMode”enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}Requisito Coordinate
Section titled “Requisito Coordinate”Importante: Questo plugin accetta solo coordinate latitudine/longitudine per la navigazione. Usa @capgo/capacitor-nativegeocoder per convertire indirizzi in coordinate.
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// Converti indirizzo in coordinateconst geocodeResult = await NativeGeocoder.forwardGeocode({ address: '1600 Amphitheatre Parkway, Mountain View, CA'});
if (geocodeResult.results.length > 0) { const coords = geocodeResult.results[0];
// Avvia navigazione con coordinate geocodificate await LaunchNavigator.navigate({ destination: [coords.latitude, coords.longitude] });}App di Navigazione Supportate
Section titled “App di Navigazione Supportate”- Apple Maps (integrata)
- Google Maps
- Waze
- Citymapper
- Transit
- Moovit
- Uber
- Lyft
- E molte altre…
Android
Section titled “Android”- Google Maps (integrata)
- Waze
- Citymapper
- HERE WeGo
- Sygic
- MapQuest
- Moovit
- E molte altre…
Esempi Avanzati
Section titled “Esempi Avanzati”Controlla Più App e Usa la Prima Disponibile
Section titled “Controlla Più App e Usa la Prima Disponibile”const appsToCheck = ['google_maps', 'waze', 'apple_maps'];let selectedApp = null;
for (const app of appsToCheck) { const result = await LaunchNavigator.isAppAvailable({ app }); if (result.available) { selectedApp = app; break; }}
if (selectedApp) { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp } });} else { console.log('Nessuna app di navigazione supportata trovata');}Selezione Utente dell’App di Navigazione
Section titled “Selezione Utente dell’App di Navigazione”// Ottieni app disponibiliconst { apps } = await LaunchNavigator.getAvailableApps();
if (apps.length === 0) { alert('Nessuna app di navigazione disponibile'); return;}
// Mostra selezione app all'utente (pseudo-codice)const selectedApp = await showAppSelectionDialog(apps);
// Naviga con l'app selezionataawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp }});Navigazione con Diverse Modalità di Trasporto
Section titled “Navigazione con Diverse Modalità di Trasporto”// Indicazioni in autoawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.DRIVING }});
// Indicazioni a piediawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.WALKING }});
// Indicazioni con trasporto pubblicoawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.TRANSIT }});Migliori Pratiche
Section titled “Migliori Pratiche”- Controlla sempre la disponibilità dell’app prima di tentare la navigazione
- Fornisci opzioni di fallback quando le app preferite non sono disponibili
- Usa nomi visualizzati significativi per la selezione dell’utente
- Gestisci gli errori con grazia con messaggi user-friendly
- Considera le preferenze dell’utente per le app di navigazione predefinite
- Testa su dispositivi sia iOS che Android
- Implementa gestione degli errori appropriata per coordinate non valide
Gestione degli Errori
Section titled “Gestione degli Errori”try { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: 'google_maps', transportMode: TransportMode.DRIVING } });} catch (error) { console.error('Navigazione fallita:', error); // Gestisci errore - app non disponibile, coordinate non valide, ecc. alert('Impossibile avviare la navigazione. Controlla le tue coordinate e riprova.');}Casi d’Uso
Section titled “Casi d’Uso”- Servizi basati sulla posizione: Naviga gli utenti verso punti di interesse
- App di consegna: Guida i conducenti alle posizioni di consegna
- App per eventi: Dirigi i partecipanti alle sedi degli eventi
- App immobiliari: Naviga verso le posizioni delle proprietà
- App di viaggio: Guida i turisti alle attrazioni
- App di servizi: Dirigi i lavoratori sul campo ai siti di lavoro