Saltare al contenuto

@capgo/capacitor-widget-kit

WidgetKit e attività in tempo reale per le Capacitor con modelli guidati da SVG o sincronizzazione dello stato del widget nativo.

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

  • Attività di template SVG: definisci superfici WidgetKit come SVG, passa da frame nominati con i tocchi, esegui timer di pausa/riavvio, muta lo stato JSON e raccogli gli eventi di azione nell'app.
  • Sessioni di widget native complete: mantiene l'interfaccia utente del widget completamente in Swift/Kotlin/Java mentre Capacitor gestisce lo stato JSON condiviso e i messaggi app-to-widget o widget-to-app.

Usa i template SVG quando il tuo widget può essere reso da stringhe SVG risolte. Usa le sessioni native complete quando il widget ha bisogno di un'interfaccia utente nativa personalizzata ma deve ancora avviarsi, fermarsi, sincronizzare lo stato o chiedere all'app di completare il lavoro asincrono.

Esempio animato di WidgetKit che mostra lo stato e i controlli del widget di template guidati da Capacitor
Ciclo del modello del widget
Modalità Migliore perAPI principali
Attività SVG del modelloAttività live o superfici di widget che renderizzano da uscita SVGstartTemplateActivity, performTemplateAction, listTemplateEvents
Sessione di widget nativo completaWidget nativi renderizzati che richiedono stato condiviso e job asincronistartWidgetSession, updateWidgetSession, sendWidgetMessage

Entrambi i modi possono vivere nello stesso app. Ad esempio, un'app di allenamento può utilizzare un'attività SVG Live per controlli di frame/timer veloci e una sessione widget nativa completa per un widget della schermata principale con un layout nativo più ricco.

I modelli SVG includono le parti necessarie per superfici widget interattive:

  • frames nome varianti SVG denominate come summary, timer, o details.
  • frameMutations passare da un frame all'altro dopo un'azione hotspot.
  • timerMutations avviare, sospensione, riprendere, abilitare/disabilitare, resettare, fermare o modificare la durata del timer.
  • patches aggiornare lo stato JSON utilizzando valori letterali, modelli, timestamp, incrementi, abilitazioni/disabilitazioni o operazioni di cancellazione.
  • hotspots mappare aree di tocco a identificatori di azione.
  • listTemplateEvents consente all'app di elaborare azioni originate dal 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.

Il ponte nativo completo è per widget che rendono la propria UI nativamente:

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

Il messaggi sono idempotenti dopo la completamento: riprovando un messaggio completato o fallito restituisce il risultato esistente invece di sovrascriverlo.

MetodoDescrizione
areActivitiesSupportedVerifica se il ponte di attività di template nativo può essere eseguito sul dispositivo corrente.
startTemplateActivityPersisti un template di attività SVG e avvia il ponte di attività nativo Live.
updateTemplateActivitySostituisci la definizione, lo stato o l'URL aperto dell'attività.
endTemplateActivityTermina un'attività in esecuzione e persisti eventualmente uno stato di snapshot finale.
performTemplateActionEsegui patch dichiarative, mutazioni di frame, mutazioni di timer e registrazione degli eventi.
getTemplateActivityLega un template di attività archiviato.
listTemplateActivitiesElenco tutte le attività di template archiviate.
listTemplateEventsLega gli eventi di azione emessi dalle azioni di template.
acknowledgeTemplateEventsSegnala eventi di template come elaborati.
startWidgetSessionInizia una sessione di widget nativo a piena capacità supportata da uno stato JSON condiviso.
updateWidgetSessionFusione o sostituisci uno stato di sessione di widget nativo a piena capacità.
stopWidgetSessionInterrompi una sessione di widget nativo a piena capacità e opzionalmente persisti lo stato finale.
getWidgetSessionLeggi una sessione di widget nativo a piena capacità.
listWidgetSessionsElencare tutte le sessioni di widget nativo a piena capacità.
sendWidgetMessageInoltra un messaggio tra l'app e il widget nativo code.
listWidgetMessagesElencare i messaggi di ponte in coda.
acknowledgeWidgetMessagesSegnala messaggi di ponte come riconosciuti.
completeWidgetMessageCompleta o falli un messaggio di ponte asincrono.
getPluginVersionRestituisci il marchio di versione dell'implementazione del platform.

Il plugin fornisce anche aiuti nativi per i target widget:

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

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

Se sei in uso a @capgo/capacitor-kit di widget per pianificare l'automazione CI/CD, connettilo con Utilizza @capgo/capacitor-kit di widget per la capacità nativa in Utilizza @capgo/capacitor-kit di widget, Capgo CI/CD per il flusso di lavoro del prodotto in Capgo CI/CD, Capgo Costruzioni native per il flusso di lavoro del prodotto in Capgo Costruzioni native, Capgo Integrazioni for the product workflow in Capgo Integrations, and Integrazione CI/CD per i dettagli di implementazione nell'integrazione CI/CD