質問: 現在、Ruby on RailsのシステムからiOSアプリにプッシュ通知する部分の実装について、考えています。 既に実装済みであり、iOSアプリへの通知も実現済みです。 ですが、私が実装したものではないため、厳密には理解が怪しい部分が多いです。 Ruby on RailsからのiOSアプリへの通知には、現在APNSというgemを利用しています。 jpoz/APNS: An Apple Push Notification Service gem 実現済みではあるのですが、ペイロードに載せる`badge`パラメータについて疑問があります。 公式ドキュメントでは、badgeについて次のように説明されています。 > > アプリケーションアイコンのバッジとして表示する数字です。 > > このプロパティが存在しない場合、バッジは変化しません。バッジを削除したい場合は、このプロパティの値を0としてください。 > > リモート通知のペイロード > > > この、バッジ表記について、現在は特に指定せずにプッシュ通知を依頼しています。 具体的には以下のような実装です。 ``` APNS.send_notification(device_token, other: { 'aps' => { 'alert' => message, 'sound' => sound, 'content-available' => 1 }, 'category' => category, 'others' => others }) ``` オプションの指定などはSend other info along with apsのパターンだと思います。 ここでも、特にbadgeは指定していません。なので、アプリのアイコンにバッチが付くこともないです。おそらく、デフォルトで`0`となっている気がします。そのため、バッチ番号はつかないのだと思います。 そこで、このバッチ番号をパラメータとして新たに渡してあげればいいのだと思うのですが、 iOS側では特にバッチの数値をauto increment的な処理をしてくれる機構は用意されていないのでしょうか? 調べてみたのですが、 php - auto-increment badges number when receiving push notifications from APNS - Stack Overflow > > You will need to track the badge number server side as well. > > > とあるように、アプリで通知画面を開いた際のトリガーで既読、未読をチェックし、サーバー側でその数を管理してあげる必要がある、という認識で間違いないでしょうか? であれば、このあたりのプラクティスはどこかにまとまっていたりするのでしょうか? 今のところ知見がなく、これからオートインクリメント的な処理をサーバー側で実装するにあたり、何かご助言いただけますと幸いです。 よろしくお願いいたします。
回答: iOS側で単純に、未読数を管理し、通知一覧を開いた際にバッジカウンターをリセットするという実装で解決しました。