如何使用 flutter_local_notifications 根据条件显示预定通知。如果不满足条件,我不想显示通知。似乎当您安排通知时,它会无条件地显示。
在这种情况下,我想检查我在我的应用程序中维护的嵌入式数据存储 Sembast 的一些状态。我的应用程序直接与数据存储区交互。因此,在这种情况下,我会轮询数据存储,可能会使用我的应用程序中的现有代码。不确定这是否可行,因为可以在我的应用程序未运行时安排通知。
例如,我安排在每天上午 9:00 发生通知。在上午 9:00,我希望运行一些代码来检查条件是否为真,然后才显示通知。即使应用程序关闭,这也应该发生。
最佳答案
我使用了 background_fetch 的组合和 flutter_local_notifications 在应用程序未运行时有条件地显示通知。
background_fetch 仅允许您以大于 15 分钟的间隔在后台运行代码,并且您不能将其安排在特定时间。不理想,但我可以使用它。重要的是,在 Android 上,即使应用程序关闭,您也会收到事件(称为“ headless 事件”)。在 iOS 上,只有当应用没有被用户终止时,您才会收到 headless 事件。这是因为 iOS 的限制/功能。
在 headless 和非 headless 的 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');
关于flutter - 有条件地显示预定通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63716335/