Memulai dengan Barometer
Panduan ini akan memandu Anda mengintegrasikan plugin Capacitor Barometer ke dalam aplikasi Anda.
Instalasi
Section titled “Instalasi”Instal plugin menggunakan npm:
npm install @capgo/capacitor-barometernpx cap syncKonfigurasi iOS
Section titled “Konfigurasi iOS”Tambahkan berikut ke Info.plist Anda:
<key>NSMotionUsageDescription</key><string>This app uses the barometer to measure atmospheric pressure</string>Konfigurasi Android
Section titled “Konfigurasi Android”Tidak diperlukan konfigurasi tambahan. Plugin secara otomatis meminta izin yang diperlukan.
Penggunaan Dasar
Section titled “Penggunaan Dasar”Impor Plugin
Section titled “Impor Plugin”import { Barometer } from '@capgo/capacitor-barometer';Periksa Ketersediaan Sensor
Section titled “Periksa Ketersediaan Sensor”const checkBarometer = async () => { const { available } = await Barometer.isAvailable(); console.log('Barometer available:', available);};Mulai Memantau Tekanan
Section titled “Mulai Memantau Tekanan”const startMonitoring = async () => { await Barometer.start({ interval: 1000 // Update interval in milliseconds });
console.log('Barometer monitoring started');};Dengarkan Event Tekanan
Section titled “Dengarkan Event Tekanan”Barometer.addListener('pressureChange', (data) => { console.log('Pressure (hPa):', data.pressure); console.log('Relative altitude (m):', data.relativeAltitude); console.log('Timestamp:', data.timestamp);});Dapatkan Pembacaan Saat Ini
Section titled “Dapatkan Pembacaan Saat Ini”const getCurrentPressure = async () => { const reading = await Barometer.getCurrentReading(); console.log('Current pressure:', reading.pressure, 'hPa'); console.log('Relative altitude:', reading.relativeAltitude, 'm');};Hentikan Pemantauan
Section titled “Hentikan Pemantauan”const stopMonitoring = async () => { await Barometer.stop(); console.log('Barometer monitoring stopped');};Contoh Lengkap
Section titled “Contoh Lengkap”Berikut adalah contoh lengkap yang menunjukkan integrasi barometer:
import { Barometer } from '@capgo/capacitor-barometer';
class BarometerService { private listener: any;
async initialize() { // Check availability const { available } = await Barometer.isAvailable(); if (!available) { console.error('Barometer not available on this device'); return; }
// Start monitoring await Barometer.start({ interval: 1000 });
// Add listener this.listener = Barometer.addListener('pressureChange', (data) => { this.handlePressureChange(data); }); }
handlePressureChange(data: any) { console.log('Pressure:', data.pressure, 'hPa'); console.log('Altitude:', data.relativeAltitude, 'm');
// Update UI or process data this.updateDisplay(data); }
updateDisplay(data: any) { // Convert hPa to other units const inHg = (data.pressure * 0.02953).toFixed(2); const mmHg = (data.pressure * 0.750062).toFixed(1);
console.log(`Pressure: ${data.pressure.toFixed(1)} hPa`); console.log(` ${inHg} inHg`); console.log(` ${mmHg} mmHg`); console.log(`Altitude: ${data.relativeAltitude.toFixed(1)} m`); }
async cleanup() { // Remove listener if (this.listener) { this.listener.remove(); }
// Stop monitoring await Barometer.stop(); }}
// Usageconst barometerService = new BarometerService();barometerService.initialize();
// Cleanup when done// barometerService.cleanup();Memahami Pembacaan
Section titled “Memahami Pembacaan”Tekanan Atmosfer
Section titled “Tekanan Atmosfer”- Diukur dalam hektopascal (hPa) atau milibar (mb)
- Tekanan permukaan laut standar: 1013.25 hPa
- Ketinggian lebih tinggi = tekanan lebih rendah
- Sistem cuaca mempengaruhi pembacaan tekanan
Ketinggian Relatif
Section titled “Ketinggian Relatif”- Dihitung dari perubahan tekanan
- Relatif terhadap titik referensi awal
- Akurasi: ±10-30 meter
- Bekerja paling baik untuk pelacakan jangka pendek
Praktik Terbaik
Section titled “Praktik Terbaik”- Periksa Ketersediaan: Selalu verifikasi ketersediaan sensor sebelum digunakan
- Interval yang Wajar: Jangan polling terlalu sering (1000ms sudah bagus)
- Hapus Listener: Bersihkan listener saat tidak diperlukan
- Kalibrasi: Gunakan ketinggian yang diketahui untuk pembacaan yang akurat
- Dampak Baterai: Pantau penggunaan baterai dengan penginderaan berkelanjutan
Masalah Umum
Section titled “Masalah Umum”Sensor Tidak Tersedia
Section titled “Sensor Tidak Tersedia”try { const { available } = await Barometer.isAvailable(); if (!available) { // Fallback to GPS altitude or manual input showAlternativeMethod(); }} catch (error) { console.error('Barometer check failed:', error);}Data Berisik
Section titled “Data Berisik”class PressureFilter { private readings: number[] = []; private maxReadings = 5;
addReading(pressure: number): number { this.readings.push(pressure); if (this.readings.length > this.maxReadings) { this.readings.shift(); }
// Return moving average const sum = this.readings.reduce((a, b) => a + b, 0); return sum / this.readings.length; }}Langkah Selanjutnya
Section titled “Langkah Selanjutnya”- Jelajahi Referensi API untuk dokumentasi metode lengkap
- Lihat aplikasi contoh untuk penggunaan lanjutan
- Lihat tutorial untuk contoh implementasi lengkap