Lompat ke konten

@capgo/capacitor-kit-gadget

Kit Gadget dan Aktivitas Hidup untuk aplikasi Capacitor, dengan template SVG yang dikemudikan atau sinkronisasi status widget penuh-asli.

@capgo/capacitor-widget-kit memberikan aplikasi Capacitor dua cara untuk mengemudikan widget dan Aktivitas Hidup:

  • Aktivitas template SVG: definisikan permukaan WidgetKit sebagai SVG, ganti frame bernama dari sentuhan, jalankan timer pause/play, ubah JSON state, dan kumpulkan acara event di aplikasi.
  • Jalankan sesi widget penuh-native: simpan UI widget sepenuhnya di Swift/Kotlin/Java sementara Capacitor mengelola JSON state bersama dan pesan aplikasi ke widget atau sebaliknya.

Pakai template SVG ketika widget Anda dapat di-render dari string SVG yang sudah terpecahkan. Pakai sesi penuh-native ketika widget memerlukan UI native yang kustom tetapi masih harus memulai, menghentikan, sinkronisasi state, atau meminta aplikasi untuk menyelesaikan pekerjaan async.

Demo Widget Kit yang di animasikan menampilkan state dan kontrol template widget yang dikendalikan oleh Capacitor
Alur template widget
ModePilihan TerbaikAPI Utama
Template Aktivitas SVGAktivitas Hidup atau permukaan widget yang menampilkan hasil output SVGstartTemplateActivity, performTemplateAction, listTemplateEvents
Sesi Widget Penuh-NativeWidget yang diterjemahkan secara native yang memerlukan status bersama dan pekerjaan asyncstartWidgetSession, updateWidgetSession, sendWidgetMessage

Kedua mode dapat hidup di aplikasi yang sama. Misalnya, aplikasi olahraga dapat menggunakan Aktivitas Hidup SVG untuk kontrol frame/timer cepat dan sesi widget penuh-native untuk widget layar utama dengan tata letak native yang lebih kaya.

Template SVG mencakup bagian-bagian yang diperlukan untuk permukaan widget interaktif:

  • frames varian SVG bernama seperti summary, timer, atau details.
  • frameMutations switch, toggle, or step through frames after a hotspot action.
  • timerMutations switch, toggle, atau melalui frame setelah aksi hotspot.
  • patches mengupdate status JSON menggunakan nilai literal, template, timestamp, inkremen, toggle, atau operasi penghapusan.
  • hotspots mengatur area sentuh ke identifikasi aksi.
  • listTemplateEvents memungkinkan aplikasi memproses aksi yang berasal dari widget kemudian.

Runtime memecahkan tempat penempatan seperti __CAPGO_KEEP_0__, dan __CAPGO_KEEP_1__ sebelum jembatan native kembali menampilkan permukaan untuk rendering. {{state.title}}, {{timers.rest.remainingText}}Kemampuan Jembatan Native Penuh {{meta.template.kind}} Bab berjudul “Kemampuan Jembatan Native Penuh”

Jembatan native penuh adalah untuk widget yang mengrender UI mereka sendiri secara native:

membuat status dan metadata bersama untuk widget native __CAPGO_KEEP_0__.

menggabungkan atau mengganti status dan menandai sesi aktif lagi.

  • startWidgetSession creates shared state and metadata for native widget code.
  • updateWidgetSession mengupdate status JSON menggunakan nilai literal, template, timestamp, inkremen, toggle, atau operasi penghapusan.
  • stopWidgetSession mengatur area sentuh ke identifikasi aksi.
  • sendWidgetMessage mengantarkan aplikasi ke widget atau sebaliknya.
  • acknowledgeWidgetMessages menandai pesan sebagai diterima.
  • completeWidgetMessage menyimpan tanggapan atau gagal untuk pekerjaan async.

Pesan-pesan idempoten setelah selesai: mencoba ulang pesan yang sudah selesai atau gagal akan mengembalikan hasil yang ada bukan menggantinya.

MetodeDeskripsi
areActivitiesSupportedPeriksa apakah jembatan kegiatan template asli dapat dijalankan pada perangkat saat ini.
startTemplateActivitySimpan template SVG kegiatan dan mulai jembatan kegiatan Live Activity asli.
updateTemplateActivityGanti definisi kegiatan, keadaan, atau URL terbuka.
endTemplateActivitySelesaikan kegiatan yang berjalan dan secara opsional simpan snapshot keadaan terakhir.
performTemplateActionEksekusi patch deklaratif, mutasi frame, mutasi timer, dan pencatatan event.
getTemplateActivityBaca satu aktivitas template yang disimpan.
listTemplateActivitiesTampilkan semua aktivitas template yang disimpan.
listTemplateEventsBaca event aksi yang diemiti oleh aksi template.
acknowledgeTemplateEventsTandai event template sebagai diproses.
startWidgetSessionMulai sesi widget penuh-native yang didukung oleh JSON state bersama.
updateWidgetSessionGabungkan atau gantikan state sesi widget penuh-native.
stopWidgetSessionHentikan sesi widget penuh-native dan simpan state akhir secara opsional.
getWidgetSessionBaca satu sesi widget penuh-native.
listWidgetSessionsTampilkan semua sesi widget penuh-native.
sendWidgetMessageAntrikan pesan antara aplikasi dan widget native code.
listWidgetMessagesTampilkan pesan jembatan yang antri.
acknowledgeWidgetMessagesMerk pesan jembatan sebagai diakui.
completeWidgetMessageSelesaikan atau gagal pesan jembatan async.
getPluginVersionKembalikan tanda versi implementasi platform.

Plugin ini juga mengirimkan bantuan asli native untuk target widget:

  • CapgoTemplateWidgetBridge mengatasi permukaan template SVG ke permukaan svg, frameId, hotspots, dan metadata.
  • CapgoTemplateActionIntent menghubungkan tombol widget iOS interaktif ke aksi template.
  • CapgoNativeWidgetBridge memuat sesi dan pesan native lengkap dari widget code.
  • Bantuan template Android menyediakan perilaku penerima aksi dan jembatan widget yang sesuai.

Referensi API disinkronkan dari src/definitions.ts di repository plugin.

Jika Anda menggunakan @capgo/capacitor-kit-gadget untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Menggunakan @capgo/capacitor-kit-gadget untuk kemampuan asli dalam Menggunakan @capgo/capacitor-kit-gadget, Capgo CI/CD untuk alur kerja produk dalam Capgo CI/CD, Pembangunan Nativ Capgo untuk alur kerja produk di Pembangunan Nativ Capgo Integrasi Capgo untuk alur kerja produk di Integrasi Capgo Integrasi, dan Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD.