Memulai
Instalasi
Section titled âInstalasiâ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 syncKonfigurasi Platform
Section titled âKonfigurasi PlatformâTambahkan URL scheme ke Info.plist Anda untuk mendeteksi aplikasi navigasi yang terinstal:
<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âTidak diperlukan konfigurasi tambahan. Plugin akan mendeteksi aplikasi navigasi yang terinstal secara otomatis.
Contoh Penggunaan
Section titled âContoh Penggunaanâimport { LaunchNavigator, TransportMode } from '@capgo/capacitor-launch-navigator';
// Navigasi dasar ke koordinatawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], // Koordinat San Francisco});
// Navigasi lanjutan dengan opsiawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { start: [37.7849, -122.4094], // Titik awal opsional transportMode: TransportMode.DRIVING, app: 'google_maps', // Aplikasi navigasi yang dipilih appDisplayName: 'Google Maps' }});
// Periksa apakah aplikasi tertentu tersediaconst result = await LaunchNavigator.isAppAvailable({ app: 'google_maps'});
if (result.available) { console.log('Google Maps terinstal');} else { console.log('Google Maps tidak tersedia');}
// Dapatkan semua aplikasi navigasi yang tersediaconst availableApps = await LaunchNavigator.getAvailableApps();console.log('Aplikasi navigasi yang tersedia:', availableApps);
// Dapatkan semua aplikasi yang didukung untuk platformconst supportedApps = await LaunchNavigator.getSupportedApps();console.log('Aplikasi yang didukung:', supportedApps);Referensi API
Section titled âReferensi APIânavigate(options)
Section titled ânavigate(options)ânavigate(options: NavigateOptions) => Promise<void>Luncurkan navigasi ke koordinat yang ditentukan.
| Param | Type |
|---|---|
options | NavigateOptions |
isAppAvailable(options)
Section titled âisAppAvailable(options)âisAppAvailable(options: { app: string }) => Promise<{ available: boolean }>Periksa apakah aplikasi navigasi tertentu terinstal.
| Param | Type |
|---|---|
options | { app: string } |
Mengembalikan: Promise<{ available: boolean }>
getAvailableApps()
Section titled âgetAvailableApps()âgetAvailableApps() => Promise<{ apps: string[] }>Dapatkan daftar semua aplikasi navigasi yang tersedia di perangkat.
Mengembalikan: Promise<{ apps: string[] }>
getSupportedApps()
Section titled âgetSupportedApps()âgetSupportedApps() => Promise<{ apps: string[] }>Dapatkan daftar semua aplikasi yang didukung untuk platform saat ini.
Mengembalikan: Promise<{ apps: string[] }>
Interface
Section titled âInterfaceâNavigateOptions
Section titled âNavigateOptionsâ| Prop | Type | Description |
|---|---|---|
destination | [number, number] | Koordinat tujuan [lat, lng] |
options | NavigationOptions | Opsi navigasi tambahan (opsional) |
NavigationOptions
Section titled âNavigationOptionsâ| Prop | Type | Description |
|---|---|---|
start | [number, number] | Koordinat awal [lat, lng] (opsional) |
transportMode | TransportMode | Metode transportasi (opsional) |
app | string | Aplikasi navigasi yang dipilih (opsional) |
appDisplayName | string | Nama tampilan untuk aplikasi (opsional) |
TransportMode
Section titled âTransportModeâenum TransportMode { DRIVING = 'driving', WALKING = 'walking', TRANSIT = 'transit', CYCLING = 'cycling'}Persyaratan Koordinat
Section titled âPersyaratan KoordinatâPenting: Plugin ini hanya menerima koordinat latitude/longitude untuk navigasi. Gunakan @capgo/capacitor-nativegeocoder untuk mengonversi alamat ke koordinat.
import { NativeGeocoder } from '@capgo/capacitor-nativegeocoder';import { LaunchNavigator } from '@capgo/capacitor-launch-navigator';
// Konversi alamat ke koordinatconst geocodeResult = await NativeGeocoder.forwardGeocode({ address: '1600 Amphitheatre Parkway, Mountain View, CA'});
if (geocodeResult.results.length > 0) { const coords = geocodeResult.results[0];
// Luncurkan navigasi dengan koordinat yang di-geocode await LaunchNavigator.navigate({ destination: [coords.latitude, coords.longitude] });}Aplikasi Navigasi yang Didukung
Section titled âAplikasi Navigasi yang Didukungâ- Apple Maps (bawaan)
- Google Maps
- Waze
- Citymapper
- Transit
- Moovit
- Uber
- Lyft
- Dan banyak lagiâŚ
Android
Section titled âAndroidâ- Google Maps (bawaan)
- Waze
- Citymapper
- HERE WeGo
- Sygic
- MapQuest
- Moovit
- Dan banyak lagiâŚ
Contoh Lanjutan
Section titled âContoh LanjutanâPeriksa Beberapa Aplikasi dan Gunakan yang Pertama Tersedia
Section titled âPeriksa Beberapa Aplikasi dan Gunakan yang Pertama Tersediaâ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('Tidak ada aplikasi navigasi yang didukung ditemukan');}Pemilihan Aplikasi Navigasi oleh Pengguna
Section titled âPemilihan Aplikasi Navigasi oleh Penggunaâ// Dapatkan aplikasi yang tersediaconst { apps } = await LaunchNavigator.getAvailableApps();
if (apps.length === 0) { alert('Tidak ada aplikasi navigasi yang tersedia'); return;}
// Tampilkan pemilihan aplikasi kepada pengguna (pseudo-code)const selectedApp = await showAppSelectionDialog(apps);
// Navigasi dengan aplikasi yang dipilihawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: selectedApp }});Navigasi dengan Mode Transportasi Berbeda
Section titled âNavigasi dengan Mode Transportasi Berbedaâ// Petunjuk mengemudiawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.DRIVING }});
// Petunjuk berjalan kakiawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.WALKING }});
// Petunjuk transportasi umumawait LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { transportMode: TransportMode.TRANSIT }});Praktik Terbaik
Section titled âPraktik Terbaikâ- Selalu periksa ketersediaan aplikasi sebelum mencoba navigasi
- Sediakan opsi fallback ketika aplikasi yang dipilih tidak tersedia
- Gunakan nama tampilan aplikasi yang bermakna untuk pemilihan pengguna
- Tangani error dengan anggun dengan pesan yang ramah pengguna
- Pertimbangkan preferensi pengguna untuk aplikasi navigasi default
- Uji di perangkat iOS dan Android
- Implementasikan penanganan error yang tepat untuk koordinat yang tidak valid
Penanganan Error
Section titled âPenanganan Errorâtry { await LaunchNavigator.navigate({ destination: [37.7749, -122.4194], options: { app: 'google_maps', transportMode: TransportMode.DRIVING } });} catch (error) { console.error('Navigasi gagal:', error); // Tangani error - aplikasi tidak tersedia, koordinat tidak valid, dll. alert('Tidak dapat meluncurkan navigasi. Silakan periksa koordinat Anda dan coba lagi.');}Kasus Penggunaan
Section titled âKasus Penggunaanâ- Layanan berbasis lokasi: Navigasikan pengguna ke titik menarik
- Aplikasi pengiriman: Pandu pengemudi ke lokasi pengiriman
- Aplikasi event: Arahkan peserta ke lokasi venue
- Aplikasi real estate: Navigasi ke lokasi properti
- Aplikasi perjalanan: Pandu wisatawan ke atraksi
- Aplikasi layanan: Arahkan pekerja lapangan ke lokasi pekerjaan