Per iniziare
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-uwb`
Run the required Capacitor sync/update step after installation.
Read this markdown guide for the full setup steps: https://raw.githubusercontent.com/Cap-go/website/refs/heads/main/apps/docs/src/content/docs/docs/plugins/uwb/getting-started.mdx
Use that guide for platform-specific steps, native file edits, permissions, config changes, imports, and usage setup.
If that guide references other docs pages, read them too.
Puoi usare il nostro setup assistito dall'IA per installare il plugin. Aggiungi le skill Capgo al tuo strumento di IA usando il seguente comando:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsPoi usa il seguente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-uwb` plugin in my project.Se preferisci la configurazione manuale, installa il plugin eseguendo questi comandi e segui le istruzioni specifiche per piattaforma qui sotto:
bun add @capgo/capacitor-uwbbunx cap syncImporta
Sezione intitolata “Import”import { CapacitorUwb } from '@capgo/capacitor-uwb';Avvio rapido
Sezione intitolata “Quick start”import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.isAvailable();console.log(result);Esempio: getDiscoveryToken
Sezione intitolata “Esempio: getDiscoveryToken”import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.getDiscoveryToken();// The result holds sensitive values: use it without logging it.Esempio: startPeerSession
Sezione intitolata “Esempio: startPeerSession”import { CapacitorUwb } from '@capgo/capacitor-uwb';
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: 'peer-discovery-token-123' });Errori comuni
Sezione intitolata “Errori comuni”- Listener: rimuovi gli handle quando gli schermi vengono smontati.
- Sync nativo: esegui
bunx cap syncdopo gli aggiornamenti dei plugin. - Fonte di verità: fidati
src/definitions.tsnel repo GitHub.
Verifica disponibilità
Sezione intitolata “Verifica disponibilità”const availability = await CapacitorUwb.isAvailable();
if (!availability.supported) { console.log('This device does not support UWB.');}Peer Session su iOS
Sezione intitolata “iOS Peer Session”- Chiama
getDiscoveryToken()su entrambi i dispositivi. - Scambia i token base64 ricevuti tramite un canale esterno.
- Inizia il ranging con il peer token.
const { discoveryToken } = await CapacitorUwb.getDiscoveryToken();
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: '<peer-token-base64>',});Vedi Setup iOS per i requisiti di capacità e permessi.
Sessione Controller / Controlee su Android
Sezione intitolata “Android Controller / Controlee Session”- Il controller chiama
startControllerSession()e condivide il risultato restituitorangingParameterselocalAddress. - Il controlee crea il proprio
rangingParameters, usando il controllerlocalAddresscomepeerAddress. - Il controlee chiama
startControleeSession({ rangingParameters }). - Opzionalmente passa
peerAddressal controller una volta noto l'indirizzo del controlee.
const controller = await CapacitorUwb.startControllerSession();
await CapacitorUwb.startControleeSession({ rangingParameters: { ...controller.rangingParameters, peerAddress: controller.localAddress, },});Vedi Configurazione Android per i requisiti hardware e i permessi.
Ascolta gli aggiornamenti
Sezione intitolata “Ascolta gli aggiornamenti”await CapacitorUwb.addListener('rangingUpdate', (event) => { console.log(event.distanceMeters, event.direction);});
await CapacitorUwb.addListener('sessionStateChanged', (event) => { console.log(event.state, event.reason);});Ferma la sessione
Sezione intitolata “Stop The Session”await CapacitorUwb.stopSession();Fonte di verità
Sezione intitolata “Fonte di verità”Questa pagina è generata dal src/definitions.ts. Aggiorna le definizioni TypeScript ed esegui bun run docgen nel repository del plugin per aggiornare la documentazione API generata.