Добрый день.
Суть приложения: в указанную дату и время приложение должно "выбрасывать" локальные уведомления с определенными фразами. Фразы не пересекаются, по этому повторение сделать не получится.
Как задать для каждой фразы отдельное время и дату?
В Swift новичок. Стараюсь разбираться. Но после того как погуглил уже каша в голове.
По обучалкам сделал сейчас код, который работает, но работает по задержке в 10 секунд. То ест после нажатия на кнопку через 10 сек кидается пуш.
Как сделать так, что бы либо я просто поставил разные задержки(к примеру 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"])
}
}