Commencer
Installation
Section titled “Installation”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 syncConfiguration de la plateforme
Section titled “Configuration de la plateforme”Ajoutez 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> <string>transit</string> <string>moovit</string> <string>uber</string> <string>lyft</string></array>Android
Section titled “Android”Aucune configuration supplémentaire requise. Le plugin détectera automatiquement les applications de navigation installées.
Exemple d’utilisation
Section titled “Exemple d’utilisation”import { 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);Référence API
Section titled “Référence API”navigate(options)
Section titled “navigate(options)”navigate(options: NavigateOptions) => Promise<void>Lancer la navigation vers des coordonnées spécifiées.
| Param | Type |
|---|---|
options | NavigateOptions |
isAppAvailable(options)
Section titled “isAppAvailable(options)”isAppAvailable(options: { app: string }) => Promise<{ available: boolean }>Vérifier si une application de navigation spécifique est installée.
| Param | Type |
|---|---|
options | { app: string } |
Retourne : Promise<{ available: boolean }>
getAvailableApps()
Section titled “getAvailableApps()”getAvailableApps() => Promise<{ apps: string[] }>Obtenir la liste de toutes les applications de navigation disponibles sur l’appareil.
Retourne : Promise<{ apps: string[] }>
getSupportedApps()
Section titled “getSupportedApps()”getSupportedApps() => Promise<{ apps: string[] }>Obtenir la liste de toutes les applications prises en charge pour la plateforme actuelle.
Retourne : Promise<{ apps: string[] }>
Interfaces
Section titled “Interfaces”NavigateOptions
Section titled “NavigateOptions”| Prop | Type | Description |
|---|---|---|
destination | [number, number] | Coordonnées de destination [lat, lng] |
options | NavigationOptions | Options de navigation supplémentaires (optionnel) |
NavigationOptions
Section titled “NavigationOptions”| Prop | Type | Description |
|---|---|---|
start | [number, number] | Coordonnées de départ [lat, lng] (optionnel) |
transportMode | TransportMode | Méthode de transport (optionnel) |
app | string | Application de navigation préférée (optionnel) |
appDisplayName | string | Nom d’affichage pour l’application (optionnel) |
TransportMode
Section titled “TransportMode”enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}Exigence de coordonnées
Section titled “Exigence de coordonnées”Important : Ce plugin accepte uniquement les coordonnées latitude/longitude pour la navigation. Utilisez @capgo/capacitor-nativegeocoder pour convertir les adresses en coordonnées.
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// 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] });}Applications de navigation prises en charge
Section titled “Applications de navigation prises en charge”- Apple Maps (intégré)
- Google Maps
- Waze
- Citymapper
- Transit
- Moovit
- Uber
- Lyft
- Et bien d’autres…
Android
Section titled “Android”- Google Maps (intégré)
- Waze
- Citymapper
- HERE WeGo
- Sygic
- MapQuest
- Moovit
- Et bien d’autres…
Exemples avancés
Section titled “Exemples avancés”Vérifier plusieurs applications et utiliser la première disponible
Section titled “Vérifier plusieurs applications et utiliser la première 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('Aucune application de navigation prise en charge trouvée');}Sélection d’application de navigation par l’utilisateur
Section titled “Sélection d’application de navigation par l’utilisateur”// Obtenir les applications disponiblesconst { apps } = await LaunchNavigator.getAvailableApps();
if (apps.length === 0) { alert('Aucune application de navigation disponible'); return;}
// Afficher la sélection d'application à l'utilisateur (pseudo-code)const selectedApp = await showAppSelectionDialog(apps);
// Naviguer avec l'application sélectionnéeawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp }});Navigation avec différents modes de transport
Section titled “Navigation avec différents modes de transport”// Directions en voitureawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.DRIVING }});
// Directions à piedawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.WALKING }});
// Directions en transport publicawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.TRANSIT }});Bonnes pratiques
Section titled “Bonnes pratiques”- Vérifiez toujours la disponibilité de l’application avant de tenter la navigation
- Fournissez des options de repli lorsque les applications préférées ne sont pas disponibles
- Utilisez des noms d’affichage significatifs pour la sélection des utilisateurs
- Gérez les erreurs de manière élégante avec des messages conviviaux
- Considérez les préférences des utilisateurs pour les applications de navigation par défaut
- Testez sur les appareils iOS et Android
- Implémentez une gestion appropriée des erreurs pour les coordonnées invalides
Gestion des erreurs
Section titled “Gestion des erreurs”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. alert('Impossible de lancer la navigation. Veuillez vérifier vos coordonnées et réessayer.');}Cas d’utilisation
Section titled “Cas d’utilisation”- Services basés sur la localisation : Naviguer les utilisateurs vers des points d’intérêt
- Applications de livraison : Guider les conducteurs vers les lieux de livraison
- Applications d’événements : Diriger les participants vers les lieux d’événements
- Applications immobilières : Naviguer vers les emplacements de propriétés
- Applications de voyage : Guider les touristes vers les attractions
- Applications de services : Diriger les travailleurs de terrain vers les sites de travail