Supporto multi-app
Google Maps, Apple Maps, Waze, Citymapper e altro 🗺️
Il plugin Capacitor Launch Navigator consente di avviare app di navigazione native su dispositivi iOS e Android con navigazione basata su coordinate. Questo plugin fornisce integrazione senza soluzione di continuità con applicazioni di mappatura popolari e supporta molteplici modalità di trasporto per soluzioni di navigazione complete.
Supporto multi-app
Google Maps, Apple Maps, Waze, Citymapper e altro 🗺️
Modalità di trasporto
Indicazioni in auto, a piedi, con trasporto pubblico e in bici 🧭
Rilevamento app
Controlla disponibilità ed elenca app di navigazione installate 🔍
Basato su coordinate
Naviga usando coordinate latitudine/longitudine 📍
npm install @capgo/capacitor-launch-navigatornpx cap syncAggiungi 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> <!-- Aggiungi altri schemi di app di navigazione --></array>navigate(options) - Avvia navigazione verso coordinate specificateisAppAvailable(options) - Controlla se un’app di navigazione specifica è installatagetAvailableApps() - Elenca tutte le app di navigazione disponibili sul dispositivogetSupportedApps() - Ottieni tutte le app supportate per la piattaforma correnteimport { 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);interface NavigationOptions { start?: [number, number]; // Coordinate di partenza [lat, lng] transportMode?: TransportMode; // Metodo di trasporto app?: string; // App di navigazione preferita appDisplayName?: string; // Nome visualizzato per l'app launchMode?: LaunchMode; // Come avviare l'app}enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}⚠️ Importante: Questo plugin accetta solo coordinate latitudine/longitudine per la navigazione. Usa @capgo/capacitor-nativegeocoder per convertire indirizzi in coordinate.
// Esempio con geocodificaimport { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// 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] });}// Controlla più app e usa la prima disponibileconst 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');}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.}Consulta la documentazione completa per guide di implementazione dettagliate e pattern di navigazione avanzati.