메인 콘텐츠로 건너뛰기
배지는 모바일 앱 아이콘에 나타나는 작은 숫자 점입니다. 사용자의 주의를 끌고 참여 행동에 영향을 미칠 수 있습니다. 특히 iOS에서는 배지에 추가 설정이 필요하며 아래에 설명된 대로 유연한 제어를 제공합니다.
Android 웹 푸시 알림의 경우 배지는 앱 아이콘이 아닌 알림에 표시되는 작은 아이콘을 의미하며 사용자 지정할 수 있습니다. 웹 푸시 배지를 참조하세요.

Android 배지

Android 앱 아이콘 배지 동작은 Android 알림 카테고리를 통해 관리할 수 있습니다. 카테고리(채널)가 배지를 표시할지 여부를 제어하고 카테고리별로 배지 동작을 설정할 수 있습니다.

iOS 배지

iOS에서 배지 수가 올바르게 증가하도록 하려면 다음을 구성해야 합니다:
  • OneSignalNotificationServiceExtension
  • App Groups
전체 지침은 모바일 SDK 설정을 참조하세요. 기본적으로 OneSignal SDK는 다음을 수행합니다:
  1. 앱이 열릴 때 앱 아이콘 배지를 지웁니다.
  2. 알림 센터에서 알림을 제거합니다.
알림을 유지하고 배지 로직을 수동으로 관리하려는 경우(예: 자체 카운터를 사용하거나 기기 간에 상태를 동기화) 이 자동 동작을 비활성화할 수 있습니다. 수동 배지 제어를 위한 일반적인 사용 사례
  • 앱이 시작되거나 재개될 때 배지 재설정
  • 포그라운드에서 알림이 수신될 때 배지 증가
  • 메시지를 읽거나 해제할 때 감소
  • App Groups 또는 백엔드를 통해 기기 또는 앱 확장 간에 배지 상태 동기화

자동 알림 및 배지 지우기 비활성화

앱의 info.plist에서 키: OneSignal_disable_badge_clearing를 Boolean 타입으로 추가하고 값을 YES로 설정합니다

`OneSignal_disable_badge_clearing`가 꺼져 있는(`YES`로 설정된) info.plist 예제입니다.

<key>OneSignal_disable_badge_clearing</key>
<true/>
이렇게 하면 앱이 열릴 때 SDK가 자동으로 알림을 제거하거나 배지를 재설정하는 것을 방지합니다.

iOS 네이티브 배지 관리

OneSignal의 자동 배지 지우기를 비활성화하면 Apple의 네이티브 API를 사용하여 배지 동작을 제어할 수 있습니다.
Apple은 iOS 17에서 UIApplication.shared.applicationIconBadgeNumber를 더 이상 사용하지 않습니다. 이제 UserNotifications 프레임워크의 다음 메서드를 사용해야 합니다:
배지 수 설정 앱 아이콘의 배지를 특정 값으로 설정하려면:
Swift
import UserNotifications
import UIKit

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(5) { error in
    if let error = error {
      print("Failed to set badge count: \(error.localizedDescription)")
    } else {
      print("Badge count updated successfully.")
    }
  }
} else {
  UIApplication.shared.applicationIconBadgeNumber = 5
}
현재 배지 수 가져오기 iOS는 시스템에서 현재 배지 수를 검색하는 메서드를 제공하지 않습니다. 앱의 상태에서 배지 수를 추적해야 합니다(예: UserDefaults, 앱의 데이터 모델 또는 백엔드와 동기화 사용).
Swift
// Example: Store and retrieve badge count using UserDefaults
let badgeCount = UserDefaults.standard.integer(forKey: "badgeCount")
// Update badge count as needed
UserDefaults.standard.set(badgeCount, forKey: "badgeCount")
배지 증가 또는 감소 페이로드에서 상대적 변경(예: +1 또는 -1)이 지원되지 않으므로 배지 로직을 수동으로 관리해야 합니다. 저장된 배지 수를 업데이트한 다음 설정합니다:
Swift
// Example: Increment badge count and update system badge
let currentCount = UserDefaults.standard.integer(forKey: "badgeCount")
let updatedCount = max(0, currentCount + 1)
UserDefaults.standard.set(updatedCount, forKey: "badgeCount")

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(updatedCount)
} else {
  UIApplication.shared.applicationIconBadgeNumber = updatedCount
}
배지 지우기 배지를 완전히 제거하려면:
Swift

if #available(iOS 17.0, *) {
  UNUserNotificationCenter.current().setBadgeCount(0)
} else {
  UIApplication.shared.applicationIconBadgeNumber = 0
}

배지와 함께 iOS 푸시 보내기

OneSignal 대시보드 또는 API를 사용하여 배지 수를 설정할 수 있습니다.
  • 대시보드
  • API
  1. 메시지 > 푸시 또는 템플릿으로 이동
  2. 플랫폼 설정 > Apple iOS로 보내기 > 배지에서
  3. 다음 중 하나를 선택:
    • 특정 숫자로 설정
    • 상대적인 양만큼 증가

OneSignal 대시보드 메시지 양식에서 배지를 설정합니다.

iOS 푸시 알림을 보낼 때 배지 수는 이러한 옵션에 따라 변경됩니다. 앱이 열려 있는 경우 위의 지침에 따라 자동 배지 지우기를 비활성화하지 않는 한 배지 수가 재설정됩니다.
배지 튜토리얼 완료! 다음 단계: