Guide
Comment utiliser Compass dans Capacitor
Utilisation de @capgo/capacitor-compass
Capacitor Plugin Compass pour lire le cap du compas de l'appareil.
Installer
bun add @capgo/capacitor-compass
bunx cap sync
bunx cap sync copie le code natif du plugin dans vos projets natifs. Relancez-l’après chaque mise à jour du plugin.
Importer
import { CapgoCompass } from '@capgo/capacitor-compass';
Aperçu de API
| Méthode | Description |
|---|---|
getCurrentHeading |
Récupérez le cap actuel de la boussole en degrés. Sur iOS, le cap est mis à jour en arrière-plan et la dernière valeur est renvoyée. Sur Android, le cap est calculé lors de l'appel de la méthode via les capteurs accéléromètre et magnétomètre. Non implémenté sur le Web. |
startListening |
Commencez à écouter les changements de cap du compas via des événements. Cela active les capteurs du compas et émet des événements 'headingChange'. |
stopListening |
Arrêtez l'écoute des changements de cap du compas. Cela désactive les capteurs du compas et l'émission d'événements. |
checkPermissions |
Vérifiez le statut actuel des autorisations pour accéder aux données de la boussole. Sur iOS, cela vérifie le statut des autorisations de localisation. Sur Android, cela renvoie toujours 'granted' car aucune autorisation n'est requise. |
requestPermissions |
Demandez la permission d'accéder aux données de la boussole. Sur iOS, cela demande la permission de localisation (requise pour les données de cap). Sur Android, cela se résout immédiatement car aucune permission n'est requise. |
watchAccuracy |
Commencez à surveiller la précision de la boussole. Sur Android, cela surveille la précision du magnétomètre et émet des événements accuracyChange. Les développeurs peuvent écouter ces événements et implémenter leur propre interface pour les prompts de calibration. Sur iOS et le Web, cette méthode ne fait rien car la surveillance de la précision de la boussole n'est pas disponible. |
unwatchAccuracy |
Arrêter la surveillance de la précision de la boussole. Cela interrompt le suivi de la précision. |
getAccuracy |
Obtenir le niveau de précision actuel de la boussole. Sur Android, retourne la précision actuelle du capteur magnétomètre. Sur iOS et le Web, retourne toujours CompassAccuracy.UNKNOWN car la surveillance de la précision n'est pas disponible. |
Exemples
getCurrentHeading()
Récupérez le cap actuel de la boussole en degrés. Sur iOS, le cap est mis à jour en arrière-plan et la dernière valeur est renvoyée. Sur Android, le cap est calculé lors de l'appel de la méthode via les capteurs accéléromètre et magnétomètre. Non implémenté sur le Web.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');
startListening()
Commencez à écouter les changements de cap du compas via des événements. Cela active les capteurs du compas et émet des événements 'headingChange'.
import { CapgoCompass } from '@capgo/capacitor-compass';
// With default throttling (100ms interval, 2° minimum change)
await CapgoCompass.startListening();
// With custom throttling for high-frequency updates
await CapgoCompass.startListening({
minInterval: 50, // 50ms between events
minHeadingChange: 1.0 // 1° minimum change
});
CapgoCompass.addListener('headingChange', (event) => {
console.log('Heading:', event.value);
});
stopListening()
Arrêtez l'écoute des changements de cap du compas. Cela désactive les capteurs du compas et l'émission d'événements.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
checkPermissions()
Vérifiez le statut actuel des autorisations pour accéder aux données de la boussole. Sur iOS, cela vérifie le statut des autorisations de localisation. Sur Android, cela renvoie toujours 'granted' car aucune autorisation n'est requise.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);
requestPermissions()
Demandez la permission d'accéder aux données de la boussole. Sur iOS, cela demande la permission de localisation (requise pour les données de cap). Sur Android, cela se résout immédiatement car aucune permission n'est requise.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}
watchAccuracy()
Commencez à surveiller la précision de la boussole. Sur Android, cela surveille la précision du magnétomètre et émet des événements accuracyChange. Les développeurs peuvent écouter ces événements et implémenter leur propre interface pour les prompts de calibration. Sur iOS et le Web, cette méthode ne fait rien car la surveillance de la précision de la boussole n'est pas disponible.
import { CapgoCompass, CompassAccuracy } from '@capgo/capacitor-compass';
// Start monitoring accuracy
await CapgoCompass.watchAccuracy();
// Listen for accuracy changes and implement custom UI
CapgoCompass.addListener('accuracyChange', (event) => {
console.log('Accuracy changed to:', event.accuracy);
if (event.accuracy < CompassAccuracy.MEDIUM) {
// Show your custom calibration UI
}
});
Le tableau ci-dessus liste les 8 méthodes principales. Les helpers de listener et de version, ainsi que le contrat complet de chaque méthode, sont documentés dans le dépôt GitHub.
Écouter les événements
addListener renvoie un handle. Appelez handle.remove() lors du démontage de l'écran, ou CapgoCompass.removeAllListeners() pour supprimer tous les listeners.
Référence complète
Continuer avec l'utilisation de @capgo/capacitor-compass
Si vous utilisez Utiliser @capgo/capacitor-compass pour planifier les opérations du dashboard et de API, connectez-l’avec @capgo/capacitor-compass pour les détails d'implémentation dans @capgo/capacitor-compass, Prise en main pour les détails d'implémentation dans Getting Started Aperçu de API pour les détails d'implémentation dans « Vue d'ensemble de API », Introduction pour les détails d'implémentation dans l'Introduction, et Clés API pour les détails d'implémentation dans les clés API.