Saltare al contenuto

Inizia

Finestra del terminale
bun add @capgo/capacitor-compass
bunx cap sync
import { CapgoCompass } from '@capgo/capacitor-compass';

Ottenere l'attuale direzione del compasso in gradi. Su iOS, la direzione viene aggiornata in background e il valore più recente viene restituito. Su Android, la direzione viene calcolata quando viene chiamato il metodo utilizzando 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');

Inizia ad ascoltare per i cambiamenti della direzione del compasso tramite eventi. Questo avvia i sensori del compasso e emette eventi ‘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);
});

Smetti di ascoltare per i cambiamenti della direzione del compasso. Questo ferma i sensori del compasso e ferma l'emissione degli eventi.

import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.stopListening();

Controlla lo stato di autorizzazione corrente per l'accesso ai dati del compasso. Su iOS, questo controlla lo stato di autorizzazione per la posizione. Su Android, questo 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);

Richiedi il permesso di accedere ai dati del compasso. Su iOS, ciò richiede il permesso di localizzazione (richiesto per i dati di orientamento). Su Android, ciò risolve immediatamente poiché non sono richiesti alcun permesso.

import { CapgoCompass } from '@capgo/capacitor-compass';
const status = await CapgoCompass.requestPermissions();
if (status.compass === 'granted') {
// Can now use compass
}

Inizia a monitorare l'accuratezza del compasso. Su Android, ciò monitora l'accuratezza del sensore magnetometro e emette eventi di cambio di accuratezza. 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.

import { CapgoCompass } 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
}
});

Fermati di monitorare l'accuratezza del compasso. Ciò ferma la monitorazione dell'accuratezza.

import { CapgoCompass } from '@capgo/capacitor-compass';
await CapgoCompass.unwatchAccuracy();

Ottieni il livello di accuratezza corrente del compasso. Su Android, restituisce l'accuratezza corrente del sensore magnetometro. Su iOS e Web, restituisce sempre CompassAccuracy.UNKNOWN poiché la monitorazione dell'accuratezza non è disponibile.

import { CapgoCompass } from '@capgo/capacitor-compass';
const { accuracy } = await CapgoCompass.getAccuracy();
if (accuracy < CompassAccuracy.MEDIUM) {
console.log('Compass needs calibration');
}

Risultato contenente il valore di orientamento del compasso.

export interface CompassHeading {
/** Compass heading in degrees (0-360) */
value: number;
}

Opzioni per la configurazione del comportamento di ascolto del compasso.

export interface ListeningOptions {
/**
* Minimum interval between heading change events in milliseconds.
* Lower values = more frequent updates but higher CPU/battery usage.
*
* @default 100
* @since 8.1.4
*/
minInterval?: number;
/**
* Minimum heading change in degrees required to trigger an event.
* Lower values = more sensitive but more events.
* Handles wraparound (e.g., 359° to 1° = 2° change).
*
* @default 2.0
* @since 8.1.4
*/
minHeadingChange?: number;
}

Dati dell'evento per il cambio di orientamento.

export interface HeadingChangeEvent {
/** Compass heading in degrees (0-360) */
value: number;
}

Dati dell'evento per il cambio di precisione.

export interface AccuracyChangeEvent {
/** Current accuracy level of the compass */
accuracy: CompassAccuracy;
}

Stato di autorizzazione per plugin di bussola.

export interface PermissionStatus {
/**
* Permission state for accessing compass/location data.
* On iOS, this requires location permission to access heading.
* On Android, no special permissions are required for compass sensors.
*
* @since 7.0.0
*/
compass: PermissionState;
}

Costanti di livello di accuratezza della bussola.

export enum CompassAccuracy {
/** High accuracy - approximates to less than 5 degrees of error */
HIGH = 3,
/** Medium accuracy - approximates to less than 10 degrees of error */
MEDIUM = 2,
/** Low accuracy - approximates to less than 15 degrees of error */
LOW = 1,
/** Unreliable accuracy - approximates to more than 15 degrees of error */
UNRELIABLE = 0,
/** Unknown accuracy value */
UNKNOWN = -1,
}

Stato di autorizzazione per l'accesso alla bussola.

export type PermissionState = 'prompt' | 'prompt-with-rationale' | 'granted' | 'denied';

Questa pagina è generata dal plugin src/definitions.ts. Riavvia la sincronizzazione quando le informazioni pubbliche API cambiano in fase di sviluppo.