push送信で通知センターの履歴が消えない
ブログ始めてから、まだ記事を投稿してなかったので、iphoneアプリのpush通知の実装で確認に時間がかかた
push通知を送ってアプリを起動しても、通知センターの履歴が消えない件の調査をしてみた。
結果を先にいうと、apnsのペイロードでbadgeを設定しないもしくは、0を設定して送ると、
通知センターの履歴が消せないみたいです。
badge を1にして送って見ると、見事消えました。
もう1つ、困ったことは、どうやってbadgeの数値をインクリメントするか。。。
結論、できません。
アプリが起動中(バックグラウンド)であれば、バッチの数値を変更することは可能だけど、
アプリでpushを受信してbadgeのカウントをインクリメントというのは不可能らしい。
他のアプリで、どうやって5とか数値だしているのかというと、サーバにバッチ数をもっていて、
pushを送信する時にバッチの数値を設定して送信している。
これができるのは、Gmailのような未読数を保持するサービスの場合有効。
pushを受信して、アプリを起動するまでは、未読数は変わらないし、webから既読にしても、
新着メールがある度にその時点の未読数を通知すればいい。
アプリが起動中なら、サーバと非同期で通信して、未読数を取得した結果をbadge数に反映することができる。
[追記]
通知センターの履歴を削除した場合、バッチ数は残ったままなので、アプリが起動されるまではバッチ数が
残ったままになる。
google先生で調べてみたけど、困っている人がたくさんいるが、解決したという内容が見当たらなかったので、参考になれば。
間違い等あれば、ご指摘ください。