uilocalnotification - iOS 13本地通知未发送
问题描述
我每天早上 8 点都会设置一个重复发生的本地通知。这在每个 iOS 中都运行良好,除了当我更新到 iOS 13+ 时,它不再发送我的本地通知。那部分没有代码更改。我见过有人在 iOS 13 上遇到推送通知问题,但这是本地的,所以我不知道为什么它突然停止在 iOS 13 上工作。我尝试使用 xcode 10 和 11。
如果有人需要发布代码,我可以得到,但我很好奇是否有其他人在本地通知和 iOS 13 上遇到过这个问题。
解决方案
我想我明白了!
至少对我来说,设置触发器UNCalendarNotificationTrigger
不起作用。但是,如果我UNTimeIntervalNotificationTrigger
改用它,效果很好!
这是我的代码:
let now = Date(timeIntervalSinceNow: 0)
// If event has already occured, silently fail.
if (timelineEvent.event.time < now) {
return
}
// Otherwise, let's calculate the time until the next event
let interval = timelineEvent.event.time.timeIntervalSince(Date(timeIntervalSinceNow: 0))
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: interval, repeats: false)
如果您严格针对 iOS 13 及更高版本,可以稍微简化日期比较:
let now = Date(timeIntervalSinceNow: 0)
// If event has already occured, silently fail.
if (timelineEvent.event.time < now) {
return
}
// Otherwise, let's calculate the time until the next event
let interval = now.distance(to: timelineEvent.event.time)
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: interval, repeats: false)
奇怪的是,Date().distance(to: Date)
它似乎仅适用于 iOS 13+,但文档说它从 iOS 7.0 开始可用。
推荐阅读
- c++ - SDL2 Window 使用固定且不可更改的值进行初始化
- sql - R中的sql查询,比较两个日期
- typescript - 带有 SEARCH 的 MathExpression 的 CloudWatch 警报和图表
- r - wrtie.csv 与 sys.date 在 R 中文件名的末尾?
- python - 带有存储上传触发器的 Azure 函数 (Python) 因大文件上传而失败
- c# - 如何在 azure devops 管道中构建单个项目工件
- html - Flex box 属性以允许统一显示
- html - Bootstrap 导航栏不显示
- powershell - 匹配来自 ExchangeOnline 的用户输入
- python - 使用 FRED 的 pandas 数据读取器时缺少值