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 mismocollapse_id.
Configuración
1. Implementar una extensión de servicio de notificación
Cree una claseNotificationServiceExtension que implemente INotificationServiceExtension. Esta clase intercepta las notificaciones entrantes y puede modificarlas o anularlas.
Consulte Extensión de servicio de notificación de Android para más detalles.
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 unakey, 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
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
- Í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 campoadditional_data para pasar contenido estructurado.
NotificationServiceExtention.kt
Esquema de Notificación en vivo
| Property | Required | Description |
|---|---|---|
key | Yes | Se usa para cargar la interfaz de usuario de notificación correcta. |
event | Yes | La acción a realizar en la Notificación en vivo. |
event_attributes | No | Los datos estáticos se usan para inicializar la Notificación en vivo; un esquema autodefinido que define los datos que su notificación necesita. |
event_updates | No | Contenido dinámico de la Notificación en vivo. Debe cumplir con la interfaz ContentState definida dentro de la Notificación en vivo de su aplicación. |
Example Live Notification Payload
5. Manejar eventos de Notificación en vivo
Cada Notificación en vivo debe responder a los siguientes eventos:| Event | Description | Required fields |
|---|---|---|
start | Inicia una Notificación en vivo con datos estáticos y dinámicos. | event_attributes, event_updates |
update | Actualiza la Notificación en vivo con nuevos datos dinámicos. | event_updates |
end | Finaliza y elimina la Notificación en vivo. | None |
NotificationServiceExtention.kt
Iniciar una Notificación en vivo
Cuando esté listo para iniciar una Notificación en vivo:- Establezca
event_attributespara 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_updatespara 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_idpara 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_updatespara 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.
curl
Finalizar Notificación en vivo
Ejemplo de solicitud cURLcurl
¡Ha creado exitosamente una Notificación en vivo!Documentos relacionados: