Primeros pasos con el podómetro
Esta guía lo guiará en la integración del complemento Capacitor Podómetro en su aplicación.
Instalación
Section titled “Instalación”Instale el complemento usando npm:
npm install @capgo/capacitor-pedometernpx cap synciOS Configuración
Section titled “iOS Configuración”Agregue una descripción de uso de movimiento a su Info.plist:
<key>NSMotionUsageDescription</key><string>We need access to your motion data to track steps and activity</string>Android Configuración
Section titled “Android Configuración”El complemento agrega automáticamente el permiso ACTIVITY_RECOGNITION. Para Android 10+ (API 29), debe solicitar este permiso en tiempo de ejecución.
Uso básico
Section titled “Uso básico”Importar el complemento
Section titled “Importar el complemento”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';Consultar disponibilidad
Section titled “Consultar disponibilidad”const checkPedometer = async () => { const result = await CapacitorPedometer.isAvailable(); console.log('Step counting available:', result.stepCounting); console.log('Distance available:', result.distance); console.log('Floor counting available:', result.floorCounting); console.log('Pace available:', result.pace); console.log('Cadence available:', result.cadence);};Solicitar permisos
Section titled “Solicitar permisos”const requestPermission = async () => { const permission = await CapacitorPedometer.requestPermissions(); console.log('Permission status:', permission.activityRecognition);};Obtener mediciones actuales
Section titled “Obtener mediciones actuales”const getMeasurements = async () => { const measurements = await CapacitorPedometer.getMeasurement({ startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), // 24 hours ago endDate: new Date() });
console.log('Steps:', measurements.numberOfSteps); console.log('Distance:', measurements.distance, 'meters'); console.log('Floors ascended:', measurements.floorsAscended); console.log('Floors descended:', measurements.floorsDescended);};Iniciar actualizaciones en tiempo real
Section titled “Iniciar actualizaciones en tiempo real”// Add listener for real-time updatesCapacitorPedometer.addListener('measurement', (data) => { console.log('Steps:', data.numberOfSteps); console.log('Distance:', data.distance); console.log('Pace:', data.currentPace); console.log('Cadence:', data.currentCadence);});
// Start receiving updatesawait CapacitorPedometer.startMeasurementUpdates();Detener actualizaciones
Section titled “Detener actualizaciones”await CapacitorPedometer.stopMeasurementUpdates();CapacitorPedometer.removeAllListeners();Ejemplo completo
Section titled “Ejemplo completo”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';
class PedometerService { private listener: any;
async initialize() { // Check availability const available = await CapacitorPedometer.isAvailable(); if (!available.stepCounting) { console.error('Step counting not available'); return false; }
// Request permissions const permission = await CapacitorPedometer.requestPermissions(); if (permission.activityRecognition !== 'granted') { console.error('Permission denied'); return false; }
return true; }
async startTracking() { // Add listener this.listener = CapacitorPedometer.addListener('measurement', (data) => { this.onMeasurement(data); });
// Start updates await CapacitorPedometer.startMeasurementUpdates(); console.log('Pedometer tracking started'); }
async stopTracking() { await CapacitorPedometer.stopMeasurementUpdates(); if (this.listener) { this.listener.remove(); } console.log('Pedometer tracking stopped'); }
onMeasurement(data: any) { console.log('Steps today:', data.numberOfSteps); console.log('Distance:', (data.distance / 1000).toFixed(2), 'km'); }
async getTodaySteps() { const today = new Date(); today.setHours(0, 0, 0, 0);
const measurements = await CapacitorPedometer.getMeasurement({ startDate: today, endDate: new Date() });
return measurements.numberOfSteps; }}
// Usageconst pedometer = new PedometerService();await pedometer.initialize();await pedometer.startTracking();Mejores prácticas
Section titled “Mejores prácticas”- Verificar disponibilidad: Verifique siempre las características del podómetro antes de usarlo
- Solicitar permisos: Maneje las solicitudes de permiso con elegancia
- Optimización de la batería: detenga las actualizaciones cuando no sean necesarias
- Manejo de errores: envuelve llamadas en bloques try-catch
- Actualizaciones en segundo plano: configure modos en segundo plano para un seguimiento continuo
Problemas comunes
Section titled “Problemas comunes”Permiso denegado
Section titled “Permiso denegado”const handlePermissionDenied = async () => { const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') { alert('Motion tracking permission is required. Please enable it in Settings.'); }};No disponible en el dispositivo
Section titled “No disponible en el dispositivo”const checkSupport = async () => { const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) { alert('Step counting is not available on this device'); return false; }
return true;};Próximos pasos
Section titled “Próximos pasos”- Explore la API Referencia para obtener documentación completa
- Consulte la aplicación de ejemplo
- Consulte el tutorial para una implementación avanzada.