Zum Inhalt springen

@capgo/capacitor-WidgetKit

WidgetKit und Live-Aktivitäten für Capacitor-Apps, mit SVG-getriebenen Vorlagen oder vollständiger nativer Widget-Zustands-Synchronisierung.

Übersicht

Übersicht

@capgo/capacitor-widget-kit erläutert, wie eine Capacitor-App zwei Möglichkeiten zur Steuerung von Widgets und Live-Aktivitäten bietet:

  • SVG-Vorlagen für Aktivitäten: Definieren Sie WidgetKit-Oberflächen als SVG, wechseln Sie benannte Frames von Taps, starten Sie Pause-/Wiedergabe-Timer, ändern Sie JSON-Zustände und sammeln Sie Ereignisse in der App.
  • Voll-nativer Widget-Sitzungen: Halten Sie die Widget-UI vollständig in Swift/Kotlin/Java, während Capacitor gemeinsame JSON-Zustände und App-zu-Widget- oder Widget-zu-App-Nachrichten besitzt.

Verwenden Sie SVG-Vorlagen, wenn Ihr Widget aus aufgelösten SVG-Strings renderbar ist. Verwenden Sie voll-nativen Sitzungen, wenn das Widget eine benutzerdefinierte native UI benötigt, aber noch Starten, Stoppen, Synchronisieren von Zuständen oder die App bitten muss, asynche Arbeit abzuschließen.

Animierter WidgetKit-Demo, der das Template-Widget-Zustand und die Steuerung von Capacitor anzeigt
Widget-Template-Fluss
ModusAm besten geeignet fürHaupt-APIs
SVG-Template-AktivitätLive-Aktivitäten oder Widget-Oberflächen, die von SVG-Ausgaben renderenstartTemplateActivity, performTemplateAction, listTemplateEvents
Voll-nativer Widget-SitzungWidgets, die nativ gerendert werden und gemeinsamen Zustand und asynchrone Aufgaben benötigenstartWidgetSession, updateWidgetSession, sendWidgetMessage

Beide Modi können in derselben App leben. Zum Beispiel kann ein Workout-App ein SVG Live Activity für schnelle Frame-/Timer-Steuerungen und eine vollständige native Widget-Sitzung für einen Home-Screen-Widget mit einem reicheren nativen Layout verwenden.

SVG-Vorlagen enthalten die erforderlichen Teile für interaktive Widget-Oberflächen:

  • frames Halten Sie benannte SVG-Varianten wie summary, timer, oder details.
  • frameMutations Schalten, um, oder durch Schritte nach einem Hotspot-Aktion zu gehen.
  • timerMutations Starten, pausieren, fortsetzen, umschalten, zurücksetzen, stoppen oder die Timerdauer ändern.
  • patches Aktualisieren Sie die JSON-Zustandsdaten mit Literalwerten, Vorlagen, Zeitstempeln, Inkrementen, Schaltern oder Unset-Operationen.
  • hotspots Zuordnen Sie Berührungsbereiche zu Aktionenidentifikatoren.
  • listTemplateEvents erlaubt dem App-Verarbeitungsprozess, Widget-begonnene Aktionen später zu verarbeiten.

Die Laufzeit löst Platzhalter wie {{state.title}}, {{timers.rest.remainingText}}und {{meta.template.kind}} vor der native-Bridge eine Oberfläche für das Rendering zurückgibt.

Voll-nativen Sitzungen sind für Widgets vorgesehen, die ihre eigene UI natively rendern:

  • startWidgetSession erstellt gemeinsame Zustände und Metadaten für das native Widget code.
  • updateWidgetSession vereint oder ersetzt Zustände und markiert die Sitzung wieder als aktiv.
  • stopWidgetSession rekordiert einen finalen Zustand und markiert die Sitzung als gestoppt.
  • sendWidgetMessage Warteschlangen für Anwendungs-zu-Widget- oder Widget-zu-Anwendungs-Aufgaben.
  • acknowledgeWidgetMessages markiert Nachrichten als empfangen.
  • completeWidgetMessage speichert eine Antwort oder einen Fehler für asynchrone Aufgaben.

Nachrichten sind idempotent nach Abschluss: Wiederholen einer abgeschlossenen oder fehlgeschlagenen Nachricht gibt das bestehende Ergebnis anstatt es zu überschreiben.

MethodeBeschreibung
areActivitiesSupportedÜberprüfen Sie, ob die native Template-Aktivitätsbrücke auf dem aktuellen Gerät ausgeführt werden kann.
startTemplateActivitySpeichern Sie ein SVG-Template-Aktivität und starten Sie die native Live-Aktivitätsbrücke.
updateTemplateActivityErsetzen Sie die Aktivitätsdefinition, den Zustand oder die geöffnete URL.
endTemplateActivityBeenden Sie eine laufende Aktivität und speichern Sie optional ein letztes Zustands-Snapshot.
performTemplateActionAusführen Sie deklarative Patches, Frame-Mutationen, Timer-Mutationen und Ereignis-Protokollierung.
getTemplateActivityLesen Sie eine gespeicherte Template-Aktivität.
listTemplateActivitiesListen Sie alle gespeicherten Template-Aktivitäten.
listTemplateEventsLesen Sie Ereignisse, die von Template-Aktionen emittiert werden.
acknowledgeTemplateEventsMarkiere Vorlagenereignisse als bearbeitet.
startWidgetSessionStarte eine vollständige nativ-basierte Widget-Sitzung, die durch gemeinsame JSON-Zustandsdaten unterstützt wird.
updateWidgetSessionMische oder ersetze den Zustand einer vollständigen nativ-basierten Widget-Sitzung.
stopWidgetSessionBeende eine vollständige nativ-basierte Widget-Sitzung und speichere optional den finalen Zustand.
getWidgetSessionLese eine vollständige nativ-basierte Widget-Sitzung.
listWidgetSessionsListe alle vollständigen nativ-basierten Widget-Sitzungen.
sendWidgetMessageStelle eine Nachricht zwischen der App und dem nativen Widget code an.
listWidgetMessagesListe die in der Warteschleife stehenden Bridge-Nachrichten.
acknowledgeWidgetMessagesMarkiere Bridge-Nachrichten als bestätigt.
completeWidgetMessageErledige oder fehle einen asynchronen Bridge-Nachricht.
getPluginVersionGib die Versionsmarke der Plattformimplementierung zurück.

Der Plugin sendet auch native Hilfsmittel für Zielwidget:

  • CapgoTemplateWidgetBridge löst ein SVG-Vorlagenoberfläche in svg, frameId, hotspots, und Metadaten.
  • CapgoTemplateActionIntent verbindet interaktive iOS-Widget-Buttons mit Vorlagenaktionen.
  • CapgoNativeWidgetBridge lädt vollständige native Sitzungen und Nachrichten von native Widget code.
  • Android-Vorlagenhilfen liefern passende Aktionsempfänger- und Widget-Brückenverhalten.

Der API-Bezug wird von src/definitions.ts in der Plugin-Repository synchronisiert.

Wenn Sie @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-widget-kit verwenden @capgo/capacitor-widget-kit um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Mit @capgo/capacitor-widget-kit für die native Fähigkeit in Mit @capgo/capacitor-widget-kit Capgo CI/CD für den Produktworkflow in Capgo CI/CD Capgo Native Builds für den Produktworkflow in Capgo Native Builds Capgo Integrations für den Produktworkflow in Capgo Integrations und CI/CD-Integration für die Implementierungsdetails in CI/CD-Integration