Passer au contenu

@capgo/capacitor-launch-navigator

Lancez des applications de navigation avec directions étape par étape, prenant en charge plusieurs fournisseurs de cartes et options de routage personnalisées.

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 📍

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>
<!-- Ajoutez d'autres schémas d'applications de navigation -->
</array>
  • navigate(options) - Lancer la navigation vers des coordonnées spécifiées
  • isAppAvailable(options) - Vérifier si une application de navigation spécifique est installée
  • getAvailableApps() - Lister toutes les applications de navigation disponibles sur l’appareil
  • getSupportedApps() - Obtenir toutes les applications prises en charge pour la plateforme actuelle
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);
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'
}

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…

⚠️ 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éocodage
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// 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]
});
}
// 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');
}
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.
}
  • 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
  • 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

Consultez la documentation complète pour des guides d’implémentation détaillés et des modèles de navigation avancés.