Getting Started
Copy sebuah 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]
Judul bagian “Pemasangan”Anda dapat menggunakan Pengaturan Bantu 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-pluginsLalu 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 Manual Setup, instal plugin dengan menjalankan perintah-perintah berikut dan ikuti instruksi spesifik platform di bawah ini:
-
Instal paket
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() }});}Diperlukan Pengaturan iOS:
- 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 Jam Tangan di bawah)
Plugin ini secara otomatis mengaktifkan WCSession ketika plugin dimuat.
Apple Watch hanya didukung pada iOS. Pada Android, semua metode akan menolak dengan pesan kesalahan “Apple Watch hanya didukung pada iOS”.
getInfo()Metode ini mengembalikanisSupported: false. -
Proses 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 watchawait CapgoWatch.replyToMessage({callbackId: event.callbackId,data: { result }});}); -
Sinkronkan aplikasi state
// 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);}); -
Monitor 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);});
Pengimplementasian Aplikasi Jam Tangan
Bab berjudul “Pengimplementasian Aplikasi Jam Tangan”Aplikasi jam tangan Anda harus 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)") }}Referensi API
Bab berjudul “Referensi API”Metode
Judul Bagian “Metode”sendMessage(options: SendMessageOptions)
Judul Bagian “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)
Judul Bagian “updateApplicationContext(options: UpdateContextOptions)”Perbarui konteks aplikasi. Hanya nilai terbaru yang disimpan.
Parameter:
context: Objek - Data konteks yang disinkronkan
transferUserInfo(options: TransferUserInfoOptions)
Judul Bagian “transferUserInfo(options: TransferUserInfoOptions)”Antar informasi pengguna untuk pengiriman yang dapat diandalkan.
Parameter:
userInfo: Objek - Informasi pengguna untuk ditransfer
replyToMessage(options: ReplyMessageOptions)
Bagian berjudul “balasPesan(options: ReplyMessageOptions)”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 WatchConnectivity tersediaisPairedApakah jam tangan sudah terpasang : booleanisWatchAppInstalledApakah aplikasi jam tangan sudah terinstal : booleanisReachableApakah jam tangan dapat diakses : booleanactivationStateNomor sesi (0/1/2) : number
getPluginVersion()
Bagian berjudul “getPluginVersion()”Untuk mendapatkan versi plugin native.
| Event | Deskripsi |
|---|---|
messageReceived | Pesan sederhana dari jam tangan |
messageReceivedWithReply | Pesan yang menunggu balasan (termasuk callbackId) |
applicationContextReceived | Perbarui Konteks dari watch |
userInfoReceived | Pindah Informasi Pengguna dari watch |
reachabilityChanged | Koneksi watch Berubah |
activationStateChanged | Status Aktivasi Sesi Berubah |
Gaya Komunikasi
Bab berjudul “Gaya Komunikasi”Pesan Berita Acara (“sendMessage)
Bab berjudul “Pesan Berita Acara (sendMessage)”- Diperlukan watch untuk tersedia
- Paling cocok untuk komunikasi interaktif dan sensitif waktu
- Gagal segera jika watch tidak tersedia
Konteks Aplikasi (“updateApplicationContext)
Context Aplikasi (updateApplicationContext)- Hanya nilai terbaru - nilai sebelumnya dihapus
- Terbaik untuk sinkronisasi keadaan aplikasi saat ini
- Diterima ketika jam tangan tersedia
Transfer Informasi Pengguna (transferUserInfo)
Judul Bagian “Transfer Informasi Pengguna (transferUserInfo)”- Diproses dan diterima dalam urutan
- Terbaik untuk data penting yang harus diterima
- Kerja bahkan ketika jam tangan tidak tersedia sementara
Catatan Platform
Judul Bagian “Catatan Platform”- Mengharuskan iOS 15.0 atau lebih baru
- Menggunakan framework WatchConnectivity
- Sesi secara otomatis diaktifkan pada saat plugin dimuat
- Mendukung pengiriman latar belakang untuk konteks dan informasi pengguna
Android
Judul Bagian “Android”- Tidak didukung (Apple Watch hanya iOS)
- Semua metode menolak dengan kesalahan yang sesuai
getInfo()mengembalikanisSupported: false
- Not supported
- Tidak Dapat Dibuka
getInfo()Tidak ada metode yang mendukungisSupported: false
Tidak ada metode yang mendukung
Tidak ada metode yang mendukung- Tidak ada metode yang mendukungTidak ada metode yang mendukung
- Tidak ada metode yang mendukungTidak ada metode yang mendukung
- Tidak ada metode yang mendukungTidak ada metode yang mendukung
- Tidak ada metode yang mendukung: Bagikan metrik kesehatan dan olahraga
- Media Kontrol: Kontrol pemutaran musik dari jam tangan
- Rumah Cerdas: Kontrol perangkat dari lenganmu
Pengaturan
: Bagikan metrik kesehatan dan olahragaTroubleshooting
- : Bagikan metrik kesehatan dan olahraga
- Masalah Jam Tangan
- : Pastikan jam tangan berada dalam jangkauan Bluetooth
Pastikan aplikasi di kedua perangkat berjalan dengan baik. Periksa bahwa aplikasi di kedua perangkat berjalan dengan baik. Pastikan WCSession diaktifkan di kedua sisi. Periksa bahwa WCSession diaktifkan di kedua sisi. 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 teman
- Verifikasi kedua aplikasi targetkan versi OS yang kompatibel
Teruskan dari Getting Started
Bab yang berjudul “Teruskan dari Getting Started”Jika Anda menggunakan Getting Started untuk merencanakan pekerjaan plugin native, hubungkannya dengan Menggunakan @capgo/capacitor-watch untuk kemampuan native di Menggunakan @capgo/capacitor-watch, Capgo Direktori Plugin untuk alur kerja produk di Capgo Direktori Plugin, Capacitor Plugin oleh Capgo untuk detail implementasi di Capacitor Plugin 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.