每天为Flutter安排通知

jogvjijk  于 2023-05-29  发布在  Flutter
关注(0)|答案(2)|浏览(209)

我有一个祈祷定时应用程序,每天显示5个祈祷通知。
为了简单起见,让我们假设每天有5个事件(祈祷)。
1.五点
1.六点
1.七点整
1.八点
1.九点
我想为每个事件安排通知。
直到这里,没有问题,我可以使用Flutter_local_notifications包,并使用“每日”方法来安排这5个通知每天。
问题是,这些时间每2-3天更改一次,因此通知的时间也必须在此期间更改。
现在,我已经以这样的方式编写了代码,无论用户何时打开应用程序,都会再次安排通知。这是可行的,但应用程序在启动时会冻结几秒钟,这看起来真的很糟糕。
还有别的办法吗?
编辑:明年全年的祈祷时间都是在应用程序中计算的,唯一的问题是如何安排。

pexxcrt2

pexxcrt21#

就我对你问题的理解,我愿意回答。
虽然你的祷告时间会改变,但如果有任何特定的模式,你也可以使用每周通知,并将每周的每一天都设置为不同的时间。就像这样:

await flutterLocalNotificationsPlugin.showWeeklyAtDayAndTime(
    0,
    'On Monday Morning',
    'Your Prayer at Monday',
    Day.Monday,
    time,
    platformChannelSpecifics);

或者,您可以通过Firebase Cloud Messaging(FCM)在线发送通知,您可以在控制台中安排它,它将反映给所有人。
FCM参考:https://firebase.google.com/products/cloud-messaging
对于Flutter:https://pub.dev/packages/firebase_messaging
希望有帮助!
#编码快乐!

ztmd8pv5

ztmd8pv52#

我的兄弟,
我也在开发一个祈祷计时器应用程序,我没有找到任何有帮助的方法/包。
所以我所做的是,每次用户打开应用程序时,我都会安排接下来7天的祈祷(你可以把它安排在下个月甚至一年),我认为用户可能会在一周内使用该应用程序一次,所以我选择了一周。
每次我安排祈祷(通知)时,我都会将它们保存在共享首选项中的列表中,并带有祈祷的时间戳,在我安排下一次祈祷之前,我执行以下操作:
1.从共享首选项中获取列表。
1.从列表中删除已通过的祈祷。
1.检查剩余的祈祷次数是否大于30(接下来的6天)。
1.根据需要安排新的祈祷。
并确保您为每个通知使用唯一的ID,如果您计划使用相同的ID的两个通知,那么第二个将覆盖第一个。我使用了这个方法:

String getPrayerNotificationId(DateTime time) {
  return DateFormat('yyyyMMddkkmm').format(time);
}

希望这能帮上忙。

相关问题