Планирование локальных уведомлений повторять ежедневно с завтрашнего дня в Swift
Я пытаюсь запланировать локальное уведомление, чтобы оно срабатывало каждый день (т.е. повторяется), в определенное время, но с завтрашнего дня.
т. е. "Запустить уведомление каждый день в 8 вечера, с завтрашнего дня"
Я использовал этот вопрос в качестве руководства, и я считаю, что я делаю то, что он говорит, но я все еще получаю уведомление сегодня, когда я запускаю следующий код (например, если я планирую уведомление до 8 вечера):
func testDateNotification(){
let content = UNMutableNotificationContent()
content.title = "Test"
content.body = "This is a test"
let tomorrow = Calendar.current.date(byAdding: .day, value: 1, to: Date())
let userCalendar = Calendar.current
var components = userCalendar.dateComponents([.hour, .minute], from: tomorrow!)
components.hour = 20
components.minute = 00
let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: true)
let request = UNNotificationRequest(identifier: "test", content: content, trigger: trigger)
UNUserNotificationCenter.current().add(request) { (error) in
if ((error) != nil){
print("Error \(String(describing: error))")
}
}
}
1 ответ
import UserNotifications
Проверить разрешение пользователя
UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]) { if $0 { } }
Добавить уведомление
let fromDate = Date(timeIntervalSince1970: Double(0.0)) let dateComponent = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: fromDate) let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponent, repeats: true) print(trigger.nextTriggerDate() ?? "nil") let content = UNMutableNotificationContent() content.title = "title" content.body = "body" let request = UNNotificationRequest(identifier: "identify", content: content, trigger: trigger) UNUserNotificationCenter.current().add(request) { if let error = $0 { print(error) return }else { print("scheduled") } }