El objeto state

Todos los campos que controlan lo que muestra la tarjeta en el teléfono.

state es lo que muestra la tarjeta. Qué diseño muestra cada campo está en diseños. Las reglas:

  • En una actualización (y en el finalState de un fin), los campos enviados se combinan con el estado guardado. Los campos no enviados conservan su valor.
  • versus se combina igual, un nivel más abajo. segments se reemplaza completo.
  • Para borrar un campo, envíalo como "" (o [] para segments).
  • Todo el estado debe pesar 16KB o menos.

Android dibuja una notificación del sistema a partir del texto, el color de acento, el icono, la foto de Imagen, la barra de progreso, las puntuaciones, el logo de la liga y el botón de acción. Los campos marcados como solo iPhone no hacen nada en Android.

Diseño y texto

CampoTipoPredeterminadoInstrucciones
layoutstringprogressprogress, picture, versus o countdown. Defínelo al iniciar. Cámbialo en una actualización para cambiar el tipo.
primaryTextstring""El titular en Progreso, el pie de foto en Imagen. También es el título de cada alerta, así que defínelo en todos los diseños.
secondaryTextstring""La línea bajo el titular, y el cuerpo de cada alerta. En Cuenta atrás, el nombre junto al reloj.
stagestringningunoUna palabra corta para el paso actual («En camino»). iPhone la muestra en la Dynamic Island compacta, solo en Progreso. Android 16 la muestra en el chip de estado. Mantenla cerca de 7 caracteres.
isCompletebooleanfalsetrue para el estado final. Progreso muestra «Listo» en la Dynamic Island compacta. La tarjeta se queda hasta que se finaliza.

Colores

Los colores son texto #RRGGBB. No hay campo de color de texto: el texto se vuelve negro o blanco para que se lea bien. La Dynamic Island siempre es oscura.

CampoTipoPredeterminadoInstrucciones
accentColorHexstringazulEl color de la marca: la barra de progreso, los matices y el acento de Android. Sobre un color de fondo personalizado, la barra es negra o blanca. brand.color lo define cuando el estado no lo hace.
backgroundColorHexstringnegroEl fondo de la pantalla de bloqueo (Progreso, Versus, Cuenta atrás). Solo iPhone.
backgroundGradientHexstringningunoUn segundo color. Con backgroundColorHex, el fondo pasa a ser un degradado (Progreso, Versus, Cuenta atrás). Solo iPhone.

Imágenes

Los campos de imagen aceptan una URL https completa que el teléfono pueda descargar. Usa WebP. Las formas y los tamaños están en imágenes que encajan. Una URL de imagen nueva en una actualización reinicia la tarjeta, así que mantén las mismas URL entre llamadas.

CampoTipoPredeterminadoInstrucciones
headerIconUrlstringningunoEl logo en Progreso y Cuenta atrás, y la marca pequeña en Imagen. Se dibuja como un cuadrado redondeado.
backgroundImageUrlstringningunoUna imagen de tamaño completo detrás de la tarjeta: la foto de Imagen, o el fondo de Progreso o Versus. Una capa oscura mantiene el texto legible. Cuenta atrás no la muestra.
lockScreenImageUrlstringningunoUna versión para la pantalla de bloqueo de headerIconUrl, cuando la pantalla de bloqueo necesita una imagen distinta a la de la Dynamic Island oscura. La usan Progreso e Imagen.
islandImageUrlstringningunoSolo Imagen. Una foto aparte para la Dynamic Island, que es más pequeña que la pantalla de bloqueo. Si falta, usa la foto de la pantalla de bloqueo. Solo iPhone.
androidIconUrlstringningunoReemplaza headerIconUrl en Android.
androidImageUrlstringningunoReemplaza backgroundImageUrl en Android. Imagen la muestra como la foto expandida.
immersivebooleanfalsetrue quita la capa oscura sobre backgroundImageUrl. Úsalo solo con imágenes oscuras. Solo iPhone.

Progreso

CampoTipoPredeterminadoInstrucciones
progressnumber0Relleno de la barra de 0 a 1. Con segments en el estilo segmentado, se usa en su lugar la proporción de pasos completados.
progressStylestringsegmentedsegmented (una cápsula por paso) o linear (una barra, con sus extremos rotulados con las etiquetas del primer y del último paso).
segmentsobject[]ningunoLos pasos, cada uno { "label": string, "complete": boolean }. Hasta 12. Envía la lista completa en cada actualización.
estimatedMinutesnumberningunoMinutos enteros. Muestra «N min» en la Dynamic Island compacta cuando no hay stage. 0 lo oculta. Solo iPhone.

Cuenta atrás

