Flutter 每天安排不同的通知

Jas*_*bek 4 android schedule ios localnotification flutter

我是 Flutter 的新手。我正在开发一个带有通知的应用程序,其中通知将在一天的不同时间显示。

例如:(3:25 AM、12:24 PM、17:22 PM、19:52 PM、21:02 PM)。

这些时间会因天而异。时间与相应的天数一起存储在 DB 中。即使应用程序已终止且未被使用,也应显示这些通知。

问题:

  1. 获取新一天午夜左右的新数据。(例如,在上午 00:00 左右,我的应用程序应该使用新时间重新安排所有昨天的通知,以通知用户正确的数据)
  2. 我正在使用flutter_local_notifications来安排通知。有时它不会触发通知(如果预定的时间差超过 2 小时)。这就是为什么我要安排最快的通知(例如,如果通知应该在凌晨 3:25 出现,那么我想在 30 分钟前安排通知)。但我知道这是否是可能的。

我试过的。

  1. background_fetch用于与数据库同步时间,但我无法使其工作

  2. flutter_local_notifications用于显示通知

请考虑我想显示通知的情况,即使我的应用程序未运行或在后台显示,而且我想同时支持 Android 和 iOS

欢迎任何帮助或建议。提前致谢

Jas*_*bek 5

对于那些面临同样问题的人,我设法通过以下配置解决了我的问题

Future<void> initPlatformState() async {
    var config = BackgroundFetchConfig(
      minimumFetchInterval: 15,
      forceAlarmManager: true,
      stopOnTerminate: false,
      startOnBoot: true,
      enableHeadless: true,
      requiresBatteryNotLow: false,
      requiresCharging: false,
      requiresStorageNotLow: false,
      requiresDeviceIdle: false,
      requiredNetworkType: NetworkType.NONE,
    );
    BackgroundFetch.configure(config, _onBackgroundFetch);
  }
Run Code Online (Sandbox Code Playgroud)

Github 存储库以查看工作代码。不要忘记支持,如果答案有帮助,请为答案点赞并在github上给一个star

  • 我已经尝试过与后台获取相同的操作,但无法这样做,但您的示例工作得很好,谢谢。只是为了告知在 build.gradle 中添加此内容以进行后台获取 maven { // [required] background_fetch url "${project(':background_fetch').projectDir}/libs" } (2认同)