Mulai Menggunakan
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
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.
Pemasangan
Bab berjudul “Pemasangan”Anda dapat menggunakan Setup Bantuan AI untuk menginstal plugin. Tambahkan Capgo kemampuan ke alat AI Anda menggunakan perintah berikut:
npx skills add https://github.com/Cap-go/capgo-skills --skill capacitor-pluginsKemudian gunakan prompt berikut:
Use the `capacitor-plugins` skill from `Cap-go/capgo-skills` to install the `@capgo/capacitor-watch` plugin in my project.Jika Anda lebih suka Setup Manual, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:
-
Install the package
Jendela terminal bun add @capgo/capacitor-watch -
Sinkronisasi dengan proyek asli
Jendela terminal bunx cap sync -
Konfigurasi plugin
Contoh Penggunaan Dasar:
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);});Kirim Pesan ke Watch:
// Check if watch is reachable firstconst info = await CapgoWatch.getInfo();if (info.isReachable) {await CapgoWatch.sendMessage({data: { action: 'refresh', timestamp: Date.now() }});}Pengaturan iOS yang Diperlukan:
- Tambahkan kemampuan WatchConnectivity ke aplikasi iOS Anda di Xcode
- Buat target aplikasi watchOS di proyek Xcode Anda
- Implementasikan WatchConnectivity di aplikasi watchOS Anda (lihat Implementasi Aplikasi Watch di bawah)
Plugin ini secara otomatis mengaktifkan WCSession ketika plugin dimuat.
Pengaturan Wear OS yang Diperlukan:
- Tambahkan __CAPGO_KEEP_0__ ke Android project (sama
applicationIddan tanda tangan sebagai aplikasi ponsel). - Mengumumkan
capgo_watchMembuat aplikasi Wear OS Membuat Aplikasi Wear OS). - Implementkan Pemangku Pendengar Data pada jam tangan menggunakan jalur plugin ("
/capgo/message,/capgo/contextdan lain-lain.
Pengguna plugin ponsel mendaftarkan pendengar Wearable API ketika plugin dimuat. Gunakan
getInfo()Periksa node yang terhubung dan apakah aplikasi watch terdeteksi.Full steps: Membuat Aplikasi Wear OS.
-
Balas pesan yang memerlukan jawaban
// 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,},});}); -
Sinkronkan status aplikasi
// 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);}); -
Transfer informasi pengguna secara andal
// 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);}); -
Pantau koneksi
// 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);});
Implementasi Aplikasi Jam Tangan
Judul Bagian “Implementasi Aplikasi Jam Tangan”Aplikasi jam tangan Anda perlu mengimplementasikan WatchConnectivity. Berikut adalah contoh 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 Referensi
Section titled “API Reference”Metode
Section titled “Methods”sendMessage(options: SendMessageOptions)
Metode ‘sendMessage(options: SendMessageOptions)’Kirim pesan interaktif ke jam tangan. Memerlukan jam tangan untuk dapat diakses.
Parameter:
data: Objek - Data yang dikirim ke jam tangan
updateApplicationContext(options: UpdateContextOptions)
Metode ‘updateApplicationContext(options: UpdateContextOptions)’Perbarui konteks aplikasi. Hanya nilai terbaru yang disimpan.
Parameter:
context: Objek - Data konteks untuk disinkronisasi
transferUserInfo(options: TransferUserInfoOptions)
Metode ‘transferUserInfo(options: TransferUserInfoOptions)’Queue user info for reliable delivery.
Parameter:
userInfo: Objek - Informasi pengguna untuk ditransfer
replyToMessage(options: ReplyMessageOptions)
Bagian berjudul “balasPesan(options: BalasPesanOptions)”Balas pesan yang meminta tanggapan.
Parameter:
callbackId: string - ID panggilan balik dari event messageReceivedWithReplydata: Objek - Data balasan
getInfo()
Bagian berjudul “getInfo()”Dapatkan status koneksi watch.
Kembali: WatchInfo objek dengan:
isSupported: boolean - Apakah API watch tersedia di platform iniisPaired: boolean - Apple Watch terpasang (iOS) atau setidaknya satu node Wear OS terhubung (Android)isWatchAppInstalled: boolean - Aplikasi watch kompani terinstal (iOS) ataucapgo_watch: boolean - Kemampuan terdeteksi (Android)isReachable: boolean - Apakah watch dapat diakses untuk pesan instanactivationState: number - Status sesi (iOS WCSession; Android 2 ketika node terhubung, 0 lainnya)
getPluginVersion()
Bagian berjudul “getPluginVersion()”Untuk mendapatkan versi plugin native.
| Acara | Pengenalan |
|---|---|
messageReceived | Pesan sederhana dari watch |
messageReceivedWithReply | Pesan yang menunggu balasan (termasuk callbackId) |
applicationContextReceived | Pembaruan konteks dari watch |
userInfoReceived | Pengiriman informasi pengguna dari watch |
reachabilityChanged | Koneksi watch berubah (hanya iOS) |
activationStateChanged | Status aktivasi sesi berubah (hanya iOS) |
Poligami Komunikasi
Bab berjudul “Gaya Komunikasi”Pengiriman Pesan Langsung (sendMessage)
Bab berjudul “Pengiriman Pesan Langsung (sendMessage)”- Diperlukan watch untuk dapat dijangkau
- Paling cocok untuk komunikasi interaktif dan sensitif waktu
- Jika pengawasan tidak tersedia, maka gagal segera
Context Aplikasi (updateApplicationContext)
Judul Bagian “Context Aplikasi (updateApplicationContext)”- Hanya nilai terbaru - nilai sebelumnya dihapus
- Terbaik untuk sinkronisasi status aplikasi saat ini
- Diterima ketika pengawasan tersedia
Transfer Informasi Pengguna (transferUserInfo)
Judul Bagian “Transfer Informasi Pengguna (transferUserInfo)”- Ditambahkan ke dalam antrian dan diterima dalam urutan
- Paling baik untuk data penting yang harus diterima
- Kerja bahkan ketika pengawasan sementara tidak dapat dijangkau
Catatan Platform
Section titled “Platform Notes”Lihat Tabel Dukungan Platform untuk melihat gambaran umum plugin untuk matriks metode demi metode.
Catatan iOS (Apple Watch)
Memerlukan iOS 15.0 atau lebih baru- Menggunakan framework WatchConnectivity
- Menggunakan framework WatchConnectivity
- Sesi ini akan aktif secara otomatis ketika plugin dimuat.
- Mendukung pengiriman latar belakang untuk konteks dan informasi pengguna
- dan
reachabilityChangeddanactivationStateChanged
Android (OS Wear)
Judul Bagian “Android (OS Wear)”- Memerlukan Google Play services dengan Layer Data OS Wear (
play-services-wearableInklusi dengan plugin) - APK ponsel dan jam harus memiliki yang sama
applicationIddan Kunci Tanda Tangan - Aplikasi Watch harus menawarkan kemampuan
capgo_watch - Does Apakah Tidak Emit
reachabilityChangedatauactivationStateChanged; surveigetInfo()ketika dibutuhkan - Petunjuk pengaturan: Membuat aplikasi Wear OS
- Pesan watch tidak didukung di browser
getInfo()terselesaikan denganisSupported: falsedan bidang lainnya pada nilai default yang amangetPluginVersion()terselesaikan dengan{ version: "web" }sendMessage,updateApplicationContext,transferUserInfo, danreplyToMessagetolak dengan kesalahan tidak tersediaaddListenermengatasi sebuah handle melalui CapacitorWebPlugin, tetapi acara jam tangan tidak didukung di browser (callback tidak pernah dijalankan)
Penggunaan Umum
Judul Bagian “Penggunaan Umum”- Sinkron Data: Sinkronkan data jam tangan dan ponsel
- Pengendali Jarak: Kendalikan fitur ponsel dari jam tangan
- NotifikasiKirimkan pemberitahuan kustom ke watch
- Data Kesehatan: Bagikan metrik kesehatan dan olahraga
- Media Kontrol: Kontrol pemutaran musik dari jam tangan
- Rumah Cerdas: Kontrol perangkat dari lenganmu
Troubleshooting
: Bagikan metrik kesehatan dan olahragaTroubleshooting
- : Bagikan metrik kesehatan dan olahraga
- Jam Tangan Tidak Terhubung:
- Pastikan jam tangan berada dalam jangkauan Bluetooth
Pesan tidak diterima:
- Periksa apakah pemangku jawab telah terdaftar sebelum mengirim
- Verifikasi aplikasi jam tangan telah menerapkan WCSessionDelegate
- Pilih
transferUserInfountuk pengiriman yang dijamin
Sesi tidak aktif:
- Pastikan kemampuan WatchConnectivity telah ditambahkan di Xcode
- Periksa apakah aplikasi jam tangan memiliki ID paket kompanen
- Verifikasi kedua aplikasi targetkan versi OS yang kompatibel
Teruskan dari Getting Started
Bab berjudul “Teruskan dari Getting Started”Jika Anda menggunakan Mulai Menggunakan untuk merencanakan pekerjaan plugin native, hubungkannya dengan Menggunakan @capgo/capacitor-watch untuk kemampuan native di Menggunakan @capgo/capacitor-watch, Daftar Direktori Plugin Capgo untuk alur kerja produk di Daftar Direktori Plugin Capgo, Plugin-Plugin Capacitor oleh Capgo untuk detail implementasi di Plugin-Plugin Capacitor oleh Capgo, Menambahkan atau Mengupdate Plugin untuk detail implementasi di Menambahkan atau Mengupdate Plugin, dan Alternatif Plugin Enterprise Ionic untuk alur kerja produk di Alternatif Plugin Enterprise Ionic.