Getting Started with Pedometer
Konten ini belum tersedia dalam bahasa Anda.
This guide will walk you through integrating the Capacitor Pedometer plugin into your application.
Installation
Section titled âInstallationâInstall the plugin using npm:
npm install @capgo/capacitor-pedometernpx cap synciOS Configuration
Section titled âiOS ConfigurationâAdd motion usage description to your Info.plist:
<key>NSMotionUsageDescription</key><string>We need access to your motion data to track steps and activity</string>Android Configuration
Section titled âAndroid ConfigurationâThe plugin automatically adds the ACTIVITY_RECOGNITION permission. For Android 10+ (API 29), you need to request this permission at runtime.
Basic Usage
Section titled âBasic UsageâImport the Plugin
Section titled âImport the Pluginâimport { CapacitorPedometer } from '@capgo/capacitor-pedometer';Check Availability
Section titled âCheck Availabilityâ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);};Request Permissions
Section titled âRequest Permissionsâconst requestPermission = async () => { const permission = await CapacitorPedometer.requestPermissions(); console.log('Permission status:', permission.activityRecognition);};Get Current Measurements
Section titled âGet Current Measurementsâ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);};Start Real-time Updates
Section titled âStart Real-time Updatesâ// 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();Stop Updates
Section titled âStop Updatesâawait CapacitorPedometer.stopMeasurementUpdates();CapacitorPedometer.removeAllListeners();Complete Example
Section titled âComplete Exampleâ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();Best Practices
Section titled âBest Practicesâ- Check Availability: Always verify pedometer features before use
- Request Permissions: Handle permission requests gracefully
- Battery Optimization: Stop updates when not needed
- Error Handling: Wrap calls in try-catch blocks
- Background Updates: Configure background modes for continuous tracking
Common Issues
Section titled âCommon IssuesâPermission Denied
Section titled âPermission Deniedâconst handlePermissionDenied = async () => { const permission = await CapacitorPedometer.checkPermissions();
if (permission.activityRecognition === 'denied') { alert('Motion tracking permission is required. Please enable it in Settings.'); }};Not Available on Device
Section titled âNot Available on Deviceâconst checkSupport = async () => { const available = await CapacitorPedometer.isAvailable();
if (!available.stepCounting) { alert('Step counting is not available on this device'); return false; }
return true;};Next Steps
Section titled âNext Stepsâ- Explore the API Reference for complete documentation
- Check out the example app
- See the tutorial for advanced implementation