Добрый день. Суть приложения: в указанные дату и время приложение должно «выбрасывать» локальные уведомления с определенными фразами. Фразы не перекрываются, поэтому вы не сможете их повторить. Как установить отдельное время и дату для каждого ключевого слова? Я новичок в Swift. Я пытаюсь понять. Но после гугля уже каша в голове. Согласно учебным пособиям, я сделал код, который работает, но работает с задержкой в 10 секунд. То есть после нажатия на кнопку через 10 секунд пу sh выбрасывается. Как сделать так, чтобы я просто устанавливал разные задержки (например, 3,6,9,12,15 часа для каждого ключевого слова) или перестраивал код для разделения каждого уведомления? Мне даже не нужно иметь все это одним нажатием кнопки. Вы просто входите в приложение, принимаете запрос на уведомления, и они приходят по часам. Вопрос может показаться очень глупым. Не судите строго. Прикрепленный код.
import UIKit
import UserNotifications
class ViewController: UIViewController {
@IBAction func sendNotification(sender: UIButton){
scheduleNotification(inSeconds: 10) {(success) in
if success {
print("We send it")
} else {
print("Failed")
}
}
}
func scheduleNotification(inSeconds seconds:TimeInterval, completion: (Bool) -> ()) {
removeNotification(withIdentifiers:["Bear"])
let date = Date(timeIntervalSinceNow: seconds)
print (Date())
print(date)
let content = UNMutableNotificationContent()
content.title = "Текст"
content.body = "Текст"
content.sound = UNNotificationSound.default()
let calendar = Calendar(identifier: .gregorian)
let components = calendar.dateComponents([.month, .day, .hour, .minute, .second], from: date)
let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: false)
let request = UNNotificationRequest(identifier: "Bear", content: content, trigger: trigger)
let center = UNUserNotificationCenter.current()
center.add(request, withCompletionHandler: nil)
}
func removeNotification(withIdentifiers identifiers: [String]) {
let center = UNUserNotificationCenter.current()
center.removePendingNotificationRequests(withIdentifiers: identifiers)
}
deinit {
removeNotification(withIdentifiers: ["Bear"])
}
}