Support multi-applications
Google Maps, Apple Maps, Waze, Citymapper et plus 🗺️
Le plugin Capacitor Launch Navigator permet de lancer des applications de navigation natives sur les appareils iOS et Android avec une navigation basée sur les coordonnées. Ce plugin fournit une intégration transparente avec les applications de cartographie populaires et prend en charge plusieurs modes de transport pour des solutions de navigation complètes.
Support multi-applications
Google Maps, Apple Maps, Waze, Citymapper et plus 🗺️
Modes de transport
Directions en voiture, à pied, en transport public et à vélo 🧭
Détection d'application
Vérifiez la disponibilité et listez les applications de navigation installées 🔍
Basé sur les coordonnées
Naviguez en utilisant les coordonnées latitude/longitude 📍
npm install @capgo/capacitor-launch-navigatornpx cap syncAjoutez les schémas d’URL à votre Info.plist pour détecter les applications de navigation installées :
<key>LSApplicationQueriesSchemes</key><array> <string>googlemaps</string> <string>waze</string> <string>citymapper</string> <!-- Ajoutez d'autres schémas d'applications de navigation --></array>navigate(options) - Lancer la navigation vers des coordonnées spécifiéesisAppAvailable(options) - Vérifier si une application de navigation spécifique est installéegetAvailableApps() - Lister toutes les applications de navigation disponibles sur l’appareilgetSupportedApps() - Obtenir toutes les applications prises en charge pour la plateforme actuelleimport { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navigation basique vers des coordonnéesawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], // Coordonnées de San Francisco});
// Navigation avancée avec optionsawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { start: [37.7849, -122.4094], // Point de départ optionnel transportMode: TransportMode.DRIVING, app: 'google_maps', // Application de navigation préférée appDisplayName: 'Google Maps' }});
// Vérifier si une application spécifique est disponibleconst result = await LaunchNavigator.isAppAvailable({ app: 'google_maps'});
if (result.available) { console.log('Google Maps est installé');} else { console.log('Google Maps n\'est pas disponible');}
// Obtenir toutes les applications de navigation disponiblesconst availableApps = await LaunchNavigator.getAvailableApps();console.log('Applications de navigation disponibles:', availableApps);
// Obtenir toutes les applications prises en charge pour la plateformeconst supportedApps = await LaunchNavigator.getSupportedApps();console.log('Applications prises en charge:', supportedApps);interface NavigationOptions { start?: [number, number]; // Coordonnées de départ [lat, lng] transportMode?: TransportMode; // Méthode de transport app?: string; // Application de navigation préférée appDisplayName?: string; // Nom d'affichage pour l'application launchMode?: LaunchMode; // Comment lancer l'application}enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}⚠️ Important : Ce plugin accepte uniquement les coordonnées latitude/longitude pour la navigation. Utilisez @capgo/capacitor-nativegeocoder pour convertir les adresses en coordonnées.
// Exemple avec géocodageimport { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// Convertir une adresse en coordonnéesconst geocodeResult = await NativeGeocoder.forwardGeocode({ address: '1600 Amphitheatre Parkway, Mountain View, CA'});
if (geocodeResult.results.length > 0) { const coords = geocodeResult.results[0];
// Lancer la navigation avec les coordonnées géocodées await LaunchNavigator.navigate({ destination: [coords.latitude, coords.longitude] });}// Vérifier plusieurs applications et utiliser la première 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('Aucune application de navigation prise en charge trouvée');}try { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: 'google_maps', transportMode: TransportMode.DRIVING } });} catch (error) { console.error('La navigation a échoué:', error); // Gérer l'erreur - application non disponible, coordonnées invalides, etc.}Consultez la documentation complète pour des guides d’implémentation détaillés et des modèles de navigation avancés.