Passer au contenu

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 :

Terminal window
npm install @capgo/capacitor-pedometer
npx cap sync

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>

Le plugin ajoute automatiquement l’autorisation ACTIVITY_RECOGNITION. Pour Android 10+ (API 29), vous devez demander cette autorisation au moment de l’exécution.

import { CapacitorPedometer } from '@capgo/capacitor-pedometer';
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);
};
const requestPermission = async () => {
const permission = await CapacitorPedometer.requestPermissions();
console.log('Permission status:', permission.activityRecognition);
};
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 updates
CapacitorPedometer.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 updates
await CapacitorPedometer.startMeasurementUpdates();
await CapacitorPedometer.stopMeasurementUpdates();
CapacitorPedometer.removeAllListeners();
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;
}
}
// Usage
const pedometer = new PedometerService();
await pedometer.initialize();
await pedometer.startTracking();

## meilleures pratiques

  1. Vérifier la disponibilité : vérifiez toujours les fonctionnalités du podomètre avant utilisation
  2. Demander des autorisations : gérez les demandes d’autorisation avec élégance
  3. Optimisation de la batterie : arrêtez les mises à jour lorsque vous n’en avez pas besoin
  4. Gestion des erreurs : enveloppez les appels dans des blocs try-catch
  5. Mises à jour en arrière-plan : configurez les modes d’arrière-plan pour un suivi continu
const handlePermissionDenied = async () => {
const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') {
alert('Motion tracking permission is required. Please enable it in Settings.');
}
};
const checkSupport = async () => {
const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) {
alert('Step counting is not available on this device');
return false;
}
return true;
};