Локальное уведомление отменяет предыдущее локальное уведомление - PullRequest
0 голосов
/ 19 октября 2018

У меня есть приложение MacOS Swift, в котором я использую локальные уведомления.Вот небольшой метод отправки этих сообщений:

func sendPushMessage(title: String, message: String, userInfo: [String:Any]) {
        let notification: NSUserNotification = NSUserNotification()
        notification.title = title
        notification.informativeText = message
        notification.userInfo = userInfo
        notification.soundName = NSUserNotificationDefaultSoundName
        notification.deliveryDate = Date()
        self.center.scheduledNotifications = [notification]
}

Это работает в течение длительного времени, и я получил все свои уведомления (а также все уведомления были показаны в центре уведомлений).Но на самом деле последнее уведомление отменяет предыдущее.Допустим, есть только один слот уведомлений, который всегда перекрывается последним уведомлением.

В моем центре уведомлений также отображается только одно уведомление (самое последнее) вместо всех полученных уведомлений.Я понятия не имею, когда это «перестает работать», но я думаю, один или два месяца назад?Я все еще на 10.13.6 high sierra.

Настройки уведомлений верны.

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Понятия не имею, что я сделал "неправильно".

Исправлена ​​проблема, когда приложение изменяло порядок уведомлений (в настройках уведомлений) на приложение вручную, после чего оно работало.После этого я мог изменить его обратно на новейший и все еще работающий.Точно был только баг в macOS.

0 голосов
/ 19 октября 2018

Как указано в документации , вы должны устанавливать разные идентификаторы для каждого уведомления.

Идентификатор уникален для уведомления.Уведомление, доставленное с тем же идентификатором, что и существующее уведомление, заменяет существующее уведомление, а не вызывает отображение нового уведомления.

Вы можете установить таким образом

notification.identifier = "yourIdentifier"
...