1

Google은 SIP 앱에서 Firebase를 사용하여 앱이 오프라인 일 때마다 부재 중 전화 알림 및 채팅 알림을 보냅니다.Firebase가 Android에서 유사한 알림을 병합합니다.

송수신이 정상적으로 작동하는 동안 안드로이드 클라이언트에 영향을 미쳤습니다. 부재 중 통화 5 회는 부재 중 전화 알림 5 개를 생성하고 클라이언트 장치의 알림 표시 줄을 채 웁니다.

"5 부재 중 전화"알림을 표시하기 위해 어떻게 알림을 병합 할 수 있습니까?

메시지의 data 또는 notification 부분에 추가 할 수있는 플래그 (그룹화와 같은)가 있습니까? 여기

은 현재 부재 중 전화 알림의 예입니다

{ 
    "to":"<<FCMToken>>", 
    "priority":"high", 
    "notification":{ 
     "title":"<<Displayname-of-Caller>>", 
     "text":"<<Date-and-time-of-call>>", 
     "icon":"icon_notification_missed", 
     "click_action":"MISSED_CALL" 
    }, 
    "data":{ 
     "type":"sip-call-missed" 
    } 
} 

그래서 하나로서 그들을 함께 결합의 비결은 무엇입니까?

답변

3

올바른 해결책을 찾았습니다. 알림 내용에 대해 더 많은 기존 키워드가 있습니다. 필요한 것은 "tag"입니다. loc 키에 리소스 이름을 제공하여 알림의 클라이언트 쪽 텍스트를 현지화 할 수도 있습니다. 여기

함께 번들로 제공 할 수있는 올바른 메시지입니다 :

{ 
"to":"<<FCMToken>>", 
"priority":"high", 
"notification":{ 
    "title_loc_key":"notification_missed_call", 
    "tag":"MISSED_CALL", 
    "body_loc_key":"notification_missed_call_multiple", 
    "body_loc_args":["<<missed_call_count>>"], 
    "icon":"icon_nav_main_chat", 
    "click_action":"MISSED_CALL" 
}, 
"data":{ 
    "type":"sip-call-missed" 
} 
} 

tag는 클라이언트에 의해 병합 할 것입니다 ... 말하자면 : 그들은 서로를 대체합니다. 태그가있는 알림이 도착할 때마다 기존의 모든 알림을 동일한 태그로 바꿉니다. 트릭은 여기에 서버가 계산해야하는 실행 횟수 인 <<missed_call_count>>을 제공하기 때문에 클라이언트는 "부재중 전화 5 회"와 같이 증가하는 숫자를 표시 할 수 있습니다. "%d missed calls" 문자열은 "notification_missed_call_multiple"이라는 클라이언트 측 문자열 리소스에 저장됩니다.

+0

해결책을 공유해 주셔서 감사합니다. 건배! :) –

관련 문제