개요
백그라운드 또는 데이터 알림(종종 “사일런트” 알림이라고 함)은 메시지를 표시하거나 소리를 재생하지 않습니다. 대신 동기화 또는 데이터 새로 고침과 같은 백그라운드 작업을 수행하기 위해 앱을 자동으로 깨우도록 설계되었습니다.제한 사항
- 구독된 사용자만: OneSignal SDK는 기본적으로 구독된 사용자에게만 데이터 알림을 보냅니다. 구독하지 않은 사용자에게 도달하려면 이 해결 방법을 따르세요.
- 강제 종료된 앱은 백그라운드 푸시를 받을 수 없습니다:
- 비네이티브 SDK에 대한 제한된 지원:
- 사일런트 알림은 네이티브 코드(Android용 Java/Kotlin, iOS용 Swift/Obj-C)에서 처리해야 합니다.
- iOS는 application:didReceiveRemoteNotification:fetchCompletionHandler:구현이 필요합니다.
- Android는 Notification Service Extension 구현이 필요합니다.
 
백그라운드 데이터 알림 설정
OneSignal에서 사일런트 백그라운드 데이터 알림을 보내려면 다음 단계를 따르세요:1
내용 생략
메시지에서 표시되는 내용을 제거합니다. 여기에는 다음이 포함됩니다:
- API: Create notification API 요청의 contents,headings,subtitle.
- Dashboard: Message, Title, Subtitle
2
content_available 설정
- API: content_available을true로 설정.
- Dashboard: “Send to Apple iOS”에서 Content available을 선택. 이것은 모든 플랫폼에 적용되며 메시지가 전송되지 않음을 시스템에 알립니다.
3
사용자 지정 페이로드 추가
- API: data필드로 사용자 지정 페이로드 추가.
- Dashboard: Additional Data 필드로 사용자 지정 페이로드 추가.
iOS 백그라운드 알림 설정
iOS 앱은 Xcode에서 Background Modes > Remote Notifications 기능이 활성화되어 있어야 합니다. 이것은 일반적으로 Mobile SDK 설정을 따른 경우 포함됩니다. 다음 Apple 문서도 검토하는 것이 좋습니다:데이터 처리
AppDelegate 메서드 application(_:didReceiveRemoteNotification:fetchCompletionHandler:)를 사용하여 알림을 처리합니다.
앱이 스와이프하여 닫힌 경우 백그라운드 알림을 처리할 수 없습니다.이러한 경우 표시되는 
contents 메시지를 포함하고 UNNotificationServiceExtension.didReceive에서 데이터를 처리하세요.앱이 강제 종료된 경우 백그라운드 알림을 처리할 방법이 없습니다.Android 데이터 알림 설정
NotificationExtenderService를 사용하여 Android에서 데이터 알림을 처리합니다. 이를 통해 다음이 가능합니다:- 앱이 실행되고 있지 않을 때 백그라운드 알림 처리.
- 알림이 표시되거나 억제되는 방식 사용자 지정.
VoIP 알림 전송
VoIP 알림은 지원되지만 OneSignal SDK 외부에서 추가 설정이 필요하며 iOS에서 VoIP 토큰을 등록하지 않습니다. 전체 지침은 VoIP 알림 설정 가이드를 참조하세요.FAQ
사일런트 백그라운드 데이터 알림으로 제거 또는 구독 취소를 감지할 수 있나요?
아니요. Apple과 Google은 기기가 푸시에서 등록 취소되었다는 응답을 일관되게 보내지 않는 등 다른 기술적 수단을 사용하여 제거를 감지하는 방법으로 사일런트 알림 전송을 의도적으로 방지합니다. 백그라운드 데이터 알림을 받으려면 앱이 강제 종료될 수 없습니다(제한 사항 참조).사일런트 알림에서 확인된 전달이 작동하나요?
iOS: 아니요. 확인된 전달은 표시되는 메시지(contents)가 포함된 경우에만 활성화되는 NotificationServiceExtension(NSE)에 의존합니다. NSE에서 메시지 본문을 비우려고 시도하더라도 iOS는 원래 본문 콘텐츠를 복원하여 알림을 표시합니다. 따라서 확인된 전달은 사일런트 알림에서 작동하지 않습니다.
Android: 예.