[swift] Swift에서 로컬 알림 발생 시 앱 아이콘에 뱃지 표시하는 방법

Swift에서 로컬 알림을 사용하여 iOS 앱에서 알림을 발생시키면, 앱 아이콘에 뱃지를 표시할 수 있습니다. 사용자가 알림을 받지 않은 경우, 앱 아이콘에 뱃지를 표시함으로써 새로운 알림이 있는 것을 시각적으로 알릴 수 있습니다.

아래는 Swift에서 로컬 알림 발생 시 앱 아이콘에 뱃지를 표시하는 방법입니다:

  1. 먼저, UIApplication.shared.applicationIconBadgeNumber를 사용하여 뱃지 값을 설정할 수 있습니다. 이 값을 수정하여 원하는 뱃지 숫자를 설정할 수 있습니다.
UIApplication.shared.applicationIconBadgeNumber = 1
  1. 알림이 발생한 시점에 위의 코드를 추가해야 합니다. 일반적으로 알림이 발생하는 시점에는 application(_:didReceiveRemoteNotification:) 또는 userNotificationCenter(_:didReceive:withCompletionHandler:) 메서드를 사용합니다.
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) {
    // 알림이 도착한 시점에 뱃지 값 설정
    UIApplication.shared.applicationIconBadgeNumber = 1
}

또는, UNUserNotificationCenterDelegate 프로토콜을 구현한 후 userNotificationCenter(_:willPresent:withCompletionHandler:) 메서드를 사용할 수도 있습니다.

func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
    // 알림이 도착한 시점에 뱃지 값 설정
    UIApplication.shared.applicationIconBadgeNumber = 1
    
    completionHandler(.alert) // 알림 배너 표시
}
  1. 앱을 시작할 때 현재 알림의 뱃지 값을 초기화해야 합니다. applicationDidFinishLaunching(_:) 메서드에서 뱃지 값을 초기화할 수 있습니다.
func applicationDidFinishLaunching(_ application: UIApplication) {
    // 앱 시작 시 뱃지 값 초기화
    UIApplication.shared.applicationIconBadgeNumber = 0
}

위의 단계를 따라하면 로컬 알림 발생 시 앱 아이콘에 뱃지를 표시할 수 있습니다. 사용자는 뱃지를 통해 새로운 알림이 있는 것을 쉽게 확인할 수 있습니다.

더 자세한 내용은 Apple 개발자 문서를 참조하세요.