J'ai construit une application avec flutter qui fonctionne comme un rappel.
Comment puis-je afficher des notifications à l'utilisateur même si l'application est fermée?
Pour les rappels, je recommanderais Plugin Flutter Local Notifications . Il a une puissante API de planification. De la documentation de notification locale:
Planification du moment où les notifications doivent apparaître - Affiche périodiquement un notification (par intervalles) - Planifie l'affichage d'une notification tous les jours à une heure spécifiée - Planifiez l'affichage d'une notification hebdomadaire un jour et une heure spécifiés - Capacité de gérer lorsqu'un utilisateur a tapé sur une notification lorsque l'application est au premier plan, à l'arrière-plan ou terminée -
Et pour les notifications Push, vous pouvez utiliser Firebase Cloud Messaging ou un signal plugin ou vous pouvez implémenter de manière native via platform-channels
Modifier: vous pouvez également déclencher des notifications en fonction de conditions spécifiques, même si l'application est fermée. Cela peut être achevé en exécutant le code Dart en arrière-plan. Citant le faq officiel:
Puis-je exécuter le code Dart en arrière-plan d'une application Flutter? Oui, vous pouvez exécuter le code Dart dans un processus en arrière-plan sur iOS et Android. Pour Pour plus d’informations, voir l’article Medium Exécution de la fléchette dans le fichier Fond avec des plugins Flutter et Geofencing.
Vous pouvez utiliser les notifications programmées en flottant.
var scheduledNotificationDateTime =
new DateTime.now().add(new Duration(seconds: 5));
var androidPlatformChannelSpecifics =
new AndroidNotificationDetails('your other channel id',
'your other channel name', 'your other channel description');
var iOSPlatformChannelSpecifics =
new IOSNotificationDetails();
NotificationDetails platformChannelSpecifics = new
NotificationDetails(
androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
await flutterLocalNotificationsPlugin.schedule(
0,
'scheduled title',
'scheduled body',
scheduledNotificationDateTime,
platformChannelSpecifics);
J'ai aussi été confronté à ce problème. Ce sont donc mes leçons
Dans mon cas: je peux recevoir une notification dans l'état App-Resume ou App-background, mais dans l'état App-Close, je ne reçois pas de notification.
Dans ce cas, notre organisme de notification était:
{notification: {body: null, title: null}, data: {body: hello, title: world}}
Pour recevoir une notification dans l'état App-Closed, nous avons modifié la notification en
{notification: {body: abc, title: abc}, data: {url: string, body: string, title: string}}