我正在处理alarm app project(Click for GitHub link)此代码工作正常,但问题是当时通知限制为大约64,所以在用户响应通知之前我无法发送继续通知。我读了一些苹果限制本地通知只有64但我在苹果商店看到很多应用程序在这里连续发送通知,这里有来自苹果商店的几条链接。
https://itunes.apple.com/us/app/red-clock-free-edition-the-minimal-alarm-clock/id567374573?mt=8 https://itunes.apple.com/us/app/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)")
}
}
Video of Alarmy app with continuous notification
请在App Store中安装并运行应用,并在发布回答之前注意通知在上述应用中的运作方式
答案 0 :(得分:2)
您可以在本地数据库中存储有关所有通知的信息。
例如,如果您有超过64个通知,则可以通过UNUserNotificationCenter发布64个通知,其他通知保存到本地数据库。
如果其中一个本地通知已完成(已经提供),您可以从本地数据库获取有关第一个通知的信息并安排它(也可以从本地数据库中删除它,或者添加指定键(例如isScheduled))
您可以在委托方法中处理此操作:
var menuBar = document.getElementById('menu-bar').addEventListener('click', menuSlideLeft());
答案 1 :(得分:0)
可能是微不足道的,但如果你只需要多次通知, 我通常使用:
UNTimeIntervalNotificationTrigger( timeInterval:60.0, 重复:true)
所以你可以添加一个重要的一个,它可以与你的其他(真实)通知共存。 一旦用户点击,您就可以杀死它。
答案 2 :(得分:0)
func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Swift.Void)
代理仅在应用程序运行时起作用