Comenzando
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/es/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.
Instalación
Section titled “Instalación”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 syncConfiguración de Plataforma
Section titled “Configuración de Plataforma”Agrega 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> <string>transit</string> <string>moovit</string> <string>uber</string> <string>lyft</string></array>Android
Section titled “Android”No se requiere configuración adicional. El Plugin detectará automáticamente las aplicaciones de navegación instaladas.
Ejemplo de Uso
Section titled “Ejemplo de Uso”import { 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);Referencia de la API
Section titled “Referencia de la API”navigate(Opciones)
Section titled “navigate(Opciones)”navigate(options: NavigateOptions) => Promise<void>Inicia la navegación a coordenadas especificadas.
| Param | Type |
|---|---|
options | NavigateOptions |
isAppAvailable(Opciones)
Section titled “isAppAvailable(Opciones)”isAppAvailable(options: { app: string }) => Promise<{ available: boolean }>Verifica si una aplicación de navegación específica está instalada.
| Param | Type |
|---|---|
options | { app: string } |
Retorna: Promise<{ available: boolean }>
getAvailableApps()
Section titled “getAvailableApps()”getAvailableApps() => Promise<{ apps: string[] }>Obtiene la lista de todas las aplicaciones de navegación disponibles en el dispositivo.
Retorna: Promise<{ apps: string[] }>
getSupportedApps()
Section titled “getSupportedApps()”getSupportedApps() => Promise<{ apps: string[] }>Obtiene la lista de todas las aplicaciones soportadas para la plataforma actual.
Retorna: Promise<{ apps: string[] }>
Interfaces
Section titled “Interfaces”NavigateOptions
Section titled “NavigateOptions”| Prop | Type | Description |
|---|---|---|
destination | [number, number] | Coordenadas de destino [lat, lng] |
options | NavigationOptions | Opciones de navegación adicionales (opcional) |
NavigationOptions
Section titled “NavigationOptions”| Prop | Type | Description |
|---|---|---|
start | [number, number] | Coordenadas de inicio [lat, lng] (opcional) |
transportMode | TransportMode | Método de transporte (opcional) |
app | string | Aplicación de navegación preferida (opcional) |
appDisplayName | string | Nombre para mostrar de la Aplicación (opcional) |
TransportMode
Section titled “TransportMode”enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}Requisito de Coordenadas
Section titled “Requisito de Coordenadas”Importante: Este Plugin solo acepta coordenadas de latitud/longitud para navegación. Usa @capgo/capacitor-nativegeocoder para convertir direcciones a coordenadas.
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// 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] });}Aplicaciones de Navegación Soportadas
Section titled “Aplicaciones de Navegación Soportadas”- Apple Maps (integrado)
- Google Maps
- Waze
- Citymapper
- Transit
- Moovit
- Uber
- Lyft
- Y muchas más…
Android
Section titled “Android”- Google Maps (integrado)
- Waze
- Citymapper
- HERE WeGo
- Sygic
- MapQuest
- Moovit
- Y muchas más…
Ejemplos Avanzados
Section titled “Ejemplos Avanzados”Verificar Múltiples Aplicaciones y Usar la Primera Disponible
Section titled “Verificar Múltiples Aplicaciones y Usar la Primera Disponible”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('No se encontraron aplicaciones de navegación soportadas');}Selección de Usuario de Aplicación de Navegación
Section titled “Selección de Usuario de Aplicación de Navegación”// Obtener aplicaciones disponiblesconst { apps } = await LaunchNavigator.getAvailableApps();
if (apps.length === 0) { alert('No hay aplicaciones de navegación disponibles'); return;}
// Mostrar selección de aplicación al usuario (pseudo-código)const selectedApp = await showAppSelectionDialog(apps);
// Navegar con aplicación seleccionadaawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp }});Navegación con Diferentes Modos de Transporte
Section titled “Navegación con Diferentes Modos de Transporte”// Direcciones en cocheawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.DRIVING }});
// Direcciones a pieawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.WALKING }});
// Direcciones en transporte públicoawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.TRANSIT }});Mejores Prácticas
Section titled “Mejores Prácticas”- Siempre verifica la disponibilidad de la Aplicación antes de intentar navegar
- Proporciona opciones de respaldo cuando las Aplicaciones preferidas no estén disponibles
- Usa nombres de visualización significativos para selección del usuario
- Maneja errores con gracia con mensajes amigables para el usuario
- Considera las preferencias del usuario para aplicaciones de navegación predeterminadas
- Prueba en dispositivos iOS y Android
- Implementa manejo de errores apropiado para coordenadas inválidas
Manejo de Errores
Section titled “Manejo de Errores”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. alert('No se pudo iniciar la navegación. Por favor verifica tus coordenadas e intenta nuevamente.');}Casos de Uso
Section titled “Casos de Uso”- Servicios basados en ubicación: Navegar usuarios a puntos de interés
- Aplicaciones de entrega: Guiar conductores a ubicaciones de entrega
- Aplicaciones de eventos: Dirigir asistentes a ubicaciones de lugares
- Aplicaciones inmobiliarias: Navegar a ubicaciones de propiedades
- Aplicaciones de viaje: Guiar turistas a atracciones
- Aplicaciones de servicio: Dirigir trabajadores de campo a sitios de trabajo