Android FCM 관련 제약 사항 정리.공부방/Android2019. 9. 3. 12:57
Table of Contents
Android FCM 을 사용하면서 발견한 몇가지
제약 사항을 정리 하려 합니다.
1. Payload(메시지 데이터)에 Notification 필드가 포함되어 있으면
백그라운드 상태에서 onMessageReceived를 호출하지 않습니다.
그림 1 을 참고 하시면 Notification만 있을때, Data 만 있을때 , 둘다 사용할때,
onMessageReceived의 호출 여부및 노출 여부를 알수 있습니다.
참고 : https://firebase.google.com/docs/cloud-messaging/android/receive
2. Android Oreo 버전 이상은 Notification Channel Id 와 Payload 의
"android_channel_id" 가 같아야 heads-up 알림이 노출 됩니다.
그 이하 버전은 백그라운드에서 Notification 으로 메시지를 작성하여 보낼 경우
heads-up 알림을 노출할수 없습니다.
3. 결론 적으로 Android 와 iOS 의
Notification Payload를 한번에 같이 사용하기는 힘듭니다.
iOS는 Data로만 메시지를 구성할 경우
사용자가 Background 에서 App을 kill 하거나
OS단에서 메모리 부족으로 App 을 메모리에서 해제 시킬수도
있기 때문에 제대로 Notification을 받을수 없습니다.
따라서 Notification 을 보내는 Server 측에서
사용자의 Device OS 를 구분해서 데이터를 보내 줘야만,
두 OS에서 원하는 동작을 구현 할수 있습니다.
반응형
'공부방 > Android' 카테고리의 다른 글
@soycrab :: 꿀맛코딩
행복한 코딩을 위하여!
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!