我正在处理一个警报应用程序项目(单击github链接(此代码正常工作,但问题是在当时的大约64个,因此我无法发送继续发送在用户响应通知之前的通知。我读了一些Apple限制本地通知仅为64,但是我在Apple Store上看到了许多应用程序,这些应用程序在此处连续发送通知。
。https://itunes.apple.com/us/red-clock-free-dedition-the-minimal-alarm-alarm-clock/id567374573?mt = 8https://itunes.apple.com/us/app/alarmy-alarmy-alarm-clock/id1163786766?mt = 8
任何人都帮助了解该应用程序如何连续发送,并且我尝试了这些应用程序在用户响应该应用程序之前发送通知(我检查了超过1小时(。以下是设置单个通知的代码。
let comingSunday = findNext("Sunday", afterDate: fireDate.adding(minutes: item))
let triggerDate = Calendar.current.dateComponents([ .year, .month, .weekday, .hour, .minute, .second], from: comingSunday!)
let trigger = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: alarm.repeatAlarm)
let request = UNNotificationRequest(identifier: "(alarm.uuid)0(item)", content: notificationContent, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if let error = error {
print("Unable to add notification request, (error.localizedDescription)")
}
}
带有连续通知的警报应用的视频
请从应用商店安装和运行应用程序,并注意在发布答案之前的通知在上述应用程序中的工作方式
您可以在本地数据库中存储有关所有通知的信息。
例如,如果您有超过64个通知,则可以通过Unusernotificationcenter发布64个通知,而其他通知则保存到本地数据库。
如果已完成本地通知之一(已经呈现(,则可以从本地数据库中获取有关第一个通知的信息并安排它(您也可以从本地数据库中删除它,或添加指定键(例如Isscheduled((。
您可以在委托方法中处理此操作:
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)
可能是微不足道的,但是如果您只需要被告知更多次,我通常使用:
UNTime IntervalnotificationTrigger( TimeInterval:60.0, 重复:true(
因此,您可以添加一个计算一个,并且可以与您的另一个(真实(通知共存。用户点击后,您可以杀死它。
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)
委托仅在应用程序运行