Lompat ke konten

@capgo/capacitor-widget-kit

WidgetKit dan Aktivitas Hidup untuk aplikasi Capacitor, dengan template SVG atau sinkronisasi state widget penuh-native.

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

  • SVG template activities: definisikan permukaan WidgetKit sebagai SVG, switch frame yang dinamis dari sentuhan, jalankan timer pause/play, ubah JSON state, dan koleksi event aksi di aplikasi.
  • Sesi widget penuh-native: simpan UI widget sepenuhnya di Swift/Kotlin/Java sementara Capacitor mengontrol state JSON bersama dan pesan aplikasi-ke-widget atau widget-ke-aplikasi.

Pakailah template SVG ketika widget dapat dirender dari string SVG yang terpecahkan. Pakailah sesi widget penuh-native ketika widget memerlukan UI native yang disesuaikan tetapi masih harus memulai, menghentikan, sinkronisasi state, atau meminta aplikasi untuk menyelesaikan pekerjaan asinkron.

Demo

Demo
Demo animasi WidgetKit yang menampilkan template widget dan kontrol yang dikendalikan dari Capacitor
Alur Template Widget

Pilih Mode

Demo Pilih Mode
ModeTerbaik untukAPI Utama
Aktivitas Template SVGAktivitas Langsung atau permukaan widget yang menampilkan hasil output SVGstartTemplateActivity, performTemplateAction, listTemplateEvents
Sesi Widget Penuh-NativeWidget yang dirender secara native yang memerlukan state bersama dan pekerjaan asyncstartWidgetSession, updateWidgetSession, sendWidgetMessage

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

bernama SVG varian seperti

  • frames , atau summary, timerswitch, toggle, atau melalui frame setelah aksi hotspot. details.
  • frameMutations mulai, pause, lanjutkan, toggle, reset, stop, atau ubah durasi timer.
  • timerMutations update status JSON menggunakan nilai literal, template, tanggal, peningkatan, toggle, atau operasi hapus.
  • patches peta area sentuh ke identifikasi aksi.
  • hotspots mengizinkan aplikasi memproses aksi asal widget kemudian.
  • listTemplateEvents Runtime memecahkan tempat-tempat seperti

__CAPGO_KEEP_0__ {{state.title}}, {{timers.rest.remainingText}}dan {{meta.template.kind}} sebelum jembatan asli kembali mengembalikan permukaan untuk rendering.

Session penuh-asli adalah untuk widget yang mengrender UI mereka sendiri secara asli:

  • startWidgetSession membuat status dan metadata bersama untuk widget native code.
  • updateWidgetSession menggabungkan atau menggantikan status dan menandai sesi aktif lagi.
  • stopWidgetSession merekam status akhir dan menandai sesi berhenti.
  • sendWidgetMessage mengantre pekerjaan aplikasi-ke-widget atau widget-ke-aplikasi.
  • acknowledgeWidgetMessages menandai pesan sebagai diterima.
  • completeWidgetMessage menyimpan respons atau gagal untuk pekerjaan async.

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

MetodeDeskripsi
areActivitiesSupportedPeriksa apakah jembatan kegiatan template native dapat dijalankan pada perangkat saat ini.
startTemplateActivitySimpan template SVG kegiatan dan mulai jembatan kegiatan Live Activity native.
updateTemplateActivityGanti definisi kegiatan, status, atau buka URL.
endTemplateActivityAkhirkan kegiatan yang berjalan dan secara opsional simpan snapshot status terakhir.
performTemplateActionEksekusi patch deklaratif, mutasi frame, mutasi timer, dan pencatatan log event.
getTemplateActivityBaca satu kegiatan template yang disimpan.
listTemplateActivitiesDaftar semua kegiatan template yang disimpan.
listTemplateEventsBaca event aksi yang dikeluarkan oleh aksi template.
acknowledgeTemplateEventsMerkkan event template sebagai diproses.
startWidgetSessionMulai sesi widget penuh-natip yang didukung oleh JSON bersama.
updateWidgetSessionMenggabungkan atau menggantikan state sesi widget penuh-natip.
stopWidgetSessionBerhenti sesi widget penuh-natip dan secara opsional menyimpan state akhir.
getWidgetSessionBaca satu sesi widget penuh-natip.
listWidgetSessionsTampilkan setiap sesi widget penuh-natip.
sendWidgetMessageAntrian pesan antara aplikasi dan widget natip code.
listWidgetMessagesTampilkan pesan antrian jembatan.
acknowledgeWidgetMessagesMerkkan pesan jembatan sebagai diakui.
completeWidgetMessageMengakhiri atau gagal pesan jembatan async.
getPluginVersionKembalikan tanda versi implementasi platform.

Plugin ini juga mengirimkan bantuan asli untuk target widget:

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

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

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