개발
안드로이드와 iOS에서의 FCM 수신 문제
레란희
2024. 8. 29. 11:36
문제상황
- FCM 메시지를 받을 때 안드로이드에서는 notification 없이 data만 와야 하고, iOS는 notification을 받아야 했음.
방법 1.
백엔드에서 플랫폼 별로 메시지 구조를 다르게 해서 준다.
방법 2.
백엔드에서는 notification, data 둘 다 보내고 안드로이드에서 FCM 메시지에서 notification 관련 데이터를 삭제한다.
아래 코드를 테스트하진 않았음 (...)
override fun handleIntent(intent: Intent?) {
val new = intent?.apply {
val temp = extras?.apply {
keyset()?.forEach { key ->
if(key.startsWith(NOTIFICATION_PREFIX) || key.startsWith(NOTIFICATION_PREFIX_OLD)) {
//notification 관련 데이터는 삭제
remove(key)
}
}
}
replaceParam(temp)
}
super.handleIntent(new)
}
참고 링크 : https://medium.com/@jms8732/background에서-onmessagereceived가-호출-안되는-현상에-관하여-7595df624d91