Saltar al contenido principal
Las Notificaciones en vivo de Android de OneSignal le permiten enviar actualizaciones en tiempo real a una sola notificación, reduciendo el desorden y mejorando la participación. Estas notificaciones permanecen persistentes y actualizan su contenido dinámicamente, ideales para puntuaciones deportivas, progreso de descarga o seguimiento de eventos. Para recibir Notificaciones en vivo, los usuarios de Android deben tener las notificaciones push habilitadas.

Requisitos

  • Su aplicación debe usar la última versión del SDK de OneSignal.
  • Los usuarios de Android deben tener los permisos de notificaciones push habilitados.

Notificaciones en vivo vs. push estándar

A diferencia de las notificaciones push regulares, que envían una nueva notificación cada vez, las Notificaciones en vivo usan una sola notificación actualizada con el tiempo. Las actualizaciones se envían a través de la API de creación de mensajes usando el mismo collapse_id.

Configuración

1. Implementar una extensión de servicio de notificación

Cree una clase NotificationServiceExtension que implemente INotificationServiceExtension. Esta clase intercepta las notificaciones entrantes y puede modificarlas o anularlas.
NotificationServiceExtention.kt

2. Agregar la extensión al Android Manifest

3. Crear tipos de Notificación en vivo

Un Tipo de Notificación en vivo indica qué Notificación en vivo iniciar.

Definir claves

Las Notificaciones en vivo se referencian por una key, que determina cómo se enrutan las actualizaciones.
NotificationServiceExtention.kt

Crear canales de notificación

Los canales definen cómo se comportan las notificaciones (sonido, vibración, apariencia). Debe crear canales para sus tipos de Notificación en vivo. Recomendamos:
  • Importancia baja para notificaciones de progreso
  • Deshabilitar insignias
  • Mantener el sonido y la vibración al mínimo
Consulte Categorías de canales de notificación de Android para más información.

Diseñar la Notificación en vivo

Al diseñar una Notificación en vivo, tiene la flexibilidad de crear un diseño de notificación para cada tipo de actualización. Cada diseño que cree debe asignarse a un tipo específico, lo que permite presentaciones variadas de una Notificación en vivo.
NotificationServiceExtention.kt
Consideraciones de diseño:
  • Ícono pequeño y color de acento
  • Ícono grande
  • Imagen grande
  • Botones de acción
Consulte Diseño de notificación personalizado de Android para opciones de diseño avanzadas.

4. Extraer la carga útil de la Notificación en vivo

Las Notificaciones en vivo usan el campo additional_data para pasar contenido estructurado.
NotificationServiceExtention.kt

Esquema de Notificación en vivo

Example Live Notification Payload

5. Manejar eventos de Notificación en vivo

Cada Notificación en vivo debe responder a los siguientes eventos:
NotificationServiceExtention.kt

Iniciar una Notificación en vivo

Cuando esté listo para iniciar una Notificación en vivo:
  • Establezca event_attributes para inicializar los datos estáticos de la Notificación en vivo. Estos datos no cambiarán durante la vida útil de la Notificación en vivo.
  • Establezca datos de event_updates para inicializar los datos dinámicos de la Notificación en vivo. Estos son los datos que pueden y cambiarán durante la vida útil de la Notificación en vivo.
  • Un collapse_id para asegurarse de que cada actualización anule la anterior. Este ID debe ser único para la Notificación en vivo para garantizar que las actualizaciones posteriores se reflejen en la misma notificación.
curl

Actualizar Notificación en vivo

Puede actualizar la Notificación en vivo tantas veces como desee, siempre que se haya iniciado primero.
  • Establezca datos de event_updates para inicializar los datos dinámicos de la Notificación en vivo. Estos son los datos que pueden y cambiarán durante la vida útil de la Notificación en vivo e informan con qué actualizar el contenido de su Notificación en vivo.
Ejemplo de solicitud cURL
curl

Finalizar Notificación en vivo

Ejemplo de solicitud cURL
curl

¡Ha creado exitosamente una Notificación en vivo!Documentos relacionados: