분명 NotificationCenter를 구글링 하고 있었지만 제드님의 UserNotifications글을 보다가. 따라 해보면 재밌겠다 싶어서 ㅎㅎ
갑자기 블로깅!
(제드님짱)
시작
일단 UserNotifications를 import해줍니다.
그러면 이제 UNUserNotificationCenter 클래스를 사용할 수 있습니다.
(앱 또는 앱 확장에 알림 관련 작업을 관리하는 중앙 객체라네요 ㅎ)
구체적으로 어디에 사용하나~~
1. 권한 요청 - 알람, 사운드, 뱃지와 상호작용할 것인지 권한을 요청할 수 있습니다. ㅎ
2. 알림이 전달된 후 사용자의 작업을 선언할 수 있습니다.
3. 알림을 예약하여 전송할 수 있습니다.
4. APN (Apple Push Notification Service)로부터 받은 알림을 처리합니다.
5. Notification Center에 표시되는 이미 전달된 알림을 관리합니다.
이제 이 클래스를 Get하려면 current()를 쓰면 되요.
그리고 앱에서 사용할 option들의 권한을 요청해줘야해요..!!
option들!!
뱃지, 소리, 알람등이 있네요. ㅎ (나머지들은 아직 익숙치 않네요 ㅠ )
자 이제 viewDidLoad에 앞서 말한 것들을 넣어 보겠습니다. ㅎ
실행!!
Allow를 하든 Don't Allow를 하든 다음에 다시 킬때는 안뜹니다.. (아이폰 환경설정에서 앱을 설정해줘야 해요.)
이제 어떤 알림을 보낼지 넣어줘야겟죠?!
UNNotificationRequest를 넣어줘야하네요 !!! 멀까?!
로컬 알림에서 쓰이는 리퀘스트래요. (따로 서버에서 주는 알림같은 경우는 다른 걸로 다루나봐요.. 이건 다음에~)
request클래스에 필요한건 content와 trigger!!
Content부터
content엔 무슨 값들이 있을까요
일단 기본적으로 타이틀, 서브타이틀, 뱃지, 사운드 등등이 들어가네요!!
가볍게 만들어 봤어요 ㅋㅋㅋ
Trigger 차례
로컬 알림을 언제 발동 시킬지 트리거로 설정합니다. 이 클래스를 인스턴스화 하지 않고
다양한 하위 클래스를 인스턴스화 시키래요.;
UNTimeIntervalNotificationTrigger - 몇초 뒤 같은 시간 설정으로 트리거 발동
UNCalendarNotificationTrigger - 특정 일 특정 시간 특정 분으로 트리거 발동
UNLocationNotificationTrigger - specified geographic region 특정 장소에서 트리거 발동 !! 오? 신기하네요 이건
UNPushNotificationTrigger - 이건 APNs 에서 발동 !! 외부 서버에서 트리거 발동 이라고 생각하면 되요!!
트리거를 뚞딲뚞딲
리퀘스트를 뚞딲뚞딲
identifier는 나중에 삭제를 하기 위해 쓰는 것 같아요. 무조건 명시해줘야 해요.
드디어 add
저는 버튼을 눌렀을 때 알림이 1초뒤에 뜨게 했어요.
자 버튼을 누르고 기다려 볼까요...
어 .. 왜 안돼; ??????????????
홈 화면에서는 뜨는데 앱 화면에서는 뜨지 않네요. ㅎ
foreground에서 알림이 뜨기위해 delegate를 설정 !!
그리고 설정해줘야하는 함수 발견
뚞딲
completionHandler에 option들을 넣어줘요. .alert는 iOS 14.0에서 deprecated래요. 하지만 전 iOS 13.0을 쓰니까 ㅎ
실행!
후기
저번에 iOS에서 NFC를 쓰는 방법을 공부하면서 애플개발자 문서를 엉덩이 무겁게 봤는데. 그래서인지 UserNotifications를 하면서 애플 개발자 문서가 더 잘읽히네요. ㅎ
추후에 APNs를 써봐야 겠습니다. ㅎ
'iOS' 카테고리의 다른 글
[iOS] UIView 도큐먼트읽기 (0) | 2021.07.16 |
---|---|
[iOS] UIScrollViewDelegate (0) | 2021.06.30 |
[iOS] 느껴봐 햅틱 진동 (0) | 2021.06.08 |
[iOS] 다크모드 막기 (0) | 2021.06.08 |
[iOS] NFC, CoreNFC, WWDC (0) | 2021.06.07 |