티스토리 뷰

/* AppDelegate.Swift */

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        
        let center = UNUserNotificationCenter.current()
        center.requestAuthorization(options: [.alert, .badge, .sound]) {(granted, error) in
            
        }
        
        return true
    }
center.addObserver(self, selector: #selector(becomeActive), 
                         name: UIScene.didActivateNotification, 
                         object: nil)
/* ViewController */

   func addNotification(at date: Date, title: String, message: String) {
        let components = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute, .second], from: date)
        
        let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: false)
        let content = UNMutableNotificationContent()
        let identifier = "\(Date().timeIntervalSince1970)" // 알림 구분값
        
        content.title = title
        content.body = message
        
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
        let center = UNUserNotificationCenter.current()
        
        center.add(request, withCompletionHandler: { error in
            if let error = error {
                print(error)
            }
        })
    }

 

addNotification(at: now.addingTimeInterval(5), title: "title", message: "message")
UNUserNotificationCenter.current().removeAllPendingNotificationRequests()

 

댓글
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
최근에 올라온 글