Для создания локальных уведомлений по расписанию на Swift вам понадобится использовать класс UNUserNotificationCenter из iOS-фреймворка UserNotifications.
Вот пример кода, который позволит вам создавать локальные уведомления по расписанию на Swift:
import UIKit import UserNotifications class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Запрашиваем разрешение на отправку уведомлений UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { (granted, error) in if granted { // Если разрешение получено, создаем уведомление self.scheduleNotification() } else { // Если разрешение не получено, выводим сообщение об ошибке print("Разрешение на отправку уведомлений не получено") } } } func scheduleNotification() { // Создаем контент уведомления let notificationContent = UNMutableNotificationContent() notificationContent.title = "Напоминание" notificationContent.body = "Привет! Это локальное уведомление" // Устанавливаем звук уведомления notificationContent.sound = UNNotificationSound.default // Создаем календарь для установки времени уведомления var dateComponents = DateComponents() dateComponents.hour = 9 dateComponents.minute = 0 // Создаем триггер для уведомления на основе календаря let notificationTrigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) // Создаем запрос на уведомление let notificationRequest = UNNotificationRequest(identifier: "ScheduledNotification", content: notificationContent, trigger: notificationTrigger) // Добавляем запрос в центр уведомлений UNUserNotificationCenter.current().add(notificationRequest) { (error) in if let error = error { print("Ошибка при создании уведомления: (error.localizedDescription)") } } } }
В приведенном выше примере ViewController является контроллером представления, в котором мы создаем и планируем уведомление. В методе viewDidLoad
мы запрашиваем разрешение на отправку уведомлений, а после получения разрешения вызываем метод scheduleNotification
для создания уведомления.
Метод scheduleNotification
создает контент уведомления, включая заголовок и текст. Затем мы создаем календарь и устанавливаем в нем необходимое время для уведомления. После этого мы создаем триггер для уведомления на основе календаря. Наконец, мы создаем запрос на уведомление и добавляем его в центр уведомлений.
Обратите внимание, что для создания и запуска уведомления необходимо получить разрешение пользователя на отправку уведомлений. Мы используем метод requestAuthorization
класса UNUserNotificationCenter для этого.
Не забудьте также добавить разрешение на отправку уведомлений в вашем файле Info.plist:
<key>NSLocalNotificationCenterUsageDescription</key> <string>Разрешение на отправку уведомлений</string>
Вышеуказанный пример демонстрирует создание уведомления, которое будет отправляться каждый день в 9:00. Однако вы можете настроить время уведомления и повторяемость в соответствии с вашими потребностями.