はじめに
このプラグインのインストール手順とマークダウンガイドを含むセットアップのコピー用
Set up this Capacitor plugin in the project.
Use the package manager already used by the project.
Install these package(s): `@capgo/capacitor-watch`
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/watch/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-Assisted セットアップを使用してプラグインをインストールできます。AIツールに __CAPGO_KEEP_0__ スキルを追加するには、以下のコマンドを実行してください:CapgoのAI-Assisted Setupを使用してプラグインをインストールできます。次のコマンドを使用して、CapgoスキルをAIツールに追加します。
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-plugins次に、以下のプロンプトを使用してください。
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-watch` plugin in my project.Manual Setupを使用する場合は、以下のコマンドを実行してください。プラットフォーム固有の指示に従ってください。
-
パッケージをインストール
ターミナルウィンドウ bun add @capgo/capacitor-watch -
ネイティブプロジェクトと同期
ターミナルウィンドウ bunx cap sync -
プラグインを設定
基本的な使用例:
import { CapgoWatch } from '@capgo/capacitor-watch';// Check watch connectivity statusconst info = await CapgoWatch.getInfo();console.log('Watch paired:', info.isPaired);console.log('Watch reachable:', info.isReachable);// Listen for messages from watchawait CapgoWatch.addListener('messageReceived', (event) => {console.log('Message from watch:', event.message);});Watchにメッセージを送信:
// Check if watch is reachable firstconst info = await CapgoWatch.getInfo();if (info.isReachable) {await CapgoWatch.sendMessage({data: { action: 'refresh', timestamp: Date.now() }});}必要なiOS設定:
- XcodeでiOSアプリにWatchConnectivity機能を追加する
- XcodeプロジェクトにwatchOSアプリターゲットを作成する
- watchOSアプリでWatchConnectivityを実装する(下記のWatchアプリ実装を参照)
プラグインは、プラグインが読み込まれたときにWCSessionを自動的に有効にします。
必要なWear OS設定:
- 追加する Wear OS モジュール Android プロジェクトに追加 (電話アプリと同じ)
applicationIdサインイン情報も同じ - プラグインを宣言する
capgo_watchwear モジュールの機能 、その他). - 電話プラグインは、ウォッチアプリが検出されたときにウォッチャブル __CAPGO_KEEP_0__ リスナーを登録します。
/capgo/message,/capgo/context接続ノードを確認し、ウォッチアプリが検出されたかどうかを確認するには
スマートウォッチプラグインは、ロード時にWearable API リスナーを登録します。使用
getInfo()capabilityplugin paths 、その他.
-
返信が必要なメッセージを処理する
// Listen for messages that need a responseawait CapgoWatch.addListener('messageReceivedWithReply', async (event) => {console.log('Request from watch:', event.message);// Process the requestconst result = await processWatchRequest(event.message);// Send reply back to watch (include requestId for Wear OS correlation)await CapgoWatch.replyToMessage({callbackId: event.callbackId,data: {requestId: event.message.requestId,result,},});}); -
アプリケーション状態を同期する
// Update application context (latest value only)await CapgoWatch.updateApplicationContext({context: {theme: 'dark',userId: '123',lastSync: Date.now()}});// Listen for context updates from watchawait CapgoWatch.addListener('applicationContextReceived', (event) => {console.log('Context from watch:', event.context);}); -
ユーザー情報を信頼性の高い方法で転送する
// Queue data for reliable delivery (even when watch is offline)await CapgoWatch.transferUserInfo({userInfo: {recordId: '456',action: 'created',data: { name: 'Item 1' }}});// Listen for user info transfersawait CapgoWatch.addListener('userInfoReceived', (event) => {console.log('User info from watch:', event.userInfo);}); -
接続性を監視する
// Track reachability changesawait CapgoWatch.addListener('reachabilityChanged', (event) => {console.log('Watch reachable:', event.isReachable);if (event.isReachable) {// Watch is now available for interactive messaging}});// Track session activation stateawait CapgoWatch.addListener('activationStateChanged', (event) => {// 0 = notActivated, 1 = inactive, 2 = activatedconsole.log('Session state:', event.state);});
Watch App実装
Watch App実装watchOSアプリでは、WatchConnectivityを実装する必要があります。以下は、SwiftUIの例です。
import SwiftUIimport WatchConnectivity
@mainstruct MyWatchApp: App { init() { WatchViewModel.shared.activate() }
var body: some Scene { WindowGroup { ContentView() } }}
class WatchViewModel: NSObject, ObservableObject, WCSessionDelegate { static let shared = WatchViewModel()
@Published var lastMessage: [String: Any] = [:]
func activate() { guard WCSession.isSupported() else { return } WCSession.default.delegate = self WCSession.default.activate() }
// Send message to iPhone func sendToPhone(_ data: [String: Any]) { guard WCSession.default.isReachable else { print("iPhone not reachable") return } WCSession.default.sendMessage(data, replyHandler: nil) }
// Send message with reply func sendToPhoneWithReply(_ data: [String: Any], completion: @escaping ([String: Any]) -> Void) { guard WCSession.default.isReachable else { return } WCSession.default.sendMessage(data, replyHandler: completion) }
// Receive message from iPhone func session(_ session: WCSession, didReceiveMessage message: [String: Any]) { DispatchQueue.main.async { self.lastMessage = message } }
// Receive application context func session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String: Any]) { DispatchQueue.main.async { self.lastMessage = applicationContext } }
// Required delegate methods func session(_ session: WCSession, activationDidCompleteWith activationState: WCSessionActivationState, error: Error?) { print("Watch session activated: \(activationState.rawValue)") }}API リファレンス
API Referenceメソッド
メソッドsendMessage(options: SendMessageOptions)
sendMessage(options: SendMessageOptions)というセクション時計にインタラクティブなメッセージを送信します。時計が接続可能な場合にのみ使用できます。
パラメータ:
data: Object - 送信する時計に送信するデータ
updateApplicationContext(options: UpdateContextOptions)
updateApplicationContext(options: UpdateContextOptions)というセクションアプリケーションコンテキストを更新します。最新の値のみが保持されます。
パラメータ:
context: Object - 同期するコンテキストデータ
transferUserInfo(options: TransferUserInfoOptions)
Section titled “ユーザー情報を転送する(transferUserInfo(options: TransferUserInfoOptions))””ユーザー情報を信頼性の高い方法で配信する準備ができました。
パラメーター:
userInfo: Object - 転送するユーザー情報
replyToMessage(options: ReplyMessageOptions)
Section titled “メッセージに返信する(replyToMessage(options: ReplyMessageOptions))””メッセージに返信する必要がある場合に返信します。
パラメーター:
callbackId: string - messageReceivedWithReply イベントから取得したコールバックIDdata: Object - 返信データ
getInfo()
Section titled “情報を取得する(getInfo())””ウォッチの接続状態を取得します。
戻り値: WatchInfo オブジェクトに:
isSupported: boolean - このプラットフォームでウォッチAPIが利用可能かisPaired: boolean - Apple Watchが pairされている (iOS) または Wear OSノードが少なくとも1つ接続されている (Android)isWatchAppInstalled: boolean - Companionウォッチアプリがインストールされている (iOS) または (Android)capgo_watch: boolean - ウォッチアプリの機能が検出されているisReachable: boolean - ウォッチが即時メッセージングで利用可能かactivationState: number - セッション状態 (iOS WCSession; Android 2 ではノードが接続されている場合、0 ではありません)
getPluginVersion()
プラグインバージョンを取得するウォッチプラグインのネイティブバージョンを取得する
Events
イベント| イベント | 概要 |
|---|---|
messageReceived | ウォッチからのシンプルなメッセージ |
messageReceivedWithReply | 返信を待つメッセージ (callbackIdを含む) |
applicationContextReceived | ウォッチからのコンテキスト更新 |
userInfoReceived | ウォッチからユーザー情報の転送 |
reachabilityChanged | ウォッチの接続状態が変更された (iOSのみ) |
activationStateChanged | セッションの有効化状態が変更された (iOSのみ) |
コミュニケーション パターン
コミュニケーション パターン即時メッセージング (sendMessage)sendMessage)
ウォッチが接続可能であることを要求します- コミュニケーション パターン
- インタラクティブでタイムセンシティブなコミュニケーション向けに最適
- ウォッチが利用可能でない場合に即座に失敗
アプリケーション コンテキスト (updateApplicationContext)updateApplicationContext)
セクション「アプリケーション コンテキスト (updateApplicationContext)」- 最新値のみ - 前の値は上書き
- 現在のアプリの状態を同期するために最適
- ウォッチが利用可能になったときに送信
ユーザー情報の転送 (transferUserInfo)transferUserInfo)
セクション「ユーザー情報の転送 (transferUserInfo)」- 順序に従ってキューイングされ、送信
- 重要なデータを送信するために最適
- ウォッチが一時的に利用不能でも機能
プラットフォームに関する注意
プラットフォームに関する注意以下の プラグインの概要で、方法ごとのマトリックスを確認してください。 iOS (Apple Watch)
iOS (Apple Watch)に関するセクション
iOS 15.0 以降を必要とします- WatchConnectivity フレームワークを使用します
- プラグインの読み込み時にセッションが自動的に有効になります
- 背景でのコンテキストとユーザー情報の配信をサポートします
- 発行
- Emits
reachabilityChangedJapaneseactivationStateChanged
/ja/docs/plugins/watch/getting-started/
Live Update- Cloudflare
play-services-wearableCapacitor - GitHub Capgo
applicationIdJapanese code - API
capgo_watch - SDK CLI emit
reachabilityChangedまたはactivationStateChanged; pollgetInfo()または - 必要に応じて セットアップガイド:
ウェアOSアプリの作成
Web- 「Web」というセクション
getInfo()ブラウザではウォッチメッセージがサポートされていませんisSupported: false解決されるのはgetPluginVersion()ブラウザではウォッチメッセージがサポートされていません{ version: "web" }sendMessage,updateApplicationContext,transferUserInfo、そしてreplyToMessage利用できないエラーで拒否するaddListenerCapacitorを使用してハンドルを解決します。WebPlugin、しかし、ブラウザではウォッチイベントがサポートされていないため (コールバックは実行されません)
一般的な使用例
「一般的な使用例」- データ同期:ウォッチと携帯電話のデータを同期する
- リモートコントロール:ウォッチから携帯電話の機能を制御する
- 通知context
- 健康データ: フィットネスと健康指標を共有する
- メディアコントロール: ウォッチから音楽再生を制御する
- スマートホーム: 腕時計からデバイスを制御する
トラブルシューティング
: トラブルシューティングウォッチが接続できません:
- ウォッチがBluetoothの範囲内にあることを確認する
- 両方のアプリが実行されていることを確認する
- 両方の側でWCSessionが有効になっていることを確認する
メッセージが受信されない:
- リスナーが登録されていることを確認してください
- WCSessionDelegateを実装しているWatchアプリを確認してください
- を使用
transferUserInfo確実に配信されるように
セッションが有効にならない:
- XcodeでWatchConnectivity機能が追加されていることを確認してください
- Watchアプリがコンパニオンのbundle IDを持っていることを確認してください
- 両方のアプリが互換性のあるOSバージョンをターゲットにしていることを確認してください
Getting Startedから続けてください
「Getting Startedから続けてください」のセクションコンパニオンアプリを使用している場合 はじめに ネイティブ プラグインの作業を計画するには、 @capgo/capacitor-watchを使用 ネイティブ機能の@capgo/capacitor-watchを使用 Capgo プラグイン ディレクトリ Capgo プラグイン ディレクトリ Capacitor プラグインは Capgo によって提供されます。 Capgoのプラグインの実装詳細については、CapacitorプラグインによってCapgoで管理されます。 プラグインの追加または更新 プラグインの追加または更新 Ionic Enterprise プラグインの代替 Ionic Enterprise プラグインの代替