Свифт Уведомления нескольких Баннеров - PullRequest
0 голосов
/ 15 мая 2018

Я знаю, что эта тема знакома, но у меня огромная проблема с баннерами уведомлений. Я уже изучил большинство потоков stackoverflow по этой теме, но не было правильных ответов.

Моя проблема: я хочу повторять Уведомление каждый день в 22:00. Повторяется правильно, в первый и второй день. На третий и четвертый день это повторилось 3 раза в 10 вечера с тем же баннером.

Это мой код:

UNUserNotificationCenter.current().requestAuthorization(
        options: [.alert,.sound])
    {
        (granted, error) in
        if let error = error {
            print("granted, but Error in notification permission:\(error.localizedDescription)")
        }
    }
    let notificationContent = UNMutableNotificationContent()
    notificationContent.title = "Diary of Health"
    notificationContent.body = "Wie war dein Tag?"

    var date = DateComponents()
    date.hour = 22
    date.minute = 00
    date.second = 00
    let notificationTrigger = UNCalendarNotificationTrigger(dateMatching: date, repeats: true)

    let notificationRequest = UNNotificationRequest(identifier: "\(NSDate().timeIntervalSince1970)", content: notificationContent, trigger: notificationTrigger)
    UNUserNotificationCenter.current().add(notificationRequest) { (error) in
        if let error = error
        {
            let errorString = String(format: NSLocalizedString("Unable to Add Notification Request %@, %@", comment: ""), error as CVarArg, error.localizedDescription)
            print(errorString)
        }
    }

Очень прямолинейно, очень легко, вы можете подумать ...

Что я уже пробовал: - установка приложения совершенно новой - Установка его с новым bundleId - Обновил мою iOS из-за предыдущей ошибки в iOS 9.X

Я надеюсь, что кто-то может мне помочь.

1 Ответ

0 голосов
/ 15 мая 2018

Попробуйте позвонить removeAllPendingNotificationRequests перед добавлением.

Каждый раз, когда вы вызываете «add», добавляется новый (даже если заголовок / тело / время совпадают).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...