微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计划通知不适用于 iOS Flutter

如何解决计划通知不适用于 iOS Flutter

我正在使用 flutter_local_notifications 在每天的特定时间安排通知

用户可以选择不同的时区,它适用于Android但不适用于iOS,因为我没有使用iOS的经验,我不知道它如何处理通知

Future<void> _showNotification(
  BuildContext? context,NotificationDetails platformChannelSpecifics,Prayer prayer,DateTime dateTime) async {// dateTime is the time in another time zone,and time is the time passed to the zonedScheduled method
var time = _nextInstanceOfPrayer(dateTime);

if (time == null) {
  return;
}

await FlutterlocalnotificationsPlugin.zonedSchedule(
  _getId(time,prayer: prayer.toString()),prayer.toStr(context!),_getPrayerText(prayer.toStr(context)),time,platformChannelSpecifics,androidAllowWhileIdle: true,uilocalnotificationDateInterpretation:
      UIlocalnotificationDateInterpretation.absoluteTime,);}

还有这个获取间的方法

tzZone.TZDateTime? _nextInstanceOfPrayer(DateTime dateTime) {
final DateTime Now = DateTime.Now();

//converts time to specific location
tzZone.TZDateTime scheduledDate = tzZone.TZDateTime.from(
  dateTime.subtract(Now.timeZoneOffset),tzZone.UTC,);
if (scheduledDate.toUtc().isBefore(Now.toUtc())) {
  return null;
}

return scheduledDate;}

我正在尝试的是在手机本地时间的时间(时间)添加通知, 例如,用户选择+5 GMT 时区(5:00PM),本地时区是说+2 GMT(2:00PM),我想添加本地时间(5:00PM +5 GMT) 并在 (5:00 +2 GMT) 显示

我尝试将两个时间都转换为 UTC 并在 UTC 上显示通知 - 本地时区(如第二个代码所示),代码显示有待处理的通知,但是当我更改设备的时间时,它没有' t 显示任何内容

注意:当我在 5 秒后添加手动时间时,效果很好

DateTime.Now().add(Duration(seconds: 5));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。