Fond:Comment afficher plusieurs notifications locales
Je crée une application dans laquelle un bot vous envoie des messages. Ces messages peuvent être reçus en tant que notification locale.
Le problème:
Lorsque le robot envoie plusieurs notifications dans un court laps de temps (1 seconde entre chaque message), le centre de notification n'affichera un message. J'entendrai la notification sonore à chaque fois que j'attends, mais je ne verrai toujours que le premier message.
Code pertinent:
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)")
}
}
}
Comme mentionné par Arnav c'est fonctionnalité attendue, alors maintenant la question devient, ce que je s une bonne solution de contournement? – osebas15
Le problème était que j'essayais d'envoyer les notifications de l'application même si l'application était devenue inactive. Il a été résolu en réalisant cela et en faisant la queue toutes les notifications à venir avant que l'application ne perde réellement le statut actif – osebas15