Saltar al contenido

@Capgo/Capacitor-launch-navigator

Inicia aplicaciones de navegación con direcciones paso a paso, soportando múltiples proveedores de mapas y opciones de enrutamiento personalizadas.

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 📍

Terminal window
npm install @capgo/capacitor-launch-navigator
npx cap sync

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>
<!-- Agrega otros esquemas de apps de navegación -->
</array>
  • navigate(options) - Iniciar navegación a coordenadas especificadas
  • isAppAvailable(options) - Verificar si una aplicación de navegación específica está instalada
  • getAvailableApps() - Listar todas las aplicaciones de navegación disponibles en el dispositivo
  • getSupportedApps() - Obtener todas las aplicaciones soportadas para la plataforma actual
import { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navegación básica a coordenadas
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194], // Coordenadas de San Francisco
});
// Navegación avanzada con opciones
await 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á disponible
const 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 disponibles
const availableApps = await LaunchNavigator.getAvailableApps();
console.log('Aplicaciones de navegación disponibles:', availableApps);
// Obtener todas las aplicaciones soportadas para la plataforma
const 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'
}
  • Apple Maps (integrado)
  • Google Maps
  • Waze
  • Citymapper
  • Transit
  • Moovit
  • Uber
  • Lyft
  • Y muchas más…
  • Google Maps (integrado)
  • Waze
  • Citymapper
  • HERE WeGo
  • Sygic
  • MapQuest
  • Moovit
  • Y muchas más…

⚠️ Importante: Este Plugin solo acepta coordenadas de latitud/longitud para navegación. Usa @capgo/capacitor-nativegeocoder para convertir direcciones a coordenadas.

// Ejemplo con geocodificación
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// Convertir dirección a coordenadas
const 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 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');
}
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.
}
  • 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
  • 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

Consulta la documentación completa para guías de implementación detalladas y patrones de navegación avanzados.