快速入门
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
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.
安装
“安装”章节你可以使用我们的 AI 辅助设置来安装插件。使用以下命令将 Capgo skills 添加到你的 AI 工具中:
bunx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins然后使用以下 prompt:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-uwb` plugin in my project.如果你更想手动设置,请运行以下命令安装插件,并按照下方各平台的说明操作:
bun add @capgo/capacitor-uwbbunx cap sync导入
“导入”章节import { CapacitorUwb } from '@capgo/capacitor-uwb';快速入门
章节标题为“快速入门”import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.isAvailable();console.log(result);示例:getDiscoveryToken
“示例:getDiscoveryToken”章节import { CapacitorUwb } from '@capgo/capacitor-uwb';
const result = await CapacitorUwb.getDiscoveryToken();// The result holds sensitive values: use it without logging it.示例:startPeerSession
“示例:startPeerSession”章节import { CapacitorUwb } from '@capgo/capacitor-uwb';
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: 'peer-discovery-token-123' });常见坑点
章节标题为“常见陷阱”- 监听器: 在页面卸载时移除句柄。
- 原生同步:运行
bunx cap sync在插件升级后。 - 唯一可信来源:信任
src/definitions.ts在 GitHub 仓库中。
检查可用性
“检查可用性”章节const availability = await CapacitorUwb.isAvailable();
if (!availability.supported) { console.log('This device does not support UWB.');}iOS 对等会话
“iOS Peer Session”章节- 调用
getDiscoveryToken()在两台设备上。 - 通过带外通道 (out-of-band) 交换返回的 base64 token。
- 使用对端 token 开始测距。
const { discoveryToken } = await CapacitorUwb.getDiscoveryToken();
await CapacitorUwb.startPeerSession({ peerDiscoveryToken: '<peer-token-base64>',});查看 iOS 配置 以了解功能和权限要求。
Android 控制端 / 被控端会话
标题为“Android 控制端 / 被控端会话”的章节- 控制端调用
startControllerSession()并共享返回的rangingParameters以及localAddress. - 被控端构建自己的
rangingParameters,使用控制端的localAddress命名为peerAddress. - 被控端调用
startControleeSession({ rangingParameters }). - 可选传入
peerAddress在获知被控端地址后传给控制器。
const controller = await CapacitorUwb.startControllerSession();
await CapacitorUwb.startControleeSession({ rangingParameters: { ...controller.rangingParameters, peerAddress: controller.localAddress, },});查看 Android 配置 硬件和权限要求。
监听更新
标题为“监听更新”的章节await CapacitorUwb.addListener('rangingUpdate', (event) => { console.log(event.distanceMeters, event.direction);});
await CapacitorUwb.addListener('sessionStateChanged', (event) => { console.log(event.state, event.reason);});await CapacitorUwb.stopSession();单一事实来源
标题为“单一事实来源”的部分本页面由插件的 src/definitions.ts. 更新 TypeScript 定义并运行 bun run docgen 在插件仓库中执行,以刷新生成的 API 文档。