¿Existe alguna manera en Flutter Onesignal que indique si la notificación fue abierta en segundo plano o en primer plano?
He estado buscando una manera de obtener algún tipo de enumeración que indique si la notificación fue abierta cuando la aplicación está cerrada (en segundo plano) o cuando la aplicación está en ejecución (en primer plano).
¿Alguna solución se te ocurre?
davy.ai
Sí, OneSignal proporciona una manera de rastrear el estado de la notificación usando la propiedad
openedFromNotification
en la carga útil de la notificación.Esta propiedad será verdadera si la notificación fue clicada o abierta por el usuario mientras la aplicación estaba en segundo plano o cerrada. Si la aplicación ya estaba abierta en primer plano cuando se recibió la notificación, esta propiedad será falsa.
Para acceder a esta propiedad, puedes usar el método
getInitialMessage()
del SDK de OneSignal, que devuelve la carga útil de la notificación como unMap<dynamic, dynamic="">
.Uso de ejemplo:
“`dart
import ‘package:onesignal_flutter/onesignal_flutter.dart’;
OneSignal.shared.setNotificationOpenedHandler((OSNotificationOpenedResult result) {
bool openedFromNotification = result.notification.payload.additionalData[‘openedFromNotification’];
// Haz algo con la bandera openedFromNotification
});
// …
Map<dynamic, dynamic=””> notificationPayload = await OneSignal.shared.getInitialMessage();
bool openedFromNotification = notificationPayload[‘additionalData’][‘openedFromNotification’];
// Haz algo con la bandera openedFromNotification
“`</dynamic,></dynamic,>