指南
如何在 Capacitor 中使用 Watch
使用 @capgo/capacitor-watch
适用于 Capacitor 的 Apple Watch 通信插件。通过 WatchConnectivity 实现 iPhone 与 Apple Watch 之间的双向消息传递。
安装
bun add @capgo/capacitor-watch
bunx cap sync
插件暴露的内容
sendMessage- 向手表发送交互式消息。需确保手表在线才能成功。适用于对时间敏感的交互式通信。updateApplicationContext- 更新与手表共享的应用上下文。仅保留最新的上下文——这会覆盖之前的任何上下文。适用于同步手表需要展示的应用状态。transferUserInfo- 将用户信息传输至手表。传输任务会进入队列并按顺序交付,即使手表当前无法连接。适用于必须可靠交付的重要数据。replyToMessage- 回复手表发出的回复请求。请在响应 messageReceivedWithReply 事件时使用此功能。
用法示例
sendMessage
向手表发送交互式消息。需确保手表在线才能成功。适用于对时间敏感的交互式通信。
import { CapgoWatch } from '@capgo/capacitor-watch';
await CapgoWatch.sendMessage({
data: { action: 'refresh', timestamp: Date.now() }
});
updateApplicationContext
更新与 watch 共享的应用上下文。仅保留最新的上下文——这会覆盖之前的任何上下文。用于同步 watch 需要展示的应用状态。
import { CapgoWatch } from '@capgo/capacitor-watch';
await CapgoWatch.updateApplicationContext({
context: { theme: 'dark', lastSync: Date.now() }
});
transferUserInfo
将用户信息传输至 watch。传输任务会进入队列并按顺序交付,即使 watch 当前无法连接。适用于必须可靠交付的重要数据。
import { CapgoWatch } from '@capgo/capacitor-watch';
await CapgoWatch.transferUserInfo({
userInfo: { recordId: '123', action: 'created' }
});
replyToMessage
回复 watch 发来的、要求回复的消息。请在响应 messageReceivedWithReply 事件时使用此方法。
import { CapgoWatch } from '@capgo/capacitor-watch';
CapgoWatch.addListener('messageReceivedWithReply', async (event) => {
const result = await processRequest(event.message);
await CapgoWatch.replyToMessage({
callbackId: event.callbackId,
data: { result }
});
});
完整参考
- GitHub: https://github.com/Cap-go/capacitor-watch/
- 文档:/docs/plugins/watch/
继续阅读:使用 @capgo/capacitor-watch
如果你正在使用 使用 @capgo/capacitor-watch 要规划原生插件工作,请将其与 @capgo/capacitor-watch 有关 @capgo/capacitor-watch 的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。