Utilizzando @capgo/capacitor-compass
Interfaccia plugin Compass di Capacitor per la lettura della direzione del compasso del dispositivo.
Installa
bun add @capgo/capacitor-compass
bunx cap sync
bunx cap sync copia il nativo code del plugin nei tuoi progetti nativi. Esegui nuovamente dopo ogni aggiornamento del plugin.
Importa
import { CapgoCompass } from '@capgo/capacitor-compass';
API in un colpo d'occhio
| Metodo | Descrizione |
|---|---|
getCurrentHeading |
Ottieni l'attuale orientamento del compasso in gradi. Su iOS, l'orientamento viene aggiornato in background e il valore più recente viene restituito. Su Android, l'orientamento viene calcolato quando il metodo viene chiamato utilizzando i sensori accelerometro e magnetometro. Non implementato su Web. |
startListening |
Inizia a ricevere cambiamenti dell'orientamento del compasso tramite eventi. Ciò attiva i sensori del compasso e emette eventi di tipo 'headingChange'. |
stopListening |
Smetti di ricevere cambiamenti dell'orientamento del compasso. Ciò ferma i sensori del compasso e ferma l'emissione di eventi. |
checkPermissions |
Controlla lo stato di autorizzazione corrente per accedere ai dati del compasso. Su iOS, ciò controlla lo stato di autorizzazione per la localizzazione. Su Android, ciò restituisce sempre 'granted' poiché non sono richieste autorizzazioni. |
requestPermissions |
Richiedi l'autorizzazione per accedere ai dati del compasso. Su iOS, ciò richiede l'autorizzazione per la localizzazione (richiesta per i dati di orientamento). Su Android, ciò risolve immediatamente poiché non sono richieste autorizzazioni. |
watchAccuracy |
Inizia a monitorare l'accuratezza del compasso. Su Android, ciò monitora l'accuratezza del magnetometro e emette eventi di tipo accuracyChange. I sviluppatori possono ascoltare questi eventi e implementare la propria UI per le richieste di calibrazione. Su iOS e Web, questo metodo non fa nulla poiché la monitorazione dell'accuratezza del compasso non è disponibile. |
unwatchAccuracy |
Smetti di monitorare l'accuratezza del compasso. Ciò ferma la monitorazione dell'accuratezza. |
getAccuracy |
Ottieni il livello di accuratezza corrente del compasso. Su Android, restituisce l'accuratezza corrente del sensore magnetometro. Su iOS e Web, sempre restituisce CompassAccuracy.UNKNOWN poiché la monitoraggio dell'accuratezza non è disponibile. |
Esempi
getCurrentHeading()
Ottieni l'attuale orientamento del compasso in gradi. Su iOS, l'orientamento viene aggiornato in background e il valore più recente viene restituito. Su Android, l'orientamento viene calcolato quando il metodo viene chiamato utilizzando i sensori accelerometro e magnetometro. Non implementato su Web.
import { CapgoCompass } from '@capgo/capacitor-compass';
const { value } = await CapgoCompass.getCurrentHeading();
console.log('Compass heading:', value, 'degrees');
startListening()
Inizia ad ascoltare i cambiamenti dell'orientamento del compasso tramite eventi. Ciò avvia i sensori del compasso e emette eventi di tipo '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()
Smetti di ascoltare le variazioni del capocchiale. Questo ferma i sensori del capocchiale e ferma l'emissione degli eventi.
import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();
checkPermissions()
Controlla lo stato di autorizzazione corrente per accedere ai dati del compasso. Su iOS, ciò controlla lo stato di autorizzazione per la localizzazione. Su Android, ciò restituisce sempre 'granted' poiché non sono richieste autorizzazioni.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.checkPermissions();
console.log('Compass permission:', status.compass);
requestPermissions()
Richiedi l'autorizzazione per accedere ai dati del compasso. Su iOS, ciò richiede l'autorizzazione per la localizzazione (richiesta per i dati di orientamento). Su Android, ciò risolve immediatamente poiché non sono richieste autorizzazioni.
import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}
watchAccuracy()
Inizia a monitorare l'accuratezza del compasso. Su Android, ciò monitora l'accuratezza del sensore magnetometro e emette eventi di tipo accuracyChange. I sviluppatori possono ascoltare questi eventi e implementare la propria UI per le richieste di calibrazione. Su iOS e Web, questo metodo non fa nulla poiché la monitoraggio dell'accuratezza del compasso non è disponibile.
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
}
});
La tabella sopra elenca le 8 metodologie di base. I listener e gli aiuti di versione, nonché il contratto completo di ogni metodo, sono documentati nella repository di GitHub.
Ascolta gli eventi
addListener ritorna un handle. Chiama handle.remove() quando lo schermo viene smontato, o CapgoCompass.removeAllListeners() per cancellare ogni ascoltatore.
Riferimento completo
Continua da Utilizza @capgo/capacitor-compass
Se stai utilizzando Utilizzando @capgo/capacitor-compass per pianificare il dashboard e le operazioni di API, connettilo con @capgo/capacitor-compass per i dettagli di implementazione in @capgo/capacitor-compass Getting Started per i dettagli di implementazione in Avvio Panoramica di API per i dettagli di implementazione in Panoramica di API Introduzione per i dettagli di implementazione in Introduzione, e Chiavi di API per i dettagli di implementazione in Chiavi di API