개발/TIL(Today I Learned)
Swift) 내부 Notification 만들기
혜듀
2021. 9. 22. 03:00
/* 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()