Premiers pas avec le podomètre
Ce guide vous guidera dans l’intégration du plugin Capacitor Pedometer dans votre application.
##Installation
Installez le plugin en utilisant npm :
npm install @capgo/capacitor-pedometernpx cap synciOSConfiguration
Section titled “iOSConfiguration”Ajoutez une description d’utilisation du mouvement à votre Info.plist :
<key>NSMotionUsageDescription</key><string>We need access to your motion data to track steps and activity</string>AndroidConfiguration
Section titled “AndroidConfiguration”Le plugin ajoute automatiquement l’autorisation ACTIVITY_RECOGNITION. Pour Android 10+ (API 29), vous devez demander cette autorisation au moment de l’exécution.
Utilisation de base
Section titled “Utilisation de base”Importer le plugin
Section titled “Importer le plugin”import { CapacitorPedometer } from '@capgo/capacitor-pedometer';Vérifier la disponibilité
Section titled “Vérifier la disponibilité”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);};Demander des autorisations
Section titled “Demander des autorisations”const requestPermission = async () => { const permission = await CapacitorPedometer.requestPermissions(); console.log('Permission status:', permission.activityRecognition);};Obtenez les mesures actuelles
Section titled “Obtenez les mesures actuelles”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);};Démarrer les mises à jour en temps réel
Section titled “Démarrer les mises à jour en temps réel”// 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();Arrêter les mises à jour
Section titled “Arrêter les mises à jour”await CapacitorPedometer.stopMeasurementUpdates();CapacitorPedometer.removeAllListeners();Exemple complet
Section titled “Exemple complet”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();## meilleures pratiques
- Vérifier la disponibilité : vérifiez toujours les fonctionnalités du podomètre avant utilisation
- Demander des autorisations : gérez les demandes d’autorisation avec élégance
- Optimisation de la batterie : arrêtez les mises à jour lorsque vous n’en avez pas besoin
- Gestion des erreurs : enveloppez les appels dans des blocs try-catch
- Mises à jour en arrière-plan : configurez les modes d’arrière-plan pour un suivi continu
Problèmes courants
Section titled “Problèmes courants”Autorisation refusée
Section titled “Autorisation refusée”const handlePermissionDenied = async () => { const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') { alert('Motion tracking permission is required. Please enable it in Settings.'); }};Non disponible sur l’appareil
Section titled “Non disponible sur l’appareil”const checkSupport = async () => { const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) { alert('Step counting is not available on this device'); return false; }
return true;};Prochaines étapes
Section titled “Prochaines étapes”- Explorez la API Reference pour une documentation complète
- Consultez l’exemple d’application
- Voir le tutoriel pour une implémentation avancée