Commencer
-
Installez le package
Fenêtre de terminal npm i @capgo/capacitor-compassFenêtre de terminal pnpm add @capgo/capacitor-compassFenêtre de terminal yarn add @capgo/capacitor-compassFenêtre de terminal bun add @capgo/capacitor-compass -
Synchronisation avec les projets natifs
Fenêtre de terminal npx cap syncFenêtre de terminal pnpm cap syncFenêtre de terminal yarn cap syncFenêtre de terminal bunx cap sync
iOS Configuration
Section titled “iOS Configuration”Sur iOS, l’accès à la boussole nécessite une autorisation de localisation. Ajoutez ce qui suit à votre Info.plist :
<key>NSLocationWhenInUseUsageDescription</key><string>We need location permission to access the compass</string>Android Configuration
Section titled “Android Configuration”Aucune configuration supplémentaire requise. Le plugin utilise les capteurs magnétomètre et accéléromètre de l’appareil.
Utilisation
Section titled “Utilisation”Importez le plugin et utilisez ses méthodes pour lire le cap de la boussole :
import { CapgoCompass } from '@capgo/capacitor-compass';
// Get current heading onceconst getCurrentHeading = async () => { const { value } = await CapgoCompass.getCurrentHeading(); console.log('Current heading:', value, 'degrees');};
// Start continuous heading updatesconst startCompass = async () => { // Start listening for updates await CapgoCompass.startListening();
// Add listener for heading changes const handle = await CapgoCompass.addListener('headingChange', (event) => { console.log('Heading:', event.value, 'degrees'); });
// Later, to stop listening: // await CapgoCompass.stopListening(); // await handle.remove();};
// Check permissionsconst checkPermission = async () => { const status = await CapgoCompass.checkPermissions(); console.log('Permission status:', status.compass);};
// Request permissionsconst requestPermission = async () => { const status = await CapgoCompass.requestPermissions(); if (status.compass === 'granted') { console.log('Compass access granted'); }};API Référence
Section titled “API Référence”###getCurrentHeading()
Obtenez le cap actuel de la boussole en degrés.
const result = await CapgoCompass.getCurrentHeading();// Returns: { value: number } - heading in degrees (0-360)startListening()
Section titled “startListening()”Commencez à écouter les changements de cap de la boussole. Doit être appelé avant que les événements de cap ne soient émis.
await CapgoCompass.startListening();stopListening()
Section titled “stopListening()”Arrêtez d’écouter les changements de cap de la boussole.
await CapgoCompass.stopListening();addListener(‘headingChange’, rappel)
Section titled “addListener(‘headingChange’, rappel)”Ajoutez un écouteur pour les événements de changement de titre.
const handle = await CapgoCompass.addListener('headingChange', (event) => { console.log('Heading:', event.value);});
// Remove listener when doneawait handle.remove();supprimerAllListeners()
Section titled “supprimerAllListeners()”Supprimez tous les auditeurs enregistrés.
await CapgoCompass.removeAllListeners();checkPermissions()
Section titled “checkPermissions()”Vérifiez l’état actuel des autorisations.
const status = await CapgoCompass.checkPermissions();// Returns: { compass: 'prompt' | 'granted' | 'denied' }requêtePermissions()
Section titled “requêtePermissions()”Demandez l’autorisation d’accéder aux données de la boussole.
const status = await CapgoCompass.requestPermissions();###getPluginVersion()
Obtenez la version native du plugin.
const { version } = await CapgoCompass.getPluginVersion();Exemple complet
Section titled “Exemple complet”import { CapgoCompass } from '@capgo/capacitor-compass';
export class CompassService { private listenerHandle: any = null;
async init() { // Check and request permissions const status = await CapgoCompass.checkPermissions(); if (status.compass !== 'granted') { const result = await CapgoCompass.requestPermissions(); if (result.compass !== 'granted') { throw new Error('Compass permission denied'); } } }
async startTracking(onHeadingChange: (heading: number) => void) { // Start listening for updates await CapgoCompass.startListening();
// Add event listener this.listenerHandle = await CapgoCompass.addListener( 'headingChange', (event) => { onHeadingChange(event.value); } ); }
async stopTracking() { if (this.listenerHandle) { await this.listenerHandle.remove(); this.listenerHandle = null; } await CapgoCompass.stopListening(); }
async getHeading(): Promise<number> { const { value } = await CapgoCompass.getCurrentHeading(); return value; }
getCardinalDirection(heading: number): string { const directions = ['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']; const index = Math.round(heading / 45) % 8; return directions[index]; }}## Remarques sur la plate-forme
- Nécessite iOS 10.0+
- Utilise Core Location pour les données de cap
- Nécessite une autorisation de localisation (NSLocationWhenInUseUsageDescription)
- Les mises à jour des titres sont continues lorsque l’écoute est active
Android
Section titled “Android”- Nécessite Android 6.0 (API 23)+
- Utilise des capteurs accéléromètres et magnétomètres
- Aucune autorisation spéciale requise pour les capteurs de boussole
- Le cap est calculé à partir de la fusion des capteurs
###Web
- Non pris en charge sur la plateforme Web
- Les méthodes généreront des erreurs lorsqu’elles seront appelées