Saltare alla navigazione principale

@capgo/capacitor-kit di widget

Kit di widget e attività in tempo reale per le app Capacitor, con modelli SVG o sincronizzazione dello stato del widget nativo completo.

@capgo/capacitor-widget-kit dà a un'app Capacitor due modi per guidare i widget e le attività in tempo reale:

  • Attività di modello SVG: definisci superfici di WidgetKit come SVG, passa da frame denominati a tap, esegui timer di pausa/riavvio, muta lo stato JSON e raccogli eventi di azione nell'app.
  • Sessioni di widget nativo completo: mantiene l'interfaccia utente del widget completamente in Swift/Kotlin/Java mentre Capacitor possiede uno stato JSON condiviso e messaggi app-to-widget o widget-to-app.

Usa modelli SVG quando il tuo widget può essere reso da stringhe SVG risolte. Usa sessioni di widget nativo completo quando il widget ha bisogno di un'interfaccia utente nativa personalizzata ma deve ancora iniziare, fermare, sincronizzare lo stato o chiedere all'app di completare lavoro asincrono.

ModalitàMigliore perAPI principali
Attività di template SVGAttività Live o superfici widget che rendono da output SVGstartTemplateActivity, performTemplateAction, listTemplateEvents
Sessione widget nativa completaWidget nativi renderizzati che richiedono stato condiviso e lavori asincronistartWidgetSession, updateWidgetSession, sendWidgetMessage

Entrambe le modalità possono convivere nello stesso app. Ad esempio, un'app di allenamento può utilizzare un'attività Live SVG per controlli di timer veloci e una sessione widget nativa completa per un widget di schermo di casa con un layout nativo più ricco.

I template SVG includono le parti necessarie per le superfici di widget interattive:

  • frames mantengono varianti SVG denominate come summary, timer, o details.
  • frameMutations passare attraverso le frame dopo un'azione hotspot.
  • timerMutations inizia, pausa, riprendi, attiva/desattiva, resetta, fermati o modifica la durata del timer.
  • patches aggiorna lo stato JSON utilizzando valori letterali, template, timestamp, incrementi, toggle o operazioni di annullamento.
  • hotspots mappa le aree di tocco alle identificatori di azione.
  • listTemplateEvents consente all'applicazione di elaborare azioni originate dai widget in un momento successivo.

Il runtime risolve i placeholder come {{state.title}}, {{timers.rest.remainingText}}, e {{meta.template.kind}} prima che il ponte nativo restituisca una superficie per la rendering.

Le sessioni native sono per widget che rendono la propria UI nativamente:

  • startWidgetSession crea uno stato e metadati condivisi per il widget nativo code.
  • updateWidgetSession fonde o sostituisce lo stato e segnala la sessione attiva di nuovo.
  • stopWidgetSession registra uno stato finale e segnala la sessione fermata.
  • sendWidgetMessage inserisce lavoro app-to-widget o widget-to-app in coda.
  • acknowledgeWidgetMessages segnala messaggi come ricevuti.
  • completeWidgetMessage memorizza una risposta o un fallimento per i lavori asincroni.

I messaggi sono idempotenti dopo completamento: riprovando un messaggio completato o fallito restituisce il risultato esistente al posto di sovrascriverlo.

MetodoDescrizione
areActivitiesSupportedVerifica se il ponte di attività di template nativo può eseguire il codice sul dispositivo corrente.
startTemplateActivityMantieni un template di attività SVG e avvia il ponte di attività Live nativo.
updateTemplateActivitySostituisci la definizione dell'attività, lo stato o l'URL aperto.
endTemplateActivityTermina un'attività in esecuzione e, facoltativamente, mantieni uno stato di snapshot finale.
performTemplateActionEsegui patch dichiarative, mutazioni di frame, mutazioni di timer e registrazione degli eventi.
getTemplateActivityLeggi un template di attività archiviato.
listTemplateActivitiesElencare tutte le attività di template archiviate.
listTemplateEventsLeggi gli eventi di azione emessi dalle azioni di template.
acknowledgeTemplateEventsSegna gli eventi di template come elaborati.
startWidgetSessionAvvia una sessione di widget nativo a piena capacità supportata da uno stato condiviso in formato JSON.
updateWidgetSessionUnisci o sostituisci uno stato di sessione di widget nativo a piena capacità.
stopWidgetSessionInterrompi una sessione di widget nativo completo e persisti eventualmente lo stato finale.
getWidgetSessionLeggi una sessione di widget nativo completo.
listWidgetSessionsElenco tutte le sessioni di widget nativo completo.
sendWidgetMessageIncolca un messaggio tra l'app e il widget nativo code.
listWidgetMessagesElenco i messaggi di ponte in coda.
acknowledgeWidgetMessagesSegna i messaggi di ponte come riconosciuti.
completeWidgetMessageCompleta o fallisce un messaggio di ponte asincrono.
getPluginVersionRestituisci il marchio di versione dell'implementazione del platform.

Il plugin fornisce anche aiuti nativi per i target di widget:

  • CapgoTemplateWidgetBridge risolve una superficie di template SVG in svg, frameId, hotspots, e metadati.
  • CapgoTemplateActionIntent connette i pulsanti widget iOS interattivi a azioni di template.
  • CapgoNativeWidgetBridge carica sessioni e messaggi full-native da widget nativo code.
  • Gli aiuti di template Android forniscono comportamento di ricezione azione e ponte widget corrispondente.

La API di riferimento è sincronizzata da src/definitions.ts nel repository del plugin.