跳转到正文

@capgo/capacitor-watch

为 Capacitor 提供 Apple Watch 与 Wear OS 通信。支持 iPhone 与 watchOS(WatchConnectivity)或 Android 手机与 Wear OS(Data Layer)之间双向收发消息。

@capgo/capacitor-watch 将您的 Capacitor 手机 App 连接到配套手表 App:

  • iOS: WatchConnectivity 使用 watchOS target 和可选的 CapgoWatchSDK.
  • Android: Wear OS Data Layer (play-services-wearable),并在同一个 Android 项目中包含 Wear OS 模块。
  • Web 端:不支持手表消息传递; getInfo() 以及 getPluginVersion() 使用安全默认值进行解析;消息方法会 reject;监听器已注册但不会触发事件

以下功能与这些平台的原生实现一致: CapgoWatchPlugin.swift 以及 CapgoWatchPlugin.java.

能力iOS (Apple Watch)Android (Wear OS)Web 端
sendMessage支持。需要已激活的会话以及 isReachable.支持。在以下时间发送: /capgo/message 发送至已连接的节点。若未连接 Wear OS 节点则拒绝。否
updateApplicationContext支持。仅通过 WatchConnectivity 发送最新值。支持。DataItem 位于 /capgo/context 包含 JSON 格式的 payload.否
transferUserInfo支持。已排队的用户信息传输。支持。DataItem 位于 /capgo/userinfo/{uuid} 包含 JSON 格式的 payload.否
replyToMessage是的。在……之后 messageReceivedWithReply.是的。在……时发送 /capgo/reply/{callbackId} 到 watch 节点(待处理 TTL 为 5 分钟)。否
getInfo是的。支持 WatchConnectivity 配对与可达性。是的。已连接的节点以及 capgo_watch 用于检测 watch app 安装情况的能力。返回 isSupported: false
getPluginVersion是是返回 { version: "web" }
messageReceived是是的。传入 /capgo/message.仅注册;Web 端不触发事件
messageReceivedWithReply是是的。传入 /capgo/message/withreply.仅注册;Web 端不触发事件
applicationContextReceived是是的。传入 /capgo/context DataItem。仅注册;Web 端不触发事件
userInfoReceived是是的。传入 /capgo/userinfo/* (手机在送达后会删除该项)。仅注册;Web 端不触发事件
reachabilityChanged是Android 端不触发仅注册;Web 端不触发事件
activationStateChanged是Android 端不触发仅注册;Web 端不触发事件
  • sendMessage - 向手表发送交互式消息。操作成功的前提是手表必须在线。适用于对时间敏感的交互式通信。
  • updateApplicationContext - 更新与手表共享的应用上下文。仅保留最新的上下文——这会覆盖之前的任何上下文。适用于同步手表需要展示的应用状态。
  • transferUserInfo - 将用户信息传输至手表。传输任务会进入队列并按顺序交付,即使手表当前无法连接。适用于必须可靠交付的重要数据。
  • replyToMessage - 回复手表发出的回复请求。请在响应 messageReceivedWithReply 事件时使用此功能。
方法描述
sendMessage向手表发送交互式消息。操作成功的前提是手表必须在线。适用于对时间敏感的交互式通信。
updateApplicationContext更新与 watch 共享的应用上下文。仅保留最新的上下文——这会覆盖之前的任何上下文。用于同步 watch 需要展示的应用状态。
transferUserInfo将用户信息传输至 watch。传输任务会进入队列并按顺序交付,即使 watch 当前无法连接。适用于必须可靠交付的重要数据。
replyToMessage回复 watch 发来的、要求回复的消息。请在响应 messageReceivedWithReply 事件时使用此方法。
getInfo获取 watch 连接状态信息。
getPluginVersion获取原生 Capacitor 插件版本。
addListener监听来自 watch 的消息。
addListener监听来自 watch 且需要回复的消息。
addListener监听来自 watch 的应用上下文更新。
addListener监听来自 watch 的用户信息传输。
addListener监听 watch 可达性变化(仅限 iOS)。
addListener监听会话激活状态变化(仅限 iOS)。
removeAllListeners移除该插件的所有监听器。

此参考文档同步自 src/definitions.ts 中的 capacitor-watch.

如果你正在使用 @capgo/capacitor-watch 要规划迁移和企业运营,请将其与 使用 @capgo/capacitor-watch 用于《使用 @capgo/capacitor-watch》中的原生能力, Capgo 企业版 用于 Capgo Enterprise 中的产品工作流, Ionic Enterprise 插件替代方案 用于 Ionic Enterprise 插件替代方案的产品工作流, Capgo 替代方案 适用于 Capgo Alternatives 的产品工作流,以及 Capgo 咨询 适用于 Capgo Consulting 的产品工作流。