无法通过 UNUserNotificationCenter 获得重复的每日通知以显示
Posted
技术标签:
【中文标题】无法通过 UNUserNotificationCenter 获得重复的每日通知以显示【英文标题】:Unable to get repeating daily notification to show with UNUserNotificationCenter 【发布时间】:2020-07-19 20:49:02 【问题描述】:我的目标是设置一个重复的每日提醒通知。尽管在代码中设置了repeat: true
,但以下代码始终成功显示通知一次,但不会重复。
整个通知代码如下:
let notificationID = "daily_sleep_alarm"
let title = "Rest your weary eyes"
let body = "It's bedtime. The comfort of your blanket beckons you."
UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: [notificationID])
let center = UNUserNotificationCenter.current()
let content = UNMutableNotificationContent()
content.title = title
content.body = body
content.categoryIdentifier = "daily_sleep_alarm"
content.userInfo = ["customData": "fizzbuzz"]
content.sound = nil
var dateComponents = DateComponents()
dateComponents.hour = hourSelected
dateComponents.minute = minuteSelected
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: notificationID, content: content, trigger: trigger)
center.add(request)
如上所述,此代码在一次之后没有成功显示通知。我没有其他代码可以清除带有此特定 notificationID
的待处理通知。
在应用启动时,我还会查看center.getPendingNotificationRequests
提供的待处理通知,它始终显示为无。
非常感谢任何关于我需要做什么来正确设置每日重复通知的见解。
【问题讨论】:
在此之前您是否检查过用户的通知访问权限? @KaylaGalway 感谢您的意见。我确实在检查权限。这也是我的测试设备上的问题,它们都具有允许的权限。 【参考方案1】:我只是在日常使用这些简单的代码行
func setNotifications(with interval: TimeInterval)
let content = UNMutableNotificationContent()
content.title = "Tittle"
content.subtitle = "Subtle"
content.body = "Don't forget yourself!"
content.badge = 1
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: interval,
repeats: true)
let requestIdentifier = "demoNotification"
let request = UNNotificationRequest(identifier: requestIdentifier,
content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request,
withCompletionHandler: (error) in
// Handle error
)
【讨论】:
谢谢格里高利。您在代码中设置的时间间隔是多少,这是如何填充的? 只是秒双值以上是关于无法通过 UNUserNotificationCenter 获得重复的每日通知以显示的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在 Swift 中没有收到来自 Firebase 的推送通知?