안녕하세요 chat push notification 관련하여 문의 드립니다

안녕하세요 담당자님. 2022년 새해 복 많이 받으시고 항상 건강하세요.

다름이 아니라 ios는 앱을 사용중에 푸시알림을 받을지 말지 결정하는 방법이 간단하게 되어있는 반면에 aos 는 추가 구현이 필요하다고 나와있는데 구현하다 보니 설명이 부족하다는 느낌을 받았습니다.

혹시 구현이 되어있는 참고할만한 코드가 있는지 알고 싶습니다.

감사합니다.

안녕하세요,

앱을 사용중에 푸시알림 받는게 Multi-device support 를 말씀하시는거 같은데, 저희 공식 문서에 관련 내용 설명이 있습니다. (Multi-device support)

구현 시 중요한 부분은 Step4에 설명된거처럼 앱에서 SendBirdPushHandler를 상속한 class를 SendBirdPushHelper.registerPushHandler()로 설정을 해주시면 됩니다.
SendBirdPushHandleralwaysReceiveMessage(): Boolean 함수가 있는데, 이걸 상속해서 return true (default는 false) 로 해주시면 앱이 foreground에서 사용중에도 푸시를 받을 수 있습니다.

저희 샘플에 적용되어있는 SendBirdPushHandler 상속해서 구현된 내용도 같이 참고하시면 좋을 것 같습니다. (MyFirebaseMessagingService.java)

감사합니다.

답변 감사합니다.
SendBirdPushHandleralwaysReceiveMessage(): Boolean 함수가 있는데, 이걸 상속해서 return true (default는 false) 로 해주시면 앱이 foreground에서 사용중에도 푸시를 받을 수 있습니다. 하지만 background로 갔다가 다시 돌아와야 가능한 문제가 생겼습니다.

궁금한 점이
Q1. 기존에 MyFirebaseMessagingService 를 구현 해놓은 상태에서 SendBirdPushHandler를 상속한 class(MyFirebaseMessagingServiceSendbird()) 를 새로 만들었는데 이런 형식으로 하니 SendBirdPushHelper.registerPushHandler()에 등록은 된 것 같은데 실제로 메세지를 처리하는 곳은 기존에 있던 MyFirebaseMessagingService에서 처리하고 있음을 확인했는데 이런 방식으로 구현하면 안되나요?

Q2. 답변 주신 것과 같이 모두 구현을 했는데 앱을 처음 실행 했을 때에는 푸시 수신을 하지 못하는데 background 로 갔다가 다시 들어올 시 푸시를 수신할 수 있습니다. background로 나갔다 오지 않아도 푸시를 받을 수 있게 구현하는 방식이 가능한가요?

안녕하세요,

Q1. 기존에 MyFirebaseMessagingService 를 구현 해놓은 상태에서 SendBirdPushHandler를 상속한 class(MyFirebaseMessagingServiceSendbird()) 를 새로 만들었는데 이런 형식으로 하니 SendBirdPushHelper.registerPushHandler()에 등록은 된 것 같은데 실제로 메세지를 처리하는 곳은 기존에 있던 MyFirebaseMessagingService에서 처리하고 있음을 확인했는데 이런 방식으로 구현하면 안되나요?

→ 맞습니다. 앱에서는 firebase 관련한 서비스를 AndroidManifest에서 모두 제거해주셔야 SDK에서 등록한 게 적용되면서 SendBirdPushHandler가 제대로 동작을 하게 되고 이쪽으로 메세지를 받게 됩니다.

Q2. 답변 주신 것과 같이 모두 구현을 했는데 앱을 처음 실행 했을 때에는 푸시 수신을 하지 못하는데 background 로 갔다가 다시 들어올 시 푸시를 수신할 수 있습니다. background로 나갔다 오지 않아도 푸시를 받을 수 있게 구현하는 방식이 가능한가요?

→ 이 부분은 저희도 한번 확인해보겠습니다. 혹시 1번과 연관된 문제일수도 있으니 1번 수정 후 다시 한번 확인 부탁드립니다.

감사합니다.

1 Like

답변 감사합니다.

이제 온라인에서 푸시를 받을 수 있게 되었습니다.

근데 background가 아닌 앱을 종료한 상태에서는 푸시가 안 오는 상황입니다.

따로 설정해줘야하는 값이 있을까요?

현재 앱 setting에서 Send to devices both offline and online 으로 설정을 해놓은 상태입니다.

MyApplication 에 init 함수와 handler를 넣어주니 정상적으로 작동하고 있습니다. 감사합니다!