有条件地显示计划的通知

时间:2020-09-03 03:25:35

标签: flutter dart notifications

如何使用flutter_local_notifications根据条件显示计划的通知。如果不满足条件,我不想显示通知。看来当您安排通知时,它会无条件显示。

在这种情况下,我想检查我在应用程序中维护的嵌入式数据存储Sembast上的某些状态。我的应用程序直接与数据存储区进行交互。因此,在这种情况下,我可能会使用应用程序中的现有代码来轮询数据存储。不确定是否可行,因为通知可能在我的应用未运行时安排。

例如,我将通知安排为每天的9:00 AM。我希望在9:00 AM运行一些代码来检查条件是否为真,然后仅显示通知。即使应用已关闭,也应该发生这种情况。

2 个答案:

答案 0 :(得分:1)

我结合使用background_fetch和flutter_local_notifications来有条件地以及在应用未运行时显示通知。

background_fetch仅允许您以大于15分钟的时间间隔在后台运行代码,而不能在特定时间安排代码。不理想,但我可以使用它。重要的是,在Android上,即使应用程序已关闭,您也会收到事件(称为“无头事件”)。在iOS上,如果应用未被用户终止,则只会收到无头事件。这是由于iOS的限制/功能。

在无头和无头的background_fetch事件处理程序中,我具有以下代码来生成通知:

  var androidPlatformChannelSpecifics = AndroidNotificationDetails(
      'your channel id', 'your channel name', 'your channel description',
      importance: Importance.Max, priority: Priority.High, ticker: 'ticker');
  var iOSPlatformChannelSpecifics = IOSNotificationDetails();
  var platformChannelSpecifics = NotificationDetails(
      androidPlatformChannelSpecifics, iOSPlatformChannelSpecifics);
  await flutterLocalNotificationsPlugin.show(
      0, 'my event', 'my event', platformChannelSpecifics,
      payload: 'item x');

答案 1 :(得分:0)

您需要编写一个Firebase云功能。这可以使用NodeJ或其他后端框架来完成。