Azure NotificationHub Android: onPushNotificationReceived no se llama cuando la aplicación de Android está en un estado de fondo/terminado.
Cuando la aplicación de Android está en estado de primer plano, se invoca el listener onPushNotificationReceived con los datos de la notificación. Cuando está en estado de segundo plano o terminado, se recibe la notificación pero el listener onPushNotificationReceived no se invoca automáticamente ni cuando toco la notificación. Estoy enviando las notificaciones desde Azure Portal.
{
"notification":{
"title":"Notification Hub Test Notification",
"body":"Esta es una notificación de ejemplo enviada por Azure Notification Hubs."
},
"data":{
"property1":"valor1",
"property2":53
},
"priority":"high"
}
Estoy siguiendo el tutorial: Enviar notificaciones push a dispositivos Android con Firebase SDK versión 1.0.0-preview1 (SDK actual) tutorial.
https://learn.microsoft.com/en-us/azure/notification-hubs/android-sdk
Android OS: 11
¿Hay algo más que necesite hacer aparte de los pasos mencionados en el enlace anterior?
davy.ai
Solución:
Cuando la aplicación de Android está en estado Foreground, el oyente
onPushNotificationReceived
se invoca automáticamente con los datos de la notificación. Sin embargo, cuando la aplicación está en un estado de fondo o terminado, la notificación se recibe pero el oyenteonPushNotificationReceived
no se invoca automáticamente ni cuando se toca la notificación.Para resolver este problema, debemos usar Firebase Cloud Messaging (FCM) en lugar de Azure Notification Hubs. FCM proporciona una forma más confiable y eficiente de enviar notificaciones push a dispositivos Android.
Para integrar FCM en una aplicación de Android, siga los pasos indicados en la sección “Firebase Cloud Messaging” del tutorial mencionado en la pregunta.
Además, asegúrese de agregar el siguiente código al archivo de manifiesto de su aplicación, dentro de la etiqueta
<application>
:Este código registra la clase
MyFirebaseMessagingService
para recibir mensajes de FCM.Además, asegúrese de que el SDK de Firebase esté configurado correctamente en su aplicación.
Una vez que se haya completado la integración, puede usar el siguiente código para recibir notificaciones push e invocar un método personalizado cuando se hace clic en la notificación:
El método
onNotificationOpened
se invoca cuando se hace clic en la notificación.Espero que esto ayude a resolver el problema.