Primeros pasos
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este 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.
Instalar
Sección titulada “Instalación”Puedes usar nuestro setup asistido por IA para instalar el plugin. Añade las skills de Capgo a tu herramienta de IA con el siguiente comando:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsLuego usa el siguiente prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-uwb` plugin in my project.Si prefieres la configuración manual, instala el plugin ejecutando estos comandos y sigue las instrucciones de cada plataforma:
bun add @capgo/capacitor-uwbbunx cap syncImportar
Sección titulada “Importar”import { CapacitorUwb } from '@capgo/capacitor-uwb';Inicio rápido
Sección titulada “Inicio rápido”import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.isAvailable();console.log(result);Ejemplo: getDiscoveryToken
Sección titulada “Ejemplo: getDiscoveryToken”import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.getDiscoveryToken();// The result holds sensitive values: use it without logging it.Ejemplo: startPeerSession
Sección titulada “Ejemplo: startPeerSession”import { CapacitorUwb } from '@capgo/capacitor-uwb';
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: 'peer-discovery-token-123' });Errores comunes
Sección titulada “Errores comunes”- Listeners: elimina los handles cuando se desmonten las pantallas.
- Sync nativo: ejecuta
bunx cap synctras actualizar los plugins. - Fuente de verdad: confianza
src/definitions.tsen el repo de GitHub.
Comprobar disponibilidad
Sección titulada “Comprobar disponibilidad”const availability = await CapacitorUwb.isAvailable();
if (!availability.supported) { console.log('This device does not support UWB.');}Sesión peer de iOS
Sección titulada “Sesión peer de iOS”- Llama a
getDiscoveryToken()en ambos dispositivos. - Intercambia los tokens base64 devueltos por un canal externo.
- Empieza el ranging con el peer token.
const { discoveryToken } = await CapacitorUwb.getDiscoveryToken();
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: '<peer-token-base64>',});Ver iOS setup para requisitos de permisos y capacidades.
Sesión Android Controller / Controlee
Sección titulada “Android Controller / Controlee Session”- El controller llama a
startControllerSession()y comparte el resultado obtenidorangingParametersylocalAddress. - El controlee construye su propio
rangingParameters, usando el controllerlocalAddresscomopeerAddress. - El dispositivo controlado llama a
startControleeSession({ rangingParameters }). - Opcionalmente, pasa
peerAddressal controlador una vez que se conoce la dirección del dispositivo controlado.
const controller = await CapacitorUwb.startControllerSession();
await CapacitorUwb.startControleeSession({ rangingParameters: { ...controller.rangingParameters, peerAddress: controller.localAddress, },});Ver Configuración de Android para requisitos de hardware y permisos.
Escuchar actualizaciones
Sección titulada “Escuchar actualizaciones”await CapacitorUwb.addListener('rangingUpdate', (event) => { console.log(event.distanceMeters, event.direction);});
await CapacitorUwb.addListener('sessionStateChanged', (event) => { console.log(event.state, event.reason);});Detener la sesión
Sección titulada “Stop The Session”await CapacitorUwb.stopSession();Fuente de verdad
Sección titulada “Fuente de verdad”Esta página se genera a partir del plugin src/definitions.ts. Actualiza las definiciones de TypeScript y ejecuta bun run docgen en el repositorio del plugin para refrescar la documentación generada de API.