UNNotificationContentExtension

Panther·2021년 8월 18일
0

https://developer.apple.com/documentation/usernotificationsui/unnotificationcontentextension

"An object that presents a custom interface for a delivered local or remote notification."

전달된 로컬 혹은 원격 노티피케이션에 대한 커스텀 인터페이스를 나타내는 객체입니다.

Declaration

protocol UNNotificationContentExtension

Overview

UNNotificationContentExtension 프로토콜은 앱 노티피케이션에 대한 커스텀 인터페이스를 표시하는 노티피케이션 컨텐트 앱 확장에 대해 엔트리 포인트를 제공합니다. 인터페이스를 표시하기 위해 사용하는 커스텀 UIViewController 서브클래스에서 이 프로토콜을 채택할 수 있습니다. 노티피케이션이 표시되기 위한 방법을 향상시키기 위해 이 타입의 확장을 생성할 수 있으며, 커스텀 색상 및 브랜딩 추가, 미디어 및 노티피케이션 인터페이스 에서의 다른 동적 컨텐트 통합과 같은 커스터마이징이 가능합니다.

노티피케이션 컨텐트 앱 확장을 정의하려면 앱을 포함하고 있는 Xcode 프로젝트에 노티피케이션 컨튼트 확장 타깃을 추가해야 합니다. 기본값 Xcode 템플릿은 뷰 컨트롤러에 대한 소스 파일과 스토리보드를 포함하고 있습니다. 확장의 Info.plist 파일의 대부분이 설정된 상태로 나타납니다. 구체적으로 NSExtensionPointIdentifier 키는 com.apple.usernotifications.content-extension 값으로 설정되어 있고, NSExtensionMainStoryboard 키는 프로젝트 스토리보드 파일의 이름으로 설정되어 있습니다. 그러나 NSExtensionAttribute 키는 추가적인 키와 값의 딕셔너리를 포함해야 합니다. Table 1에서 키와 값을 보여주고 있습니다.

Table 1 Info.plist keys for a notification content app extension

KeyValue
UNNotificationExtensionCategory(필수사항)스트링 혹은 스트링의 배열입니다. 각 스트링은 UNNotificationCategory 클래스를 사용해 선언된 카테고리의 아이덴티파이어를 포함합니다.
UNNotificationExtensionInitialContentSizeRatio(필수사항)초기 뷰 컨트롤러의 뷰 크기를 높이와 넓이에 대해 비율로 나타내는 floating-point 숫자입니다. 시스템은 확장이 로딩되는 동안 뷰 컨트롤러의 초기 크기를 설정하기 위해 이 값을 사용합니다. 예를 들어 0.5의 값은 높이가 넓이의 절반인 뷰 컨트롤러를 나타나게 합니다. 확장이 로드된 후에 뷰 컨트롤러의 크기를 변경시킬 수 있습니다.
UNNotificationExtensionDefaultContentHidden불리언 값입니다. true로 설정되면 시스템은 노티피케이션 인터페이스에 커스텀 뷰 컨트롤러만 표시합니다. false로 설정되면 뷰 컨트롤러의 컨텐트와 더불어 기본값 노티피케이션 컨텐트도 표시합니다. 커스텀 액션 버튼과 해제 버튼은 항상 표시되며, 설정과 상관 없습니다. 이 키를 구체화하지 않으려면 기본값이 false여야 합니다.
UNNotificationExtensionOverridesDefaultTitle불리언 값입니다. true로 설정되면 시스템은 노티피케이션의 타이틀로 뷰 컨트롤러의 타이틀 속성을 사용합니다. false로 설정되면 시스템은 노티피케이션의 타이틀으 앱 이름으로 설정합니다. 이 키를 구체화하지 않으려면 기본값을 false로 설정해야 합니다.

노티피케이션 카테고리가 커스텀 액션을 포함하는 경우 시스템은 자동으로 노티피케이션 인터페이스에 액션 버튼을 추가합니다. 이 버튼을 직접 생성하지 않아야 합니다. 뷰 컨트롤러가 선택적인 didReceive(_:completionHandler:) 메소드를 구현하고 있는 경우 시스템은 선택된 액션에 대한 응답으로 해당 메소드를 호출합니다. 뷰 컨트롤러가 이 메소드를 구현하고 있지 않으면 시스템은 처리를 위해 앱으로 선택된 액션을 전달합니다.

시스템은 스크린에 나타나 있는 동안 뷰 컨트롤러로 향하는 터치 이벤트의 전달을 방지합니다. 인터페이스에 제스쳐 리코그나이저를 설치하지 않아야 하고, 터치 이벤트에 의존하지 않도록 해야 합니다.

노티피케이션 컨탠트 앱 확장 구현에 대한 방법은 Customizing the Appearance of Notifications를 보시기 바랍니다.

Customizing the Appearance of Notifications
https://developer.apple.com/documentation/usernotificationsui/customizing_the_appearance_of_notifications
https://velog.io/@panther222128/Customizing-the-Appearance-of-Notifications

See Also


Notification Content App Extension

Customizing the Appearance of Notifications

노티피케이션 컨텐트 앱 확장을 사용해서 iOS 앱 노티피케이션 알림의 모양을 커스터마이징합니다.

https://developer.apple.com/documentation/usernotificationsui/customizing_the_appearance_of_notifications
https://velog.io/@panther222128/Customizing-the-Appearance-of-Notifications


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

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


0개의 댓글