[2024 동계 모각코] 6회차

MoonGoon·2024년 1월 18일
0

동계모각코

목록 보기
12/13

목표

APNs (Apple Push Notification service) 에 대해 알아보기

Apple Push Notification service

third party 개발자가 앱에 푸시 알림을 보낼 수 있도록하는 Apple에서 제공하는 알림 서비스 플랫폼

애플은 반드시 Push Server에서 APNs를 거쳐서 내 앱에 푸시 알림을 보내도록 함!

인증 방법

Certificate-Based Connection

서버가 APNs와 연결 할 때 증명서를 통해 보안 연결하는 방식

Token-Based Connection

요청을 보낼 때 Auth Token 필요

  1. 회사 서버에서 APNs로 Notification 데이터 와 사용자의 Device Token 을 포함한 요청을 생성하여 전달
  2. APNs에서 조건에 맞는지 확인한 후 Device로 전송

APNs는 오프라인 기기를 위해 Notificaiton 저장 가능

기기에서 Device Token 정보를 요청하기 위해 registerForRemoteNotifications() 함수를 사용

Notification으로 인해 앱이 실행되면 userNotificationCenter(_:didReceive:withCompletionHandler:) 메소드가 호출 된다!

주요 keyword

  • category
    • notification을 눌렀을 때 할 행동을 정할 수 있음

Payload Key

KeyValue typeDescription
alertDictionary(or String)Dictionary안에 content를 만들 수 있다.(title 등)
badgeNumber앱 아이콘 뱃지의 숫자를 세팅한다. 0넣으면 현재 뱃지 삭제됨
soundStringApp의 Bundle이나 Library/Sounds Container에 있는 사운드 파일 재생한다.default 넣으면 시스템 사운드가 나온다.긴급 알람 울리려면 dictionary 로 넣으면됨.
thread-idStringiOS14부터 제공된 기능으로, Notification Grouping을 위해 사용된다.하나의 앱에 수신되는 여러 Notification이 있을 경우,이걸 지정하면 해당 알림들이 하나의 그룹으로 묶여서 사용자가 놓치지 않도록 돕는데 도움이된다.
categoryStringNotification 카테고리를 식별하는 데 사용되는 문자열 입니다.사용자가 알림을 탭했을 때 실행할 동작과 관련있습니다.UNNotificationCategory 객체를 사용해서 Notification 카테고리를 정의&등록할 수 있습니다.Notification 카테고리를 사용하면 사용자가 알림을 탭할 때 미리 정의된 동작을 수행할 수 있습니다.
content-availableNumber백그라운드 앱 업데이트를 위한 silent remote notification에서 사용됩니다.이 값을 1로 하면 silent noti를 보낼 수 있습니다.이러면 기기가 알림을 수신하면 백그라운드에서 앱을 실행시키고, application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 을 호출합니다.여기서 데이터 업데이트를 수행할 수 있습니다.

출처 https://velog.io/@yoosa3004/iOS-%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%95%8C%EB%A6%BCUser-Notifications-1-APNs

profile
Swift 개발자를 희망합니다

0개의 댓글