在跨时带中具有未注明的触发因素



我不能在跨时区适当地有10个本地通知(未通知(。

在时区 10小时,我希望它在17:00:00开火,然后安排它。

稍后,当我查看安排什么通知时,我将获得下一个开火日期,仍在时区 10小时,它将说17:00:00。

但是,当我将时区更改为设备上的 8小时,然后查看计划的通知时,我将获得下一个触发日期,然后它 still 说17:00:00。我本来希望它在两个小时前在15:00:00发射。

我该如何使其像这样工作?我已经尝试更改用于创建馈送给uncalendarnotificationtrigger的日期组件的日历的时区(尝试的事物是:TimeZone.init(identifier: "Somewhere")TimeZone.autoupdatingCurrent,可能是其他的(。但这只是不会改变,afaik i 始终即使我更改了时区,也要获得完全相同的火灾日期。

UNTimeIntervalNotificationTrigger可以解决此问题。

您可以计算您设置的日期和当前日期之间的差异,然后安排时间间隔触发器。

func timeIntervalTrigger(from date: Date, repeats: Bool) -> UNTimeIntervalNotificationTrigger {
    let timeInterval = date.timeIntervalSinceNow
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInterval, repeats: repeats)
    return trigger
}

相关内容

  • 没有找到相关文章

最新更新