Soporte multi-Aplicación
Google Maps, Apple Maps, Waze, Citymapper y más 🗺️
El Plugin Capacitor Launch Navigator permite iniciar aplicaciones de navegación nativas en dispositivos iOS y Android con navegación basada en coordenadas. Este Plugin proporciona integración perfecta con aplicaciones de mapas populares y soporta múltiples modos de transporte para soluciones de navegación completas.
Soporte multi-Aplicación
Google Maps, Apple Maps, Waze, Citymapper y más 🗺️
Modos de transporte
Direcciones en coche, a pie, en transporte público y en bicicleta 🧭
Detección de Aplicaciones
Verifica disponibilidad y lista aplicaciones de navegación instaladas 🔍
Basado en coordenadas
Navega usando coordenadas de latitud/longitud 📍
npm install @capgo/capacitor-launch-navigatornpx cap syncAgrega esquemas de URL a tu Info.plist para detectar aplicaciones de navegación instaladas:
<key>LSApplicationQueriesSchemes</key><array> <string>googlemaps</string> <string>waze</string> <string>citymapper</string> <!-- Agrega otros esquemas de apps de navegación --></array>navigate(options) - Iniciar navegación a coordenadas especificadasisAppAvailable(options) - Verificar si una aplicación de navegación específica está instaladagetAvailableApps() - Listar todas las aplicaciones de navegación disponibles en el dispositivogetSupportedApps() - Obtener todas las aplicaciones soportadas para la plataforma actualimport { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navegación básica a coordenadasawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], // Coordenadas de San Francisco});
// Navegación avanzada con opcionesawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { start: [37.7849, -122.4094], // Punto de inicio opcional transportMode: TransportMode.DRIVING, app: 'google_maps', // Aplicación de navegación preferida appDisplayName: 'Google Maps' }});
// Verificar si una aplicación específica está disponibleconst result = await LaunchNavigator.isAppAvailable({ app: 'google_maps'});
if (result.available) { console.log('Google Maps está instalado');} else { console.log('Google Maps no está disponible');}
// Obtener todas las aplicaciones de navegación disponiblesconst availableApps = await LaunchNavigator.getAvailableApps();console.log('Aplicaciones de navegación disponibles:', availableApps);
// Obtener todas las aplicaciones soportadas para la plataformaconst supportedApps = await LaunchNavigator.getSupportedApps();console.log('Aplicaciones soportadas:', supportedApps);interface NavigationOptions { start?: [number, number]; // Coordenadas de inicio [lat, lng] transportMode?: TransportMode; // Método de transporte app?: string; // Aplicación de navegación preferida appDisplayName?: string; // Nombre para mostrar de la app launchMode?: LaunchMode; // Cómo iniciar la app}enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}⚠️ Importante: Este Plugin solo acepta coordenadas de latitud/longitud para navegación. Usa @capgo/capacitor-nativegeocoder para convertir direcciones a coordenadas.
// Ejemplo con geocodificaciónimport { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// Convertir dirección a coordenadasconst geocodeResult = await NativeGeocoder.forwardGeocode({ address: '1600 Amphitheatre Parkway, Mountain View, CA'});
if (geocodeResult.results.length > 0) { const coords = geocodeResult.results[0];
// Iniciar navegación con coordenadas geocodificadas await LaunchNavigator.navigate({ destination: [coords.latitude, coords.longitude] });}// Verificar múltiples apps y usar la primera disponibleconst 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('No se encontraron aplicaciones de navegación soportadas');}try { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: 'google_maps', transportMode: TransportMode.DRIVING } });} catch (error) { console.error('La navegación falló:', error); // Manejar error - app no disponible, coordenadas inválidas, etc.}Consulta la documentación completa para guías de implementación detalladas y patrones de navegación avanzados.