parent
6e26a99b3d
commit
d53ea32ce7
@ -0,0 +1,50 @@
|
||||
//
|
||||
// NotificationService.swift
|
||||
// AllIn
|
||||
//
|
||||
// Created by Emre on 22/02/2024.
|
||||
//
|
||||
|
||||
import UserNotifications
|
||||
|
||||
struct NotificationItem {
|
||||
var title: String
|
||||
var content: String
|
||||
var interval: TimeInterval
|
||||
}
|
||||
|
||||
class NotificationService: ObservableObject {
|
||||
|
||||
@Published var notifications: [NotificationItem] = []
|
||||
|
||||
func scheduleNotifications() {
|
||||
UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound, .badge]) { granted, error in
|
||||
if granted {
|
||||
print("Permission for notifications granted.")
|
||||
} else {
|
||||
print("Permission for notifications denied.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func loadNotifications() {
|
||||
for notification in notifications {
|
||||
scheduleNotification(with: notification)
|
||||
}
|
||||
}
|
||||
|
||||
func removeAllNotifications() {
|
||||
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()
|
||||
}
|
||||
|
||||
func scheduleNotification(with item: NotificationItem) {
|
||||
let content = UNMutableNotificationContent()
|
||||
content.title = item.title
|
||||
content.body = item.content
|
||||
|
||||
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: item.interval, repeats: false)
|
||||
let request = UNNotificationRequest(identifier: UUID().uuidString, content: content, trigger: trigger)
|
||||
|
||||
UNUserNotificationCenter.current().add(request)
|
||||
}
|
||||
}
|
Loading…
Reference in new issue