Запускать локальное уведомление в установленное время с интервалом в день. (например, с 10:00 до 18:00 с интервалом в 5 минут ежедневно)
Я создаю приложение для установки локальных уведомлений, которые могут запускаться между установленным временем с интервалом в минутах, который я могу выбрать. Мне удалось запустить локальное уведомление, но я не знаю, как установить его между определенным временем дня.
//Модель
struct ReminderModal:Codable{
var Title:String
var Description:String
var Frequency:TimeFrequencyType
var Id:String
var StartTime:Date?
var EndTime:Date?
}
struct TimeFrequencyType:Codable {
let id: Int
let name: String
}
let frequencyTypeArr = [
TimeFrequencyType(id: 1, name: "1 Minute"),
TimeFrequencyType(id: 5, name: "5 Minutes"),
TimeFrequencyType(id: 10, name: "10 Minutes"),
TimeFrequencyType(id: 15, name: "15 Minutes"),
TimeFrequencyType(id: 20, name: "20 Minutes"),
TimeFrequencyType(id: 39, name: "30 Minutes"),
TimeFrequencyType(id: 60, name: "60 Minutes")
]
// Код для уведомления
let name = obj.Title
let description = obj.Description
let id = obj.Id
let fid = obj.Frequency.id
// build notification
let content = UNMutableNotificationContent()
content.title = NSString.localizedUserNotificationString(forKey: "\(name)", arguments: nil)
content.body = NSString.localizedUserNotificationString(forKey: "\(description)", arguments: nil)
content.sound = UNNotificationSound.default
content.badge = UIApplication.shared.applicationIconBadgeNumber + 1 as NSNumber;
content.categoryIdentifier = "com.qtechsoftware.ReminderApp"
// Deliver the notification
let trigger = UNTimeIntervalNotificationTrigger.init(timeInterval: TimeInterval(fid*60), repeats: true)
let request = UNNotificationRequest.init(identifier: "\(id)", content: content, trigger: trigger)
// Schedule the notification.
let center = UNUserNotificationCenter.current()
center.add(request)
Путь Git для источника - ReminderApp
1 ответ
Вы используете неправильный синтаксис для его запуска.https://developer.apple.com/documentation/usernotifications/scheduling_a_notification_locally_from_your_app Используйте это руководство, чтобы создать именно то, что вы хотите.
tl;dr:
let trigger = UNCalendarNotificationTrigger(
dateMatching: dateComponents, repeats: true)