Passer au contenu

Commencer

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

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>

Aucune configuration supplémentaire requise. Le plugin détectera automatiquement les applications de navigation installées.

import { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navigation basique vers des coordonnées
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194], // Coordonnées de San Francisco
});
// Navigation avancée avec options
await 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 disponible
const 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 disponibles
const availableApps = await LaunchNavigator.getAvailableApps();
console.log('Applications de navigation disponibles:', availableApps);
// Obtenir toutes les applications prises en charge pour la plateforme
const supportedApps = await LaunchNavigator.getSupportedApps();
console.log('Applications prises en charge:', supportedApps);
navigate(options: NavigateOptions) => Promise<void>

Lancer la navigation vers des coordonnées spécifiées.

ParamType
optionsNavigateOptions
isAppAvailable(options: { app: string }) => Promise<{ available: boolean }>

Vérifier si une application de navigation spécifique est installée.

ParamType
options{ app: string }

Retourne : Promise<{ available: boolean }>

getAvailableApps() => Promise<{ apps: string[] }>

Obtenir la liste de toutes les applications de navigation disponibles sur l’appareil.

Retourne : Promise<{ apps: string[] }>

getSupportedApps() => Promise<{ apps: string[] }>

Obtenir la liste de toutes les applications prises en charge pour la plateforme actuelle.

Retourne : Promise<{ apps: string[] }>

PropTypeDescription
destination[number, number]Coordonnées de destination [lat, lng]
optionsNavigationOptionsOptions de navigation supplémentaires (optionnel)
PropTypeDescription
start[number, number]Coordonnées de départ [lat, lng] (optionnel)
transportModeTransportModeMéthode de transport (optionnel)
appstringApplication de navigation préférée (optionnel)
appDisplayNamestringNom d’affichage pour l’application (optionnel)
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.

import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// Convertir une adresse en coordonnées
const 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…
  • Google Maps (intégré)
  • Waze
  • Citymapper
  • HERE WeGo
  • Sygic
  • MapQuest
  • Moovit
  • Et bien d’autres…

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 disponibles
const { 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ée
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: { app: selectedApp }
});
Section titled “Navigation avec différents modes de transport”
// Directions en voiture
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: {
transportMode: TransportMode.DRIVING
}
});
// Directions à pied
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: {
transportMode: TransportMode.WALKING
}
});
// Directions en transport public
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: {
transportMode: TransportMode.TRANSIT
}
});
  • 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
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.');
}
  • 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