APNs (Apple Push Notification service) 에 대해 알아보기
Apple Push Notification service
third party 개발자가 앱에 푸시 알림을 보낼 수 있도록하는 Apple에서 제공하는 알림 서비스 플랫폼
애플은 반드시 Push Server에서 APNs를 거쳐서 내 앱에 푸시 알림을 보내도록 함!
인증 방법
Certificate-Based Connection
서버가 APNs와 연결 할 때 증명서를 통해 보안 연결하는 방식
Token-Based Connection
요청을 보낼 때 Auth Token 필요
APNs는 오프라인 기기를 위해 Notificaiton 저장 가능
기기에서 Device Token 정보를 요청하기 위해 registerForRemoteNotifications()
함수를 사용
Notification으로 인해 앱이 실행되면 userNotificationCenter(_:didReceive:withCompletionHandler:)
메소드가 호출 된다!
Key | Value type | Description |
---|---|---|
alert | Dictionary(or String) | Dictionary안에 content를 만들 수 있다.(title 등) |
badge | Number | 앱 아이콘 뱃지의 숫자를 세팅한다. 0넣으면 현재 뱃지 삭제됨 |
sound | String | App의 Bundle이나 Library/Sounds Container에 있는 사운드 파일 재생한다.default 넣으면 시스템 사운드가 나온다.긴급 알람 울리려면 dictionary 로 넣으면됨. |
thread-id | String | iOS14부터 제공된 기능으로, Notification Grouping을 위해 사용된다.하나의 앱에 수신되는 여러 Notification이 있을 경우,이걸 지정하면 해당 알림들이 하나의 그룹으로 묶여서 사용자가 놓치지 않도록 돕는데 도움이된다. |
category | String | Notification 카테고리를 식별하는 데 사용되는 문자열 입니다.사용자가 알림을 탭했을 때 실행할 동작과 관련있습니다.UNNotificationCategory 객체를 사용해서 Notification 카테고리를 정의&등록할 수 있습니다.Notification 카테고리를 사용하면 사용자가 알림을 탭할 때 미리 정의된 동작을 수행할 수 있습니다. |
content-available | Number | 백그라운드 앱 업데이트를 위한 silent remote notification에서 사용됩니다.이 값을 1로 하면 silent noti를 보낼 수 있습니다.이러면 기기가 알림을 수신하면 백그라운드에서 앱을 실행시키고, application(_:didReceiveRemoteNotification:fetchCompletionHandler:) 을 호출합니다.여기서 데이터 업데이트를 수행할 수 있습니다. |