Getting Started
이 플러그인의 설치 단계와 전체 마크다운 가이드를 포함하여 __CAPGO_KEEP_0__를 복사할 수 있습니다.
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 설치를 사용하여 플러그인을 설치할 수 있습니다. 다음 명령어를 사용하여 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 -
__CAPGO_KEEP_0__ 설정
기본 사용 예시:
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);});__CAPGO_KEEP_2__
// Check if watch is reachable firstconst info = await CapgoWatch.getInfo();if (info.isReachable) {await CapgoWatch.sendMessage({data: { action: 'refresh', timestamp: Date.now() }});}__CAPGO_KEEP_0__ iOS 설정:
- iOS 앱에 WatchConnectivity 기능을 Xcode에서 추가하세요.
- watchOS 앱 목표를 Xcode 프로젝트에 생성하세요.
- watchOS 앱에서 WatchConnectivity를 implement하세요 (Watch App Implementation 참조)
플러그인은 플러그인이 로드될 때 자동으로 WCSession을 활성화합니다.
iOS에서만 Apple Watch가 지원됩니다. Android에서는 모든 메소드는 “iOS에서만 Apple Watch가 지원됩니다.” 오류로 거부됩니다.
getInfo()method returnsisSupported: false. -
__CAPGO_KEEP_0__
// 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 watchawait CapgoWatch.replyToMessage({callbackId: event.callbackId,data: { result }});}); -
__CAPGO_KEEP_0__
// 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);}); -
__CAPGO_KEEP_0__
// 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);}); -
__CAPGO_KEEP_0__
// 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);});
__CAPGO_KEEP_0__
__CAPGO_KEEP_0__Your watchOS app needs to implement WatchConnectivity. Here’s a SwiftUI example:
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 Reference
API ReferenceMethods
__CAPGO_KEEP_0__sendMessage(options: SendMessageOptions)
__CAPGO_KEEP_1____CAPGO_KEEP_1__
Parameters:
data__CAPGO_KEEP_2__ - __CAPGO_KEEP_3__
updateApplicationContext(options: UpdateContextOptions)
__CAPGO_KEEP_0____CAPGO_KEEP_4__
파라미터:
context: Object - sync하기 위한 컨텍스트 데이터
transferUserInfo(options: TransferUserInfoOptions)
‘transferUserInfo(options: TransferUserInfoOptions)’라는 제목을 가진 섹션신뢰할 수 있는 전달을 위해 사용자 정보를 대기열에 넣습니다.
파라미터:
userInfo: Object - 전달할 사용자 정보
replyToMessage(options: ReplyMessageOptions)
‘replyToMessage(options: ReplyMessageOptions)’라는 제목을 가진 섹션응답이 요청된 메시지에 대한 응답을 보내세요.
파라미터:
callbackId: string - messageReceivedWithReply 이벤트에서 콜백 IDdata: Object - 응답 데이터
getInfo()
‘getInfo()’라는 제목을 가진 섹션연결 상태를 감시합니다.
반환: WatchInfo 객체에 포함된 항목:
isSupported: boolean - WatchConnectivity가 사용 가능 여부isPaired: boolean - 시계가 pair된 여부isWatchAppInstalled: boolean - 시계 앱이 설치된 여부isReachable: boolean - 시계가 접속 가능한 여부activationState: number - 세션 상태 (0/1/2)
getPluginVersion()
버전을 가져옵니다.이벤트
이벤트
버전을 가져옵니다.| 이벤트 | 설명 |
|---|---|
messageReceived | 시계에서 오는 단순 메시지 |
messageReceivedWithReply | 대답을 기대하는 메시지 (callbackId 포함) |
applicationContextReceived | 시계에서 오는 컨텍스트 업데이트 |
userInfoReceived | 시계에서 오는 사용자 정보 |
reachabilityChanged | 시계와의 연결 상태가 변경되었습니다 |
activationStateChanged | 세션 활성화 상태가 변경되었습니다 |
통신 패턴
통신 패턴 섹션즉시 메시징 (sendMessage)sendMessage)
즉시 메시징 (sendMessage) 섹션- 시계가 연결 가능할 때까지 watch가 도달해야 함
- 사용자와 상호 작용하는 시간에 민감한 통신을 위해 가장 좋음
- 시계가 사용 가능하지 않으면 즉시 실패
응용 프로그램 컨텍스트 (updateApplicationContext)
응용 프로그램 컨텍스트 (updateApplicationContext)라는 제목의 섹션- 최신 값만 전달 - 이전 값은 덮어씌움
- 현재 앱 상태를 동기화하는 데 가장 좋음
- 시계가 사용 가능할 때 전달
사용자 정보 전송 (transferUserInfo)
사용자 정보 전송 (transferUserInfo)라는 제목의 섹션- 순서대로 큐에 저장되어 전달
- 중요한 데이터를 전달해야 하는 경우 가장 좋음
- __CAPGO_KEEP_0__
__CAPGO_KEEP_1__
플랫폼 참고 사항iOS
iOS- iOS 15.0 이상 필요
- WatchConnectivity 프레임워크 사용
- __CAPGO_KEEP_2__
- __CAPGO_KEEP_3__
__CAPGO_KEEP_4__
Android- Android
- 모든 메소드는 적절한 오류로 거부합니다.
getInfo()returnsisSupported: false
Web
Web 섹션- 지원하지 않음
- 모든 메소드는 사용할 수 없는 오류로 거부합니다.
getInfo()returnsisSupported: false
일반적인 사용 사례
일반적인 사용 사례 섹션- 데이터 동기화데이터를 모바일과 컴퓨터에 동기화하여 보관합니다.
- 원격 제어__CAPGO_KEEP_0__
- 알림__CAPGO_KEEP_0__
- 건강 데이터__CAPGO_KEEP_0__
- 미디어 제어__CAPGO_KEEP_0__
- 스마트 홈__CAPGO_KEEP_0__
문제 해결
__CAPGO_KEEP_0__시계가 연결되지 않음: __CAPGO_KEEP_0__
- __CAPGO_KEEP_0__의 Bluetooth 범위 내에 있어야 합니다.
- __CAPGO_KEEP_0__가 모두 실행 중인지 확인하세요.
- __CAPGO_KEEP_0__가 양쪽에서 활성화되어 있는지 확인하세요.
받지 못한 메시지:
- __CAPGO_KEEP_0__가 메시지를 보내기 전에 리스너가 등록되어 있는지 확인하세요.
- __CAPGO_KEEP_0__가 WCSessionDelegate를 implement하고 있는지 확인하세요.
- __CAPGO_KEEP_0__
transferUserInfo__CAPGO_KEEP_0__를 사용하여 보장된 전달을 보장하세요.
__CAPGO_KEEP_0__가 활성화되지 않은 경우:
- __CAPGO_KEEP_0__에서 WatchConnectivity 기능이 추가되어 있는지 확인하세요.
- __CAPGO_KEEP_0__가 동반 앱의 번들 ID를 가지고 있는지 확인하세요.
- 양쪽 앱이 호환 가능한 OS 버전을 대상으로하고 있는지 확인하세요.
시작부터 계속하기
시작부터 계속하기 섹션Capacitor를 사용 중이라면 Getting Started Capacitor를 사용하여 네이티브 플러그인 작업을 계획하고 싶다면, 그것을 Using @capgo/capacitor-watch Using @capgo/capacitor-watch에서 네이티브 기능을 사용할 때 Capgo 플러그인 디렉토리 Capgo 플러그인 디렉토리에서 제품 워크플로우를 사용할 때 Capacitor 플러그인들에 의해 Capgo Capacitor 플러그인들에 의해 Capgo에서 구현 세부 정보를 사용할 때 플러그인을 추가하거나 업데이트 __CAPGO_KEEP_0__ 구현 세부 사항에 대한 정보는 Adding or Updating Plugins 항목에서 찾을 수 있습니다. Ionic Enterprise Plugin 대체 옵션 __CAPGO_KEEP_0__ 제품 워크플로우는 Ionic Enterprise Plugin Alternatives 항목에서 설명되어 있습니다.