티스토리 뷰

UILocalNotification => UserNotifications (iOS 10~)

 

UN으로 시작하는 객체들은 알람처리를 위한 객체

 

1. UNMutableNotificationContent : 알람 메세지 설정 같은거

2. UNTimeIntervalNotificationTrigger 몇분 후 ~

3. UNNotificationRequest : 1와 2를 모아서 알람 객체 만들 때. 

4. UNUserNotificationCenter : 실제 발송 담당 - 싱글톤이므로 인스턴스 생성X

 

[AppDelegate.swift에 작성하기]

1) import UserNotifications

2) UNUserNoficationCenter.current()로 시스템에서 제공하는 인스턴스 받아오기

3) .getNotificationSettings로 동의했는지 확인하기

4) 클로저에서 { settings in 으로 후속 처리 해주기

 

if settings.authorizationStatus == .authorized {    }

else {   }

 

5) UNMutableNotificationContent 객체 만들어서 알람 내용 집어넣기

 

let nContent = UNMutableNotificationContent( )

nContent.badge = 1

nContent.title = "로컬 알람 메세지"

nContent.subtitle = "앱을 다시 여세요"

nContent.sound = UNNotificationSound.default

nContent.userInfo = ["name": "어쩌고"]

-> userInfo를 통해서 알람을 눌러서 연결되는 앱 델리게이트에서 참조 가능

 

6) 알림 발송 시간 설정하기

let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false)

// 5초 뒤에 알람 온다

// 하루중 특정 시각에 알람 보내고 싶으면 UNCalendarNotificationTrigger 객체 사용

 

7) UNNotificationRequest 만들어주기

let request = UNNotificationRequest(identifier: "wakeup", content: nContent,  trigger: trigger)

// identifier은 여러개의 알람 중에 원하는걸 식별하는 용도로 쓰인다

 

8) 알람요청 객체를 노티피케이션 센터에 추가

 

 

 

 

================================

알람메세지 클릭해서 앱 실행 시켰을때, 

그냥 앱이 켜지는게 아니라 특정 화면이 켜져야 할 때가 있다.

 

이걸 위해서 UserNotification에서는 'delegate pattern'을 제공한다.

 

1) AppDelegate.swift에 UserNotifications import 해준다

2) UNUserNotificationCenterDelegate를 AppDelegate에서 채택해준다

3) didFinishLaunchingWithOptions 메소드의 if #available 조건에 

notiCenter.delegate = self를 추가해준다

4) 앱 실행 도중 알람메시지가 도착하면 userNotificationCenter(_:willPresent:withCompletionHandler:) 메소드 자동으로 호출된다.

5) 사용자가 알림메시지를 실제로 클릭하면 userNotificationCenter(_:didReceive:withCompletionHandler:) 자동으로 호출된다.

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함