TIL(Today I Learned)

3월 18일(목)

학습내용

  • User Notifications
    • Push 알람을 관리하는 프레임워크이다.
    • 관련 타입에는 UN이라는 접두사가 붙는다.
    • Trigger는 알람을 보낼 특정 조건이다. (위치, 시간)
    • Notification Content는 알람의 내용이다.
    • Notification Requests 로컬이나 원격에서 사용자에게 알람을 보내라는 요청이다.
    • Notification은 Local Notification, Remote Notification이 있다.
    • Remote Notification은 서비스를 제공하는 서버에서 사용자 아이폰에 알람을 보내는 것이다. APNs(Apple Push Notification Service)에 사용자 아이폰으로 알람을 보내달라고 요청을 하여 보낼 수있다.
    • Notification의 Identifer를 이용하여 특정 Notification만 취소시킬 수 있다.
    • 알람으로 앱을 실행시켰을 때 특정 뷰로 이동하는 것을 UserDefaults을 이용하여 구현할 수 있다. 알람을 통해 앱을 들어오면 UserDefaults에 특정 뷰에 대한 정보를 저장하고, 뷰의 로드가 끝나면 저장된 정보를 viewWillAppear에서 꺼내서 원하는 뷰를 보여주는 방식으로 구현을 할 수 있다.
    • userNotificationCenter(_:didReceive:withCompletionHandler:)을 이용하여 알람을 통해 사용자가 앱을 실행시켰을때 앱이 해야할 것들을 실행시킬 수 있다.

문제점/고민한점

  • 앱이 실행되고 있을때 알람을 설정해도 알람이 나타나지 않는데 왜 안 나타날까?

해결방법

  • 원래 앱이 Foreground에서 실행되고 있을 때는 기본적으로 알람이 뜨지 않는다. Foreground에서 알람을 뜨게 하려면 userNotificationCenter(_:willPresent:withCompletionHandler:)을 통해 가능하다.

참고

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