Продолжительность Swift 4 UNUserNotificationCenter (получение уведомлений за последние 24 часа) - PullRequest
0 голосов
/ 31 августа 2018

Я использую UNUserNotificationCenter для получения доставленных уведомлений, например:

UNUserNotificationCenter.current().getDeliveredNotifications { (notifications) in
    self.array = notifications
}

, а затем в viewWillDisappear я очищаю applicationIconBadgeNumber следующим образом:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.applicationIconBadgeNumber = 0
}

Это не заставляет мои уведомления длиться долго, да, я хотел бы, чтобы номер значка был 0 после того, как вы увидите уведомления, но я бы хотел, чтобы эти уведомления продолжались в течение 24 - 48 часов .... Как я могу выполнить это?

1 Ответ

0 голосов
/ 07 сентября 2018

Получить свойство даты уведомлений и очистить только те из них, которые были запущены за последние 24 часа. Используйте эту функцию:

func updateAppIcon() {
    UNUserNotificationCenter.current().getDeliveredNotifications { (notifications) in            
        let past24hNotifications = notifications
            .filter { $0.date > Date().addingTimeInterval(-24 * 60 * 60)}
        DispatchQueue.main.async {
            UIApplication.shared.applicationIconBadgeNumber = past24hNotifications.count
        }
    }
}

И назовите его в applicationWillResignActive(_ application:) из AppDelegate

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