User Notifications

Panther·2021년 8월 21일
0

https://developer.apple.com/documentation/usernotifications

"Push user-facing notifications to the user’s device from a server, or generate them locally from your app."

서버로부터 사용자의 기기로 사용자가 볼 수 있는 노티피케이션을 푸시합니다. 혹은 앱 로컬에서 노티피케이션을 생성합니다.

Overview

사용자가 보는 노티피케이션은 앱이 사용자의 기기에서 실행중인지 여부와 관계없이 앱의 사용자에게 중요한 정보를 알려줍니다. 예를 들어 스포츠 앱은 사용자가 가장 좋아하는 팀이 득점을 올렸을 때 이 내용을 알 수 있도록 해줍니다. 노티피케이션은 앱에게 정보를 다운로드 해야 함을 알려줄 수 있고, 인터페이스를 업데이트 해야 함을 알려줄 수도 있습니다. 노티피케이션은 알림, 소리 재생, 앱 아이콘에 badge 추가를 표시할 수 있습니다.

앱으로부터 로컬로 노티피케이션을 생성하거나 관리하는 서버로부터 원격으로 노티피케이션을 생성할 수 있습니다. 로컬 노티피케이션의 경우 앱은 노티피케이션 컨텐트를 생성하고, 시간 혹은 위치와 같은 노티피케이션 전달 트리거 조건을 구체화할 수 있습니다. 원격 노티피케이션의 경우 서버가 푸시 노티피케이션을 생성하고, 애플 푸시 노티피케이션 서비스(APNs)가 사용자의 기기로 전송되는 노티피케이션 전달을 처리합니다.

아래와 같은 작업 수행을 위해 이 프레임워크를 사용하시기 바랍니다.

  • 앱이 지원하는 노티피케이션의 타입을 정의합니다.
  • 노티피케이션 타입과 연결되는 모든 커스텀 액션을 정의합니다.
  • 전달에 대한 로컬 노티피케이션을 스케줄링합니다.
  • 이미 전달된 노티피케이션을 처리합니다.
  • 사용자가 선택한 액션에 응답합니다.

시스템은 적시에 로컬 및 원격 노티피케이션 전송을 시도합니다. 하지만 전달이 보장되지는 않습니다. PushKit 프레임워크는 VoIP, watchOS complication 사용과 같은 특정 타입의 노티피케이션을 적시에 전달할 수 있는 젇날 메커니즘을 제공합니다. 더 많은 정보는 PushKit을 보시기 바랍니다.

PushKit
https://developer.apple.com/documentation/pushkit
https://velog.io/@panther222128/PushKit

Note
시리는 검색에서 뉴스, 사파리, 노티피케이션 API를 통해 앱이 관여하는 정보를 사용하는 앱에 대한 제안을 제공할 수 있습니다. 사용자는 시리와 검색 설정을 통해 언제든지 이 기능을 허용할 수 있습니다.

디자인 가이드에 대한 내용은 Human Interface Guidelines에서 Notifications를 보시기 바랍니다.

Notifications
https://developer.apple.com/design/human-interface-guidelines/ios/system-capabilities/notifications/

Topics


Essentials

Asking Permission to Use Notifications

노티피케이션의 응답으로 알림, 소리 재생, 앱의 아이콘에 badge를 다는 것에 대한 요청 허용입니다.

https://developer.apple.com/documentation/usernotifications/asking_permission_to_use_notifications
https://velog.io/@panther222128/Asking-Permission-to-Use-Notifications


Notification Management

UNUserNotificationCenter

앱 혹은 앱 확장의 노티피케이션 관련 활동을 관리하기 위한 중심 객체입니다.

https://developer.apple.com/documentation/usernotifications/unusernotificationcenter
https://velog.io/@panther222128/UNUserNotificationCenter

UNNotificationSettings

노티피케이션 관련 설정 및 앱의 권한 상태를 관리하기 위한 객체입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationsettings
https://velog.io/@panther222128/UNNotificationSettings


Remote Notifications

서버로부터 노티피케이션을 생성하고, APNs를 사용해서 이러한 노티피케이션을 전달합니다.

Setting Up a Remote Notification Server

노티피케이션을 생성하고 사용자 기기로 푸시합니다.

https://developer.apple.com/documentation/usernotifications/setting_up_a_remote_notification_server
https://velog.io/@panther222128/Setting-Up-a-Remote-Notification-Server

Registering Your App with APNs

애플 푸시 노티피케이션 서비스(APNs)와 커뮤니케이션하고, 앱을 식별하는 고유한 기기 토큰을 받습니다.

https://developer.apple.com/documentation/usernotifications/registering_your_app_with_apns
https://velog.io/@panther222128/Registering-Your-App-with-APNs

Sending Push Notifications Using Command-Line Tools

애플 푸시 노티피케이션 서비스(APNs)에 푸시 노티피케이션을 전송하기 위해 기본적인 macOS 커맨드 라인 툴을 사용합니다.

https://developer.apple.com/documentation/usernotifications/sending_push_notifications_using_command-line_tools
https://velog.io/@panther222128/Sending-Push-Notifications-Using-Command-Line-Tools


Notification Requests

로컬 노티피케이션을 위한 전달 요청을 생성하고, 전달된 로컬 및 원격 노티피케이션의 컨텐트에 접근합니다.

Scheduling a Notification Locally from Your App

사용자의 주의를 원하는 시점에 앱으로부터 노티피케이션을 생성하거나 스케줄링합니다.

https://developer.apple.com/documentation/usernotifications/scheduling_a_notification_locally_from_your_app
https://velog.io/@panther222128/Scheduling-a-Notification-Locally-from-Your-App

UNNotificationRequest

