Iniziare con Barometer
Questa guida ti guiderà attraverso l’integrazione del plugin Capacitor Barometer nella tua applicazione.
Installazione
Section titled “Installazione”Installa il plugin usando npm:
npm install @capgo/capacitor-barometernpx cap syncConfigurazione iOS
Section titled “Configurazione iOS”Aggiungi quanto segue al tuo Info.plist:
<key>NSMotionUsageDescription</key><string>Questa app usa il barometro per misurare la pressione atmosferica</string>Configurazione Android
Section titled “Configurazione Android”Non è richiesta alcuna configurazione aggiuntiva. Il plugin richiede automaticamente i permessi necessari.
Utilizzo Base
Section titled “Utilizzo Base”Importa il Plugin
Section titled “Importa il Plugin”import { Barometer } from '@capgo/capacitor-barometer';Controlla Disponibilità Sensore
Section titled “Controlla Disponibilità Sensore”const checkBarometer = async () => { const { available } = await Barometer.isAvailable(); console.log('Barometro disponibile:', available);};Inizia Monitoraggio Pressione
Section titled “Inizia Monitoraggio Pressione”const startMonitoring = async () => { await Barometer.start({ interval: 1000 // Intervallo di aggiornamento in millisecondi });
console.log('Monitoraggio barometro iniziato');};Ascolta Eventi Pressione
Section titled “Ascolta Eventi Pressione”Barometer.addListener('pressureChange', (data) => { console.log('Pressione (hPa):', data.pressure); console.log('Altitudine relativa (m):', data.relativeAltitude); console.log('Timestamp:', data.timestamp);});Ottieni Lettura Corrente
Section titled “Ottieni Lettura Corrente”const getCurrentPressure = async () => { const reading = await Barometer.getCurrentReading(); console.log('Pressione corrente:', reading.pressure, 'hPa'); console.log('Altitudine relativa:', reading.relativeAltitude, 'm');};Ferma Monitoraggio
Section titled “Ferma Monitoraggio”const stopMonitoring = async () => { await Barometer.stop(); console.log('Monitoraggio barometro fermato');};Esempio Completo
Section titled “Esempio Completo”Ecco un esempio completo che mostra l’integrazione del barometro:
import { Barometer } from '@capgo/capacitor-barometer';
class BarometerService { private listener: any;
async initialize() { // Controlla disponibilità const { available } = await Barometer.isAvailable(); if (!available) { console.error('Barometro non disponibile su questo dispositivo'); return; }
// Inizia monitoraggio await Barometer.start({ interval: 1000 });
// Aggiungi listener this.listener = Barometer.addListener('pressureChange', (data) => { this.handlePressureChange(data); }); }
handlePressureChange(data: any) { console.log('Pressione:', data.pressure, 'hPa'); console.log('Altitudine:', data.relativeAltitude, 'm');
// Aggiorna UI o elabora dati this.updateDisplay(data); }
updateDisplay(data: any) { // Converti hPa in altre unità const inHg = (data.pressure * 0.02953).toFixed(2); const mmHg = (data.pressure * 0.750062).toFixed(1);
console.log(`Pressione: ${data.pressure.toFixed(1)} hPa`); console.log(` ${inHg} inHg`); console.log(` ${mmHg} mmHg`); console.log(`Altitudine: ${data.relativeAltitude.toFixed(1)} m`); }
async cleanup() { // Rimuovi listener if (this.listener) { this.listener.remove(); }
// Ferma monitoraggio await Barometer.stop(); }}
// Utilizzoconst barometerService = new BarometerService();barometerService.initialize();
// Pulizia quando fatto// barometerService.cleanup();Comprendere le Letture
Section titled “Comprendere le Letture”Pressione Atmosferica
Section titled “Pressione Atmosferica”- Misurata in ettopascal (hPa) o millibar (mb)
- Pressione standard a livello del mare: 1013.25 hPa
- Altitudine più alta = pressione più bassa
- I sistemi meteorologici influenzano le letture di pressione
Altitudine Relativa
Section titled “Altitudine Relativa”- Calcolata dai cambiamenti di pressione
- Relativa al punto di riferimento di partenza
- Accuratezza: ±10-30 metri
- Funziona meglio per tracciamento a breve termine
Best Practices
Section titled “Best Practices”- Controlla Disponibilità: Verifica sempre la disponibilità del sensore prima dell’uso
- Intervalli Ragionevoli: Non interrogare troppo frequentemente (1000ms è buono)
- Rimuovi Listener: Pulisci i listener quando non necessari
- Calibrazione: Usa altitudine conosciuta per letture accurate
- Impatto Batteria: Monitora l’uso della batteria con rilevamento continuo
Problemi Comuni
Section titled “Problemi Comuni”Sensore Non Disponibile
Section titled “Sensore Non Disponibile”try { const { available } = await Barometer.isAvailable(); if (!available) { // Fallback su altitudine GPS o input manuale showAlternativeMethod(); }} catch (error) { console.error('Controllo barometro fallito:', error);}Dati Rumorosi
Section titled “Dati Rumorosi”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(); }
// Ritorna media mobile const sum = this.readings.reduce((a, b) => a + b, 0); return sum / this.readings.length; }}Prossimi Passi
Section titled “Prossimi Passi”- Esplora il Riferimento API per la documentazione completa dei metodi
- Controlla l’app esempio per uso avanzato
- Vedi il tutorial per esempi di implementazione completi