CampoTipoPredeterminadoInstrucciones
countdownTonumberningunoLa hora objetivo en segundos de época Unix, como número (no milisegundos ni texto). El reloj corre en el teléfono. Se envía una alerta cuando llega la hora.
countdownStylestringautohms (00:00:00), days, hours, months, years o auto. auto muestra un reloj en marcha (00:00:00) en las últimas 36 horas, y antes de eso la unidad entera más grande.
completionTextstringningunoSe muestra en lugar del reloj cuando llega la hora, y es el título de esa alerta. Sin él, iPhone muestra secondaryText y Android muestra primaryText.

Botón de acción

Para quitar el botón, envía los tres campos como "".

CampoTipoPredeterminadoInstrucciones
actionLabelstringningunoEl texto del botón («Ver en directo»). iPhone lo muestra en Imagen y Versus, en la pantalla de bloqueo y en la Dynamic Island expandida, no en la compacta. Android lo muestra en cualquier diseño cuando actionURL está definido.
actionURLstringningunoLa URL http o https que abre el botón. Las demás URL se descartan.
actionColorHexstringrojo (Versus), naranja (Imagen)El color del botón. Solo iPhone.

El objeto versus

Defínelo dentro de state cuando layout es versus.

CampoTipoPredeterminadoInstrucciones
leftName / rightNamestring""Los nombres de los dos lados.
leftScore / rightScorestring"0"Puntuaciones como texto, así que «12», «$1.500» y «X» funcionan. Los números se convierten en texto.
leftStatus / rightStatusstring""Una línea pequeña bajo cada nombre («Ganador»).
activeSidestringninguno"left" o "right". Cuando la Dynamic Island está en su tamaño mínimo, muestra el logo de ese lado.
leftColorHex / rightColorHexstringcolor de textoEl color de la puntuación de cada lado. Solo iPhone.
centerLabelstringningunoTexto pequeño en el centro («Mapa»).
centerValuestringningunoEl valor debajo («Overpass»).
leftImageUrl / rightImageUrlstringningunoLos dos logos. Los PNG transparentes quedan mejor.
centerImageUrlstringningunoUna imagen en el centro (un artículo de subasta, un mapa).
sourceLogoUrlstringningunoEl logo de la liga o la marca: la franja inferior en iPhone, el mosaico del Apple Watch y el icono de Android.

El objeto brand

Opcional, se define en el nivel superior de la llamada start. Cámbialo después con POST /api/branding. El sitio que se muestra bajo el nombre de la marca viene de la página que aloja el botón de lanzamiento, así que no es un campo de marca.

CampoTipoInstrucciones
titlestringEl nombre de la actividad en la lista de la app. Si falta, usa name.
namestringEl nombre de la marca («Acme»). Se muestra en la app, en la franja inferior de Versus y como título de la alerta cuando primaryText está vacío. Omítelo para no mostrar nombre de origen.
logostringLa URL del logo para la portada de la app. Si falta, usa headerIconUrl y luego el logo de WebActivity.
descriptionstringUna línea corta bajo el título en la portada. Si falta, usa secondaryText.
colorstringEl color de la marca como #RRGGBB. Define accentColorHex cuando el estado no lo tiene.

¿Quieres crear actividades en directo sin «desarrollarlas»?

¿Quieres empezar a crear hoy?

Sin enviar nada al App Store y sin código nativo que mantener. Un enlace lleva tu actividad a las pantallas de tus usuarios, y una API fácil de usar la mantiene al día.

Incluye: 7.000 envíos push gratis al mes

Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaFregar sueloComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
Directo
Ver directoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer directo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
EmbarqueEn vueloLlegó
Embarque
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaFregar sueloComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
Directo
Ver directoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer directo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
EmbarqueEn vueloLlegó
Embarque
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
8 PM
Lavando la ropaTermina antes de las 8:00 PM
Lavar ropaFregar sueloComer
Domino'sPreparando
912
Movistar RidersMovistar RidersTerrorista9
MapaOverpass
12HeroicHeroicAntiterroristaCSGOCSGO EsportsVer directo
Directo
Ver directoGatocam de MolyHace 3 segundosCámara del gato
Ya está en el hornoMat tiene tu pedido en el horno.Domino's
PreparandoEn caminoEntregado
Pensando
Revisando endpoint de APIPreparando cambios en Foodscout
PensandoTrabajandoListo
Llega en 30 minutosMat va a toda prisa hacia ti.Domino's
En caminoEntregado
GTA00:00
GTA00:00:00GTA VI
San Francisco ShockLocal1
MapaMidtown
3
Dallas FuelVisitanteOverwatch LeagueVer directo
United 1423Puerta B22 · Asiento 14C · SFO → JFK
EmbarqueEn vueloLlegó
Embarque
Llega en 6 minutosMarcus · Toyota CamryToyota Camry
En caminoLlegó
6 min