Passer au contenu

@capgo/capacitor-launch-navigator

Lancez des applications de navigation avec des instructions étape par étape, prenant en charge plusieurs fournisseurs de cartes et des options d'itinéraire personnalisées.

The Capacitor Launch Navigator plugin enables launching native navigation apps on iOS and Android devices with coordinate-based navigation. This plugin provides seamless integration with popular mapping applications and supports multiple transportation modes for comprehensive navigation solutions.

Prise en charge de plusieurs applications

Google Cartes, Apple Cartes, Waze, Citymapper et plus 🗺️

Modes de transport

Itinéraires en voiture, à pied, en transports en commun et à vélo 🧭

Détection d'applications

Vérifiez la disponibilité et répertoriez les applications de navigation installées 🔍

Coordinate-based

Naviguez en utilisant les coordonnées latitude/longitude 📍

##Installation

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

Ajoutez des 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>
<!-- Add other navigation app schemes -->
</array>
  • navigate(options) - Lancer la navigation vers les coordonnées spécifiées
  • isAppAvailable(options) - Vérifiez si une application de navigation spécifique est installée
  • getAvailableApps() - Répertorie toutes les applications de navigation disponibles sur l’appareil
  • getSupportedApps() - Obtenez toutes les applications prises en charge pour la plate-forme actuelle
import { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Basic navigation to coordinates
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194], // San Francisco coordinates
});
// Advanced navigation with options
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: {
start: [37.7849, -122.4094], // Optional starting point
transportMode: TransportMode.DRIVING,
app: 'google_maps', // Preferred navigation app
appDisplayName: 'Google Maps'
}
});
// Check if specific app is available
const result = await LaunchNavigator.isAppAvailable({
app: 'google_maps'
});
if (result.available) {
console.log('Google Maps is installed');
} else {
console.log('Google Maps is not available');
}
// Get all available navigation apps
const availableApps = await LaunchNavigator.getAvailableApps();
console.log('Available navigation apps:', availableApps);
// Get all supported apps for platform
const supportedApps = await LaunchNavigator.getSupportedApps();
console.log('Supported apps:', supportedApps);

## Options de navigation

interface NavigationOptions {
start?: [number, number]; // Starting coordinates [lat, lng]
transportMode?: TransportMode; // Transportation method
app?: string; // Preferred navigation app
appDisplayName?: string; // Display name for app
launchMode?: LaunchMode; // How to launch the app
}
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 Cartes (intégrées)
  • Google Cartes -Waze
  • Planificateur de ville
  • Transit
  • Moovit -Uber -Lyft
  • Et bien d’autres encore…
  • Google Cartes (intégrées) -Waze
  • Planificateur de ville
  • ICI WeGo -Sygic
  • MapQuest
  • Moovit
  • Et bien d’autres encore…

⚠️ Important : Ce plugin n’accepte que les coordonnées latitude/longitude pour la navigation. Utilisez @capgo/capacitor-nativegeocoder pour convertir les adresses en coordonnées.

// Example with geocoding
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';
// Convert address to coordinates
const geocodeResult = await NativeGeocoder.forwardGeocode({
address: '1600 Amphitheatre Parkway, Mountain View, CA'
});
if (geocodeResult.results.length > 0) {
const coords = geocodeResult.results[0];
// Launch navigation with geocoded coordinates
await LaunchNavigator.navigate({
destination: [coords.latitude, coords.longitude]
});
}
// Check multiple apps and use the first available
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 supported navigation apps found');
}
try {
await LaunchNavigator.navigate({
destination: [37.7749, -122.4194],
options: {
app: 'google_maps',
transportMode: TransportMode.DRIVING
}
});
} catch (error) {
console.error('Navigation failed:', error);
// Handle error - app not available, invalid coordinates, etc.
}
  • Services basés sur la localisation : orientez les utilisateurs vers des points d’intérêt
  • Applications de livraison : guidez les chauffeurs vers les lieux de livraison
  • Applications événementielles : dirigez les participants vers les emplacements des lieux
  • Applications immobilières : accédez aux emplacements des propriétés
  • Applications de voyage : guidez les touristes vers les attractions

## meilleures pratiques

  • Vérifiez toujours la disponibilité de l’application avant de tenter la navigation
  • Fournir des options de secours lorsque les applications préférées ne sont pas disponibles
  • Utilisez des noms d’affichage d’application significatifs pour la sélection de l’utilisateur
  • Gérez les erreurs avec élégance avec des messages conviviaux
  • Tenir compte des préférences de l’utilisateur pour les applications de navigation par défaut

##Documents

Consultez la documentation complète pour obtenir des guides de mise en œuvre détaillés et des modèles de navigation avancés.