Iniziare con Pedometer
Questa guida ti guiderà nell’integrazione del plugin Capacitor Pedometer nella tua applicazione.
Installazione
Section titled “Installazione”Installa il plugin usando npm:
npm install @capgo/capacitor-pedometernpx cap syncConfigurazione iOS
Section titled “Configurazione iOS”Aggiungi la descrizione di utilizzo del movimento al tuo Info.plist:
<key>NSMotionUsageDescription</key><string>Abbiamo bisogno dell'accesso ai tuoi dati di movimento per tracciare passi e attività</string>Configurazione Android
Section titled “Configurazione Android”Il plugin aggiunge automaticamente il permesso ACTIVITY_RECOGNITION. Per Android 10+ (API 29), devi richiedere questo permesso a runtime.
Utilizzo base
Section titled “Utilizzo base”Importa il plugin
Section titled “Importa il plugin”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';Controlla disponibilità
Section titled “Controlla disponibilità”const checkPedometer = async () => { const result = await CapacitorPedometer.isAvailable(); console.log('Conteggio passi disponibile:', result.stepCounting); console.log('Distanza disponibile:', result.distance); console.log('Conteggio piani disponibile:', result.floorCounting); console.log('Passo disponibile:', result.pace); console.log('Cadenza disponibile:', result.cadence);};Richiedi permessi
Section titled “Richiedi permessi”const requestPermission = async () => { const permission = await CapacitorPedometer.requestPermissions(); console.log('Stato permesso:', permission.activityRecognition);};Ottieni misurazioni correnti
Section titled “Ottieni misurazioni correnti”const getMeasurements = async () => { const measurements = await CapacitorPedometer.getMeasurement({ startDate: new Date(Date.now() - 24 * 60 * 60 * 1000), // 24 ore fa endDate: new Date() });
console.log('Passi:', measurements.numberOfSteps); console.log('Distanza:', measurements.distance, 'metri'); console.log('Piani saliti:', measurements.floorsAscended); console.log('Piani scesi:', measurements.floorsDescended);};Avvia aggiornamenti in tempo reale
Section titled “Avvia aggiornamenti in tempo reale”// Aggiungi listener per aggiornamenti in tempo realeCapacitorPedometer.addListener('measurement', (data) => { console.log('Passi:', data.numberOfSteps); console.log('Distanza:', data.distance); console.log('Passo:', data.currentPace); console.log('Cadenza:', data.currentCadence);});
// Inizia a ricevere aggiornamentiawait CapacitorPedometer.startMeasurementUpdates();Interrompi aggiornamenti
Section titled “Interrompi aggiornamenti”await CapacitorPedometer.stopMeasurementUpdates();CapacitorPedometer.removeAllListeners();Esempio completo
Section titled “Esempio completo”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';
class PedometerService { private listener: any;
async initialize() { // Controlla disponibilità const available = await CapacitorPedometer.isAvailable(); if (!available.stepCounting) { console.error('Conteggio passi non disponibile'); return false; }
// Richiedi permessi const permission = await CapacitorPedometer.requestPermissions(); if (permission.activityRecognition !== 'granted') { console.error('Permesso negato'); return false; }
return true; }
async startTracking() { // Aggiungi listener this.listener = CapacitorPedometer.addListener('measurement', (data) => { this.onMeasurement(data); });
// Avvia aggiornamenti await CapacitorPedometer.startMeasurementUpdates(); console.log('Tracciamento pedometro avviato'); }
async stopTracking() { await CapacitorPedometer.stopMeasurementUpdates(); if (this.listener) { this.listener.remove(); } console.log('Tracciamento pedometro interrotto'); }
onMeasurement(data: any) { console.log('Passi oggi:', data.numberOfSteps); console.log('Distanza:', (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; }}
// Utilizzoconst pedometer = new PedometerService();await pedometer.initialize();await pedometer.startTracking();Best practice
Section titled “Best practice”- Controlla disponibilità: Verifica sempre le funzionalità del pedometro prima dell’uso
- Richiedi permessi: Gestisci le richieste di permesso con eleganza
- Ottimizzazione batteria: Interrompi gli aggiornamenti quando non necessari
- Gestione errori: Avvolgi le chiamate in blocchi try-catch
- Aggiornamenti in background: Configura le modalità in background per il tracciamento continuo
Problemi comuni
Section titled “Problemi comuni”Permesso negato
Section titled “Permesso negato”const handlePermissionDenied = async () => { const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') { alert('Il permesso di tracciamento del movimento è richiesto. Abilitalo nelle Impostazioni.'); }};Non disponibile sul dispositivo
Section titled “Non disponibile sul dispositivo”const checkSupport = async () => { const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) { alert('Il conteggio dei passi non è disponibile su questo dispositivo'); return false; }
return true;};Prossimi passi
Section titled “Prossimi passi”- Esplora il Riferimento API per la documentazione completa
- Dai un’occhiata all’app di esempio
- Vedi il tutorial per un’implementazione avanzata