Я показываю уведомление, которое попросит пользователя предпринять какое-то действие в течение следующих 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"]);
};
}
Возможно ли это сделать?