Old_SWIFT(221012)/기본이야기

UNUserNotificationCenter 다루기(로컬 푸시 : local notification)

KataRN 2022. 4. 5. 20:17
반응형

안녕하세요. KataRN입니다.

 

오늘은 로컬 푸시를 알아보겠습니다.

 

 

아 혹시나 APNs를 이용한 서버 푸시를 원하신다면! 아래 링크 참고 부탁드립니다!

https://katarnios.tistory.com/54

 

UNUserNotificationCenter 다루기(서버 푸시 : remote notification, FCM(Firebase Cloud Messaging))

안녕하세요. KataRN입니다. 오늘은 서버 푸시에 대해 알아보겠습니다. 로컬 푸시는 아래 링크 참고부탁드립니다! https://katarnios.tistory.com/53 UNUserNotificationCenter 다루기(로컬 푸시 : local notifica..

katarnios.tistory.com

 

 

이게 무엇인가??

 

 

이런거입니다.

 

푸시에는 2가지 종류가 있습니다.

  • 로컬 푸시(local notificatino): 앱으로부터 push를 앱에 띄우는 것
  • 서버 푸시(remote notificatino): 서버로부터 push를 앱에 띄우는 것 

저희는 로컬 푸시에 대해 알아보겠습니다.

 

우선 프로젝트를 하나 만드시고~

 

 

 

우선 권한이 필요합니다.

 

필요한 화면에 넣어도 됩니다만

저는 앱 실행시에 바로 확인하도록 넣어보려고합니다.

구체적인 설명은 주석을 참고해주세요.

 

작업을 하다보니 'alert' was deprecated in iOS 14.0 라고 뜨네요.

그래서 찾아보니 아래와 같네요.

  • [.list]알림 센터에서만 알림을 표시합니다(상단에서 아래로 내리면 표시되는 메뉴)
  • [.banner]일반 푸시 알림처럼 상단에서 배너만 팝업됩니다.
  • [.list, .banner]배너를 표시하고 목록에 있는지 확인하는 두 가지 작업을 모두 수행합니다.
  • [.alert][.list, .banner]내가 말할 수있는 것에서 본질적으로 하는 것과 동일합니다 . 그들은 더 세분화된 제어를 제공하기 위해 이 두 가지 옵션을 추가했습니다.

 

자 여기까지 우리는 권한을 받는 것, 푸시상태에서 처리방법을 했습니다.

이제 다음은 버튼을 누르면 푸시가 뜨도록 해봅시다.

 

버튼을 만들고 @IBAction에 넣을 함수를 만들어보겠습니다.

이렇게 우리는 하나의 push에 5가지를 부여했습니다.

1. 타이틀, 2. 내용, 3. 데이터, 4. 사운드, 5. 뱃지

 

참고로 저는 3초를 넣어서 실행 시켰으니 3초뒤에 푸시알림이 발생합니다.

 

여기까지하면 뱃지 카운트가 늘어만납니다.

앱을 실행해도 숫자가 사라지지가 않죠. 늘어나기만 합니다.

 

제가 포트폴리오 앱을 만들때 당시 이걸 몰라서 눈물을 먹므고 뱃지를 뺏었습니다...ㅠㅠ

 

SceneDelegate.swift 파일에 가면 앱의 상태에 따라 처리 할 수 있도록 함수가 나뉘어져있습니다.

거기서 액티브 될때 뱃지를 0으로 만들어 주면 됩니다.

 

감개무량하네요...

이로써 작년의 저보단 지금의 제가 낫다를 증명했습니다.

후후..

 

오늘도 긴글 읽어주셔서 감사합니다.

반응형