ボットからメッセージが送信されるアプリケーションを作成します。これらのメッセージは、ローカル通知として受信できます。
問題:
ボットは、時間の短いスパン内に複数の通知を送信する(各メッセージの間の1秒)、通知センターは、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)")
}
}
}
Arnavが述べたように、これは期待される機能性ですから、今質問は良い回避策ですか? – osebas15
問題は、アプリが非アクティブになっていても、アプリからの通知を送信しようとしていたことでした。これを実現して、アプリが実際にアクティブステータスを失う前にすべての今後の通知をキューイングすることで解決されました – osebas15