Saltar al contenido

@capgo/capacitor-widget-kit

WidgetKit y actividades en vivo para aplicaciones Capacitor, con plantillas impulsadas por SVG o sincronización de estado de widget nativo completo.

@capgo/capacitor-widget-kit proporciona a una aplicación Capacitor dos formas de impulsar widgets y Actividades en vivo:

  • Plantillas de SVG de actividades: defina superficies de WidgetKit como SVG, cambie marcos nombrados desde toques, ejecute temporizadores de pausa/reproducción, mutue el estado JSON y recolecte eventos de acción en la aplicación.
  • Sesiones de widget nativas completas: mantenga la interfaz de usuario del widget completamente en Swift/Kotlin/Java mientras Capacitor posee el estado JSON compartido y los mensajes de la aplicación a la widget o de la widget a la aplicación.

Utilice plantillas de SVG cuando su widget pueda ser renderizado a partir de cadenas de SVG resueltas. Utilice sesiones de widget nativas completas cuando el widget necesite una interfaz de usuario nativa personalizada pero aún tenga que iniciar, detener, sincronizar estado o pedir a la aplicación que complete trabajo asíncrono.

Demo animada de WidgetKit que muestra el estado del widget de plantilla y los controles impulsados desde Capacitor
Flujo de plantilla de widget
ModoMejor paraAPI principales
Actividad de plantilla SVGActividades en vivo o superficies de widget que se renderizan desde la salida SVGstartTemplateActivity, performTemplateAction, listTemplateEvents
Sesión de widget nativo completaWidgets renderizados nativamente que necesitan estado compartido y trabajos asíncronosstartWidgetSession, updateWidgetSession, sendWidgetMessage

Las dos modalidades pueden coexistir en la misma aplicación. Por ejemplo, una aplicación de entrenamiento puede utilizar una Actividad de SVG en vivo para controles de marco/tiempo rápidos y una sesión de widget nativo completa para un widget de pantalla de inicio con un diseño nativo más rico.

Las plantillas SVG incluyen las piezas necesarias para superficies de widget interactivas:

  • frames variantes de SVG nombrados como summary, timero details.
  • frameMutations pulsar, cambiar, o avanzar por frames después de una acción de hotspot.
  • timerMutations iniciar, pausar, reanudar, activar/desactivar, resetear, detener, o cambiar la duración del temporizador.
  • patches actualizar el estado JSON utilizando valores literales, plantillas, timestamps, incrementos, activadores/desactivadores o operaciones de eliminación.
  • hotspots asignar áreas de toque a identificadores de acción.
  • listTemplateEvents permite que la aplicación procese acciones originadas en el widget más tarde.

La ejecución resuelve los reemplazos como {{state.title}}, {{timers.rest.remainingText}}y {{meta.template.kind}} antes de que la puente nativa devuelva una superficie para la renderización.

Las sesiones de tipo full-native son para widgets que renderizan su propia interfaz de usuario de manera nativa:

  • startWidgetSession crea un estado compartido y metadatos para el widget nativo code.
  • updateWidgetSession combina o reemplaza el estado y marca la sesión activa de nuevo.
  • stopWidgetSession registra un estado final y marca la sesión detenida.
  • sendWidgetMessage coloca en cola el trabajo de aplicación a widget o de widget a aplicación.
  • acknowledgeWidgetMessages marca los mensajes como recibidos.
  • completeWidgetMessage almacena una respuesta o un error para las tareas asíncronas.

Los mensajes son idempotentes después de la finalización: repetir un mensaje completado o fallido devuelve el resultado existente en lugar de sobrescribirlo.

MétodoDescripción
areActivitiesSupportedVerificar si el puente de actividad de plantilla nativa puede ejecutarse en el dispositivo actual.
startTemplateActivityPersistar una plantilla de actividad SVG y iniciar el puente de Live Activity nativa.
updateTemplateActivityReemplazar la definición de actividad, el estado o la URL abierta.
endTemplateActivityFinalizar una actividad en ejecución y opcionalmente persistir una instantánea de estado de la última actividad.
performTemplateActionEjecutar parches declarativos, mutaciones de marco, mutaciones de temporizador y registro de eventos.
getTemplateActivityLeer una actividad de plantilla almacenada.
listTemplateActivitiesListar todas las actividades de plantilla almacenadas.
listTemplateEventsLeer eventos de acción emitidos por acciones de plantilla.
acknowledgeTemplateEventsMarcar eventos de plantilla como procesados.
startWidgetSessionIniciar una sesión de widget nativo completa respaldada por un estado JSON compartido.
updateWidgetSessionUnir o reemplazar el estado de sesión de widget nativo completa.
stopWidgetSessionDetener una sesión de widget nativo completa y opcionalmente persistir el estado final.
getWidgetSessionLeer una sesión de widget nativo completa.
listWidgetSessionsListar todas las sesiones de widget nativo completa.
sendWidgetMessageColar un mensaje entre la aplicación y el widget nativo code.
listWidgetMessagesListar mensajes de puente en cola.
acknowledgeWidgetMessagesMarcar mensajes de puente como reconocidos.
completeWidgetMessageConcluir o fallar un mensaje de puente asíncrono.
getPluginVersionDevolver el marcador de versión de la implementación de plataforma.

El plugin también envía ayudantes nativos para objetivos de widget:

  • CapgoTemplateWidgetBridge resuelve una superficie de plantilla SVG en svg, frameId, hotspots, y metadatos.
  • CapgoTemplateActionIntent conecta botones de widget interactivos de iOS a acciones de plantilla.
  • CapgoNativeWidgetBridge carga sesiones y mensajes de widget nativo completos desde el widget code.
  • Los ayudantes de plantilla de Android proporcionan comportamiento de receptor de acción y puente de widget coincidente.

La referencia del API se sincroniza desde src/definitions.ts en el repositorio del plugin.

Sigue adelante desde @capgo/capacitor-kit-de-widget

Sección titulada “Sigue adelante desde @capgo/capacitor-kit de widget”

Si estás utilizando @capgo/capacitor-kit de widget para planificar la automatización de CI/CD, conecta con Usando @capgo/capacitor-kit de widget para la capacidad nativa en Usando @capgo/capacitor-kit de widget, Capgo CI/CD para el flujo de trabajo del producto en Capgo CI/CD, Capgo Compilaciones nativas para el flujo de trabajo del producto en Capgo Compilaciones nativas, Capgo Integraciones for the product workflow in Capgo Integrations, and Integración CI/CD para los detalles de implementación en la Integración CI/CD