iOS Notification Local vs Remote
Youngminah opened this issue · 0 comments
Youngminah commented
Local
- 서버와의 통신이 필요없는 알림의 경우
- 처음시작할때 Appdelegate 또는 시작하자마자 또는 런치화면에서 구현.
- 시간이나 장소에 따라 알리 생성가능
let userNotificationCenter = UNUserNotificationCenter.current()
func requestNotificationAuthorization() {
let authOptions = UNAuthorizationOptions(arrayLiteral: .alert, .badge, .sound)
userNotificationCenter.requestAuthorization(options: authOptions) { success, error in
if success {
self.sendNotification()
}
}
}
func sendNotification() {
let notificationContent = UNMutableNotificationContent()
///컨텐츠 영역
notificationContent.title = "물 마실 시간이에요!"
notificationContent.body = "하루 2리터 목표 달성을 위해 열심히 달려보아요"
notificationContent.badge = 100
// 언제 보낼 지 설정: 1. 간격, 2. 캘린더, 3. 위치
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 15, repeats: true) // 최소 60초 그게 아니면 repeat false
//알림 요청
let request = UNNotificationRequest(identifier: "\(Date())", //고유한 네이밍이 아니면 쌓이는게 아니라 알림이 교체됨.
content: notificationContent,
trigger: trigger)
userNotificationCenter.add(request) { error in
if let error = error {
print("Notification Error: ", error)
}
}
}
Remote (Push)
- 서버에서 알림을 전달
- 인증서 필요 (개발자 계정필요)
- 알림의 경우 foreground 상태에서는 알림 안오게 되어있음
- 오게하려면 추가 설정 필요