気ままに

プログラム関連で困ったことを調べて気ままに投稿

push送信で通知センターの履歴が消えない

ブログ始めてから、まだ記事を投稿してなかったので、iphoneアプリのpush通知の実装で確認に時間がかかた

push通知を送ってアプリを起動しても、通知センターの履歴が消えない件の調査をしてみた。

 

結果を先にいうと、apnsのペイロードでbadgeを設定しないもしくは、0を設定して送ると、

通知センターの履歴が消せないみたいです。

badge を1にして送って見ると、見事消えました。

 

もう1つ、困ったことは、どうやってbadgeの数値をインクリメントするか。。。

結論、できません。

 

 

アプリが起動中(バックグラウンド)であれば、バッチの数値を変更することは可能だけど、

アプリでpushを受信してbadgeのカウントをインクリメントというのは不可能らしい。

 

他のアプリで、どうやって5とか数値だしているのかというと、サーバにバッチ数をもっていて、

pushを送信する時にバッチの数値を設定して送信している。

これができるのは、Gmailのような未読数を保持するサービスの場合有効。

pushを受信して、アプリを起動するまでは、未読数は変わらないし、webから既読にしても、

新着メールがある度にその時点の未読数を通知すればいい。

 

アプリが起動中なら、サーバと非同期で通信して、未読数を取得した結果をbadge数に反映することができる。

 

[追記]

通知センターの履歴を削除した場合、バッチ数は残ったままなので、アプリが起動されるまではバッチ数が

残ったままになる。

 

google先生で調べてみたけど、困っている人がたくさんいるが、解決したという内容が見当たらなかったので、参考になれば。

 

間違い等あれば、ご指摘ください。

 

 

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS 7対応

詳細! Objective-C iPhoneアプリ開発 入門ノート Xcode5+iOS 7対応