Как показать несколько локальных уведомлений
Фон:
Я пишу приложение, где бот отправляет вам сообщения. Эти сообщения могут быть получены как локальное уведомление.
Эта проблема:
Когда бот отправляет несколько уведомлений в течение короткого промежутка времени (1 секунда между каждым сообщением), центр уведомлений покажет только одно сообщение. Я буду слышать звук уведомления каждый раз, когда ожидаю, но я все равно увижу только первое сообщение.
Соответствующий код:
func postUserNotification(content: String, delay: TimeInterval, withDictionary dictionary: [String:String] = [:]) {
let notificationContent = UNMutableNotificationContent()
notificationContent.body = content
notificationContent.userInfo = dictionary
notificationContent.categoryIdentifier = "message"
let dateAfterDelay = Date(timeIntervalSinceNow: delay)
let dateComponents = Calendar.current.dateComponents([.year,.month,.day,.hour,.minute,.second], from: dateAfterDelay)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)
let identifier = "identifier" + "\(NotificationManager.incrementor)"
let localNotification = UNNotificationRequest(identifier: identifier, content: notificationContent, trigger: trigger)
UNUserNotificationCenter.current().add(localNotification){ (error : Error?) in
if let theError = error {
print("the error is \(theError.localizedDescription)")
}
}
}
1 ответ
Решение
Ничего плохого в вашем коде:
Как вы написали в своем вопросе, это упоминается в Apple Docs:
If you are sending multiple notifications to the same device or
computer within a short period of time, the push service will send only
the last one.
https://developer.apple.com/library/content/technotes/tn2265/_index.html