노티피케이션의 컨텐트를 포함하고, 전달 조건을 트리거하는 로컬 노티피케이션 스키줄링을 위한 요청입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationrequest
https://velog.io/@panther222128/UNNotificationRequest

UNNotification

시스템이 앱에 전달하는 로컬 혹은 원격 노티피케이션에 대한 데이터입니다.

https://developer.apple.com/documentation/usernotifications/unnotification
https://velog.io/@panther222128/UNNotification


Notification Content

노티피케이션의 페이로드를 수정하고 검사합니다.

UNNotificationActionIcon

액션과 관련이 있는 아이콘입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationactionicon
https://velog.io/@panther222128/UNNotificationActionIcon

UNMutableNotificationContent

노티피케이션에 대한 편집 가능한 컨텐트입니다.

https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent
https://velog.io/@panther222128/UNMutableNotificationContent

UNNotificationContent

노티피케이션의 편집 불가능한 컨텐트입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationcontent
https://velog.io/@panther222128/UNNotificationContent

UNNotificationAttachment

노티피케이션과 관련이 있는 미디어 파일입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationattachment
https://velog.io/@panther222128/UNNotificationAttachment

UNNotificationSound

노티피케이션의 전달에서 재생되는 소리입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationsound
https://velog.io/@panther222128/UNNotificationSound


Triggers

노티피케이션 전달에 대한 트리거 조건을 정의합니다. APN로부터 원격 노티피케이션이 전달되는 시점을 감지합니다.

UNCalendarNotificationTrigger

시스템이 특정 날짜 및 시간에 전달하는 노티피케이션을 유발하는 트리거 조건입니다.

https://developer.apple.com/documentation/usernotifications/uncalendarnotificationtrigger
https://velog.io/@panther222128/UNCalendarNotificationTrigger

UNTimeIntervalNotificationTrigger

시스템이 구체화한 시간이 지난 후 노티피케이션을 전달하도록 하는 트리거 조건입니다.

https://developer.apple.com/documentation/usernotifications/untimeintervalnotificationtrigger
https://velog.io/@panther222128/UNTimeIntervalNotificationTrigger

UNLocationNotificationTrigger

사용자의 기기가 구체화한 지리적 지역에 진입하거나 빠져나올 때 노티피케이션을 전달하기 위해 시스템을 움직이는 트리거 조건입니다.

https://developer.apple.com/documentation/usernotifications/unlocationnotificationtrigger
https://velog.io/@panther222128/UNLocationNotificationTrigger

UNPushNotificationTrigger

노티피케이션을 보낸 애플 푸시 노티피케이션 서비스(APNs)를 나타내는 트리거 조건입니다.

https://developer.apple.com/documentation/usernotifications/unpushnotificationtrigger
https://velog.io/@panther222128/UNPushNotificationTrigger

UNNotificationTrigger

로컬 혹은 원격 노티피케이션의 전달을 트리거하는 서브클래스에 대한 일반적인 동작입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationtrigger
https://velog.io/@panther222128/UNNotificationTrigger


Notification Categories and User Actions

앱이 지원하는 노티피케이션 타입을 정의하고, 사용자가 어떻게 ㅇ으답할 것인지를 정의합니다.

Declaring Your Actionable Notification Types

노티피케이션을 차별화하고 노티피케이션 인터페이스에 액션 버튼을 추가합니다.

https://developer.apple.com/documentation/usernotifications/declaring_your_actionable_notification_types
https://velog.io/@panther222128/Declaring-Your-Actionable-Notification-Types

UNNotificationCategory

앱이 지원할 수 있는 노티피케이션의 타입과 시스템이 표시할 수 있는 커스텀 액션입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationcategory
https://velog.io/@panther222128/UNNotificationCategory

UNNotificationAction

앱이 시스템이 전달하는 노티피케이션에 대한 응답을 수행하는 작업입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationaction
https://velog.io/@panther222128/UNNotificationAction

UNTextInputNotificationAction

사용자가 입력한 텍스트를 수용하는 액션입니다.

https://developer.apple.com/documentation/usernotifications/untextinputnotificationaction
https://velog.io/@panther222128/UNTextInputNotificationAction


Notification Responses

시스템의 노티피케이션 인터페이스로 사용자 상호작용에 응답합니다. 앱의 커스텀 액션도 포함합니다.

https://developer.apple.com/documentation/usernotifications/handling_notifications_and_notification-related_actions
https://velog.io/@panther222128/Handling-Notifications-and-Notification-Related-Actions

UNNotificationResponse

액션 가능한 노티피케이션에 대한 사용자의 응답입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationresponse
https://velog.io/@panther222128/UNNotificationResponse

UNTextInputNotificationResponse

사용자가 타입하거나 받아쓰기 한 모든 커스텀 텍스트를 포함해, 액션 가능한 노티피케이션에 대한 사용자의 응답입니다.

https://developer.apple.com/documentation/usernotifications/untextinputnotificationresponse
https://velog.io/@panther222128/UNTextInputNotificationResponse


Notification Service App Extension

앱에 전달되기 전에 노티피케이션의 컨텐트를 수정하기 위해서 노티피케이션 서비스 앱 호가장을 사용합니다.

Modifying Content in Newly Delivered Notifications

사용자의 iOS 기기에서 원격 노티피케이션이 표시되기 전에 원격 노티피케이션의 페이로드를 수정합니다.

https://developer.apple.com/documentation/usernotifications/modifying_content_in_newly_delivered_notifications
https://velog.io/@panther222128/Modifying-Content-in-Newly-Delivered-Notifications

UNNotificationServiceExtension

사용자에게 컨텐트가 전달되기 전에 원격 노티피케이션의 컨텐트를 수정하는 객체입니다.

https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
https://velog.io/@panther222128/UNNotificationServiceExtension


0개의 댓글