Comenzar con Barometer
Esta guía te llevará a través de la integración del Plugin Capacitor Barometer en tu aplicación.
Instalación
Section titled “Instalación”Instala el Plugin usando npm:
npm install @capgo/capacitor-barometernpx cap syncConfiguración de iOS
Section titled “Configuración de iOS”Agrega lo siguiente a tu Info.plist:
<key>NSMotionUsageDescription</key><string>This app uses the barometer to measure atmospheric pressure</string>Configuración de Android
Section titled “Configuración de Android”No se requiere configuración adicional. El Plugin solicita automáticamente los permisos necesarios.
Uso Básico
Section titled “Uso Básico”Importar el Plugin
Section titled “Importar el Plugin”import { Barometer } from '@capgo/capacitor-barometer';Verificar Disponibilidad del Sensor
Section titled “Verificar Disponibilidad del Sensor”const checkBarometer = async () => { const { available } = await Barometer.isAvailable(); console.log('Barometer available:', available);};Iniciar Monitoreo de Presión
Section titled “Iniciar Monitoreo de Presión”const startMonitoring = async () => { await Barometer.start({ interval: 1000 // Intervalo de actualización en milisegundos });
console.log('Barometer monitoring started');};Escuchar Eventos de Presión
Section titled “Escuchar Eventos de Presión”Barometer.addListener('pressureChange', (data) => { console.log('Pressure (hPa):', data.pressure); console.log('Relative altitude (m):', data.relativeAltitude); console.log('Timestamp:', data.timestamp);});Obtener Lectura Actual
Section titled “Obtener Lectura Actual”const getCurrentPressure = async () => { const reading = await Barometer.getCurrentReading(); console.log('Current pressure:', reading.pressure, 'hPa'); console.log('Relative altitude:', reading.relativeAltitude, 'm');};Detener Monitoreo
Section titled “Detener Monitoreo”const stopMonitoring = async () => { await Barometer.stop(); console.log('Barometer monitoring stopped');};Ejemplo Completo
Section titled “Ejemplo Completo”Aquí hay un ejemplo completo mostrando la integración del barómetro:
import { Barometer } from '@capgo/capacitor-barometer';
class BarometerService { private listener: any;
async initialize() { // Verificar disponibilidad const { available } = await Barometer.isAvailable(); if (!available) { console.error('Barometer not available on this device'); return; }
// Iniciar monitoreo await Barometer.start({ interval: 1000 });
// Agregar 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');
// Actualizar UI o procesar datos this.updateDisplay(data); }
updateDisplay(data: any) { // Convertir hPa a otras unidades 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() { // Eliminar listener if (this.listener) { this.listener.remove(); }
// Detener monitoreo await Barometer.stop(); }}
// Usoconst barometerService = new BarometerService();barometerService.initialize();
// Limpieza cuando termine// barometerService.cleanup();Entendiendo las Lecturas
Section titled “Entendiendo las Lecturas”Presión Atmosférica
Section titled “Presión Atmosférica”- Medida en hectopascales (hPa) o milibares (mb)
- Presión estándar al nivel del mar: 1013.25 hPa
- Mayor altitud = menor presión
- Los sistemas meteorológicos afectan las lecturas de presión
Altitud Relativa
Section titled “Altitud Relativa”- Calculada a partir de cambios de presión
- Relativa al punto de referencia inicial
- Precisión: ±10-30 metros
- Funciona mejor para seguimiento a corto plazo
Mejores Prácticas
Section titled “Mejores Prácticas”- Verificar Disponibilidad: Siempre verifica la disponibilidad del sensor antes de usarlo
- Intervalos Razonables: No consultes con demasiada frecuencia (1000ms es bueno)
- Eliminar Listeners: Limpia los listeners cuando no sean necesarios
- Calibración: Usa altitud conocida para lecturas precisas
- Impacto en Batería: Monitorea el uso de batería con detección continua
Problemas Comunes
Section titled “Problemas Comunes”Sensor No Disponible
Section titled “Sensor No Disponible”try { const { available } = await Barometer.isAvailable(); if (!available) { // Alternativa a altitud GPS o entrada manual showAlternativeMethod(); }} catch (error) { console.error('Barometer check failed:', error);}Datos Ruidosos
Section titled “Datos Ruidosos”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(); }
// Devolver promedio móvil const sum = this.readings.reduce((a, b) => a + b, 0); return sum / this.readings.length; }}Próximos Pasos
Section titled “Próximos Pasos”- Explora la Referencia de API para documentación completa de métodos
- Consulta la aplicación de ejemplo para uso avanzado
- Ve el tutorial para ejemplos completos de implementación