アプリの未読数バッジを実装していてこんがらかってきたので、自分の方針をメモしておきます。バッジを消してるつもりなのに消えないとか、また復活していたりするとイライラしますよね。
いつ消すか
- 通知欄を見た瞬間に消える
- タイムラインの投稿、自分へのいいね等
- 大抵のものはこちらでOK
- 未読の部分まで読んだら消える
- チャット等のメッセージ
- 重要なお知らせ
- アイコンのバッジは種類に関わらず起動時には消す
- その後新しい通知が来るまで復活しないように
- Pushのみで数字を更新する場合は起動時に0にするだけ
- Push以外でアイコンバッジを更新することがあれば、最後にバッジを消した際の通知オブジェクトIDもしくは未読数を記録するという面倒な方法で実現する
- 複数クライアントがある場合は他のクライアントにもPushを送って0クリアしてあげると良さそう。あまりやってるのは見ないけど
どこまで読んだかを記憶する
最後に見た最新の通知オブジェクトのIDを記録します。お知らせの欄が複数ある場合はそれぞれ記録が必要です。
- POSTしてサーバーで記録する
- 複数端末での使用を想定
- 1クライアント想定でも再インストールなどが考えられるので、こちらの方が何かと便利
- クライアントで記録する
- 既読通知のIDをPOSTすると未読数が返ってくるようなAPIが必要
空気を読んだバッジの実装は大変です。もっと簡単にできそうだったら教えてください。