Показать обратный отсчет в теле содержимого уведомления - PullRequest
0 голосов
/ 23 сентября 2019

Я показываю уведомление, которое попросит пользователя предпринять какое-то действие в течение следующих 10 секунд, в противном случае он что-то сделает.

Я хочу обновить текст уведомления каждую секунду, чтобы пользовательзнает, сколько времени ему осталось действовать, например.Device not connected. Restarting watcher in X seconds Где X обновляется каждую секунду до 0.

Вот что у меня есть:


    let centre = UNUserNotificationCenter.current();
    let content = UNMutableNotificationContent();
    var i:Int = 10;

    content.title = NSString.localizedUserNotificationString(forKey: "This is the title", arguments: nil)
    content.body = NSString.localizedUserNotificationString(forKey: "Device not connected. Restarting watcher in \(i) seconds", arguments: nil)
    content.categoryIdentifier = "Category";
    content.sound = UNNotificationSound.default;

    let request = UNNotificationRequest(identifier: "FiveSecond", content: content, trigger: UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false));

    let completeAction = UNNotificationAction.init(identifier: "Complete", title: "Complete", options: UNNotificationActionOptions())
    let categories = UNNotificationCategory.init(identifier: "Category", actions: [completeAction], intentIdentifiers: [], options: [])

    centre.setNotificationCategories([categories]);
    centre.add(request, withCompletionHandler: nil);

    let timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true) {_ in
        i-=1;
    }

    DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(10)) {
        timer.invalidate();
        centre.removeDeliveredNotifications(withIdentifiers: ["FiveSecond"]);
    };
}

Возможно ли это сделать?

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