Loslegen
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 syncPlattform-Konfiguration
Section titled “Plattform-Konfiguration”Fügen Sie URL-Schemata zu Ihrer Info.plist hinzu, um installierte Navigations-Apps zu erkennen:
<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”Keine zusätzliche Konfiguration erforderlich. Das Plugin erkennt installierte Navigations-Apps automatisch.
Verwendungsbeispiel
Section titled “Verwendungsbeispiel”import { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Grundlegende Navigation zu Koordinatenawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], // San Francisco Koordinaten});
// Erweiterte Navigation mit Optionenawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { start: [37.7849, -122.4094], // Optionaler Startpunkt transportMode: TransportMode.DRIVING, app: 'google_maps', // Bevorzugte Navigations-App appDisplayName: 'Google Maps' }});
// Prüfen, ob bestimmte App verfügbar istconst result = await LaunchNavigator.isAppAvailable({ app: 'google_maps'});
if (result.available) { console.log('Google Maps ist installiert');} else { console.log('Google Maps ist nicht verfügbar');}
// Alle verfügbaren Navigations-Apps abrufenconst availableApps = await LaunchNavigator.getAvailableApps();console.log('Verfügbare Navigations-Apps:', availableApps);
// Alle unterstützten Apps für die Plattform abrufenconst supportedApps = await LaunchNavigator.getSupportedApps();console.log('Unterstützte Apps:', supportedApps);API-Referenz
Section titled “API-Referenz”navigate(options)
Section titled “navigate(options)”navigate(options: NavigateOptions) => Promise<void>Startet die Navigation zu angegebenen Koordinaten.
| Param | Typ |
|---|---|
options | NavigateOptions |
isAppAvailable(options)
Section titled “isAppAvailable(options)”isAppAvailable(options: { app: string }) => Promise<{ available: boolean }>Prüft, ob eine bestimmte Navigations-App installiert ist.
| Param | Typ |
|---|---|
options | { app: string } |
Rückgabe: Promise<{ available: boolean }>
getAvailableApps()
Section titled “getAvailableApps()”getAvailableApps() => Promise<{ apps: string[] }>Ruft die Liste aller verfügbaren Navigations-Apps auf dem Gerät ab.
Rückgabe: Promise<{ apps: string[] }>
getSupportedApps()
Section titled “getSupportedApps()”getSupportedApps() => Promise<{ apps: string[] }>Ruft die Liste aller unterstützten Apps für die aktuelle Plattform ab.
Rückgabe: Promise<{ apps: string[] }>
Schnittstellen
Section titled “Schnittstellen”NavigateOptions
Section titled “NavigateOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
destination | [number, number] | Zielkoordinaten [lat, lng] |
options | NavigationOptions | Zusätzliche Navigationsoptionen (optional) |
NavigationOptions
Section titled “NavigationOptions”| Eigenschaft | Typ | Beschreibung |
|---|---|---|
start | [number, number] | Startkoordinaten [lat, lng] (optional) |
transportMode | TransportMode | Transportmethode (optional) |
app | string | Bevorzugte Navigations-App (optional) |
appDisplayName | string | Anzeigename für App (optional) |
TransportMode
Section titled “TransportMode”enum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}Koordinaten-Anforderung
Section titled “Koordinaten-Anforderung”Wichtig: Dieses Plugin akzeptiert nur Breiten-/Längengrad-Koordinaten für die Navigation. Verwenden Sie @capgo/capacitor-nativegeocoder, um Adressen in Koordinaten umzuwandeln.
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// Adresse in Koordinaten umwandelnconst geocodeResult = await NativeGeocoder.forwardGeocode({ address: '1600 Amphitheatre Parkway, Mountain View, CA'});
if (geocodeResult.results.length > 0) { const coords = geocodeResult.results[0];
// Navigation mit geokodierten Koordinaten starten await LaunchNavigator.navigate({ destination: [coords.latitude, coords.longitude] });}Unterstützte Navigations-Apps
Section titled “Unterstützte Navigations-Apps”- Apple Maps (integriert)
- Google Maps
- Waze
- Citymapper
- Transit
- Moovit
- Uber
- Lyft
- Und viele mehr…
Android
Section titled “Android”- Google Maps (integriert)
- Waze
- Citymapper
- HERE WeGo
- Sygic
- MapQuest
- Moovit
- Und viele mehr…
Erweiterte Beispiele
Section titled “Erweiterte Beispiele”Mehrere Apps prüfen und die erste verfügbare verwenden
Section titled “Mehrere Apps prüfen und die erste verfügbare verwenden”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('Keine unterstützten Navigations-Apps gefunden');}Benutzerauswahl der Navigations-App
Section titled “Benutzerauswahl der Navigations-App”// Verfügbare Apps abrufenconst { apps } = await LaunchNavigator.getAvailableApps();
if (apps.length === 0) { alert('Keine Navigations-Apps verfügbar'); return;}
// App-Auswahl dem Benutzer zeigen (Pseudo-Code)const selectedApp = await showAppSelectionDialog(apps);
// Mit ausgewählter App navigierenawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp }});Navigation mit verschiedenen Transportmodi
Section titled “Navigation mit verschiedenen Transportmodi”// Fahranweisungenawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.DRIVING }});
// Gehrichtungenawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.WALKING }});
// Öffentliche Verkehrsmittelawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.TRANSIT }});Best Practices
Section titled “Best Practices”- Prüfen Sie immer die App-Verfügbarkeit, bevor Sie die Navigation versuchen
- Bieten Sie Fallback-Optionen an, wenn bevorzugte Apps nicht verfügbar sind
- Verwenden Sie aussagekräftige App-Anzeigenamen für die Benutzerauswahl
- Behandeln Sie Fehler mit benutzerfreundlichen Meldungen
- Berücksichtigen Sie Benutzerpräferenzen für Standard-Navigations-Apps
- Testen Sie auf iOS- und Android-Geräten
- Implementieren Sie eine ordnungsgemäße Fehlerbehandlung für ungültige Koordinaten
Fehlerbehandlung
Section titled “Fehlerbehandlung”try { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: 'google_maps', transportMode: TransportMode.DRIVING } });} catch (error) { console.error('Navigation fehlgeschlagen:', error); // Fehler behandeln - App nicht verfügbar, ungültige Koordinaten, etc. alert('Navigation konnte nicht gestartet werden. Bitte überprüfen Sie Ihre Koordinaten und versuchen Sie es erneut.');}Anwendungsfälle
Section titled “Anwendungsfälle”- Standortbasierte Dienste: Benutzer zu Sehenswürdigkeiten navigieren
- Liefer-Apps: Fahrer zu Lieferorten führen
- Event-Apps: Teilnehmer zu Veranstaltungsorten leiten
- Immobilien-Apps: Zu Immobilienstandorten navigieren
- Reise-Apps: Touristen zu Attraktionen führen
- Service-Apps: Außendienstmitarbeiter zu Einsatzorten leiten