Notification 다루기

Wongbing·2022년 10월 12일
0

Skills

목록 보기
5/8

tags: TIL

Apple Article

Respond to user interactions with the system's notification interfaces, including handling your app's custom actions.

앱의 커스텀 액션을 처리하는 것을 포함하여, 시스템 알람 인터페이스를 이용해 사용자 상호작용에 응답해라

Overview

Notification은 사용자에게 정보를 주입하는 주된 방법이다. 그러나 당신의 앱에서 반응 또한 할 수 있다. 예를들어 :

  • 알림 인터페이스로부터 사용자에 의해 선택된 액션
  • 앱이 foreground에서 실행되고있을 때 도착한 알림
  • 조용한 알림
  • VoIP 또는 컴플리케이션 관련 알림과 같은 PushKit 프레임워크와 관련된 알림.

Handle User-Seleted Actions

Actionable notification은 사용자가 알림 인터페이스에서 직접 응답하도록 만든다. 알림 내용에 추가로, actionable notification은 사용자가 취할 수 있는 액션버튼을 보여준다. 앱을 직접 foreground로 가져오지 않은 상태에서도 액션버튼을 탭하면 앱에 액션이 전달된다. 만약 당신의 앱이 actionable notification을 지원한다면, 연관 액션을 처리해야 한다.

UNUserNotificationCenter shared의 delegate 객체로부터 온 선택된 액션을 처리한다. 사용자가 액션을 선택하면, 시스템은 백그라운드에서 앱을 실행하고, delegate의 userNotificationCenter(_:didReceive:withCompletionHandler:) 메서드를 호출한다.앱의 액션중 하나 또는 시스템정의 액션의 응답객체의 actionIdentifier 프로퍼티의 값이 일치하는지 확인한다.

Listing1 은 meeting invitation에 관련된 액션을 처리하는 예시를 보여준다.
ACCEPT_ACTION 과 DECLINE_ACTION 문자열은 앱의 특정 액션을 식별한다.

Handle Notifications While Your App Runs in the Foreground

앱이 foreground에서 실행중인 동안 알림이 온다면, 시스템이 해당 알림을 앱에 직접 전달한다. 알림을 받으면, 알림의 payload를 당신이 원하는데에 사용할 수 있다. 예를들어, 당신은 알림에 포함된 정보를 반영하도록 인터페이스를 업데이트할 수 있다. 그러면 예약된 알람들을 억제할 수 있거나 알림들을 수정할 수 있다.

알림이 도착했을 때, 시스템은 UNUserNotificationCenter 객체의 delegate메서드인 userNotificationCenter(_:willPresent:withCompletionHandler:) 메서드를 호출한다. 알림을 처리하기 위해 해당 메서드를 사용하고, 시스템에게 어떤 처리를 원하는지 알게한다.

List2 는 캘린더앱에서의 메서드 버전을 보여준다. meeting invitation이 도착했을 때, 앱의 인터페이스에 새로운 invitation을 보여주기 위해 queueMeetingForDelibery 메서드를 호출한다

completionHandler에 sound 값을 전달하므로써 소리도 낼 수 있다.

profile
IOS 앱개발 공부

0개의 댓글