2017-01-12 11 views
1

私たちはSIPアプリケーションでFirebaseを使用して、アプリがオフラインになったときに不在着信通知とチャット通知を送信します。FirebaseはAndroidで同様の通知をマージする

送受信がうまくいっている間に、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

あなたのソリューションを共有してくれてありがとうGrisgram。乾杯! :) –

関連する問題