2017-09-12 21 views
0

背景:複数のローカル通知を表示する方法

ボットからメッセージが送信されるアプリケーションを作成します。これらのメッセージは、ローカル通知として受信できます。

問題:

ボットは、時間の短いスパン内に複数の通知を送信する(各メッセージの間の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)") 
     } 
    } 
} 
+0

Arnavが述べたように、これは期待される機能性ですから、今質問は良い回避策ですか? – osebas15

+0

問題は、アプリが非アクティブになっていても、アプリからの通知を送信しようとしていたことでした。これを実現して、アプリが実際にアクティブステータスを失う前にすべての今後の通知をキューイングすることで解決されました – osebas15

答えて

関連する問題