Уведомление willPresent не будет вызывать при закрытии приложения - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь уведомить пользователя только по рабочим дням и не хочу делать это с циклом for, поэтому уведомление повторяет bool как true.Пока приложение открыто, функция willPresent работает, но когда приложение переходит в фоновый режим, функция willPresent не вызывается приложением и в выходные дни отправляет уведомление пользователю, а я этого не хочу.

Я уже установил UNUserNotificationCenter.current().delegate = self в didFinishLaunchingWithOptions

Вот моя функция willPresent в моем AppDelegate:

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {

        let date = Date()
        var dayOfWeek = date.getWeekDay()
        if dayOfWeek.rawValue == 1 || dayOfWeek.rawValue == 7{
            print("Don't send a notification")
            completionHandler([])
        }else{
            completionHandler([.alert, .sound, .badge])
        }
    }

Расширение, которое я использую:

extension Date {

    enum WeekDay: Int {
        case sunday = 1
        case monday
        case tuesday
        case wednesday
        case thursday
        case friday
        case saturday
    }

    func getWeekDay() -> WeekDay {
        let calendar = Calendar.current
        let weekDay = calendar.component(Calendar.Component.weekday, from: self)
        return WeekDay(rawValue: weekDay)!
    }
}

Любая помощь будет принята с благодарностью.Спасибо

1 Ответ

0 голосов
/ 03 июля 2019

Это потому, что вы должны использовать didReceive метод для получения фоновых уведомлений

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