Я знаю, что подобные вопросы возникали раньше, но я думаю, что мне нужно больше разъяснений, поскольку я до сих пор не знаю, как это сделать. Я начинающий программист, поэтому, пожалуйста, прости меня за любые ошибки.
Я пытаюсь получать ежедневные напоминания о ежедневных задачах из моего приложения, если пользователь еще не завершил его, так как я могу сделать так, чтобы оно не показывалось когда он уже выполнил задание?
Решения, которые я нашел до сих пор, предлагают удалить ожидающие уведомления и настроить новое для будущей даты в то же время.
Я успешно настроил ежедневные уведомления используя этот код:
func sendDailyReminder() {
let content = UNMutableNotificationContent()
content.title = "Daily reminder"
content.body = "You still have task to complete today."
content.sound = UNNotificationSound.default
var dateComponents = DateComponents()
dateComponents.hour = 20
dateComponents.minute = 00
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
let request = UNNotificationRequest(identifier: "dailyTrigger", content: content, trigger: trigger)
center.add(request) { (error) in
if let error = error {
print("Notification Error: ", error)
}
}
}
я также могу успешно удалить ожидающие уведомления с помощью метода removePendingNotificationRequest, но как я могу настроить триггер на завтра с использованием dateComponents здесь?
Или есть какой-либо другой способ достичь этого? Может быть, использовать фоновую выборку, чтобы проверить, выполнено ли это непосредственно перед отправкой уведомления?
Некоторые ответы, которые я обнаружил, предполагают, что это на самом деле невозможно, но тогда как любая задача или приложение для выполнения задач может достичь чего-то подобного?