13

iPhone (4S、iOS 5.1) のメール アプリは、アプリが実行されていなくても、新しいメールが到着すると自動的にバッジ カウントを更新するのを見てきました。私のアプリでもこの動作を実現することは可能ですよね?

私のアプリケーションは、バッジ、アラート、サウンドの 3 つのタイプすべてのプッシュ通知に正常に登録されています。本アプリは、3種類のリモート通知すべてにおいて、電話設定がONに設定されています。

私のアプリはリモート通知を受け取り、アラートを表示し、サウンドを再生しますが、バッジ番号を更新しません。アラートの [表示] ボタンからアプリを起動すると、アプリはバッジの値を完全に読み取ることができ、コードからアイコン バッジを変更/削除/設定できます。

通知が届いたときに iOS がアプリのアイコン バッジを自動的に変更できない特定の理由はありますか? 同様の投稿をすべて見てきました。それらはすべて、電話の設定、登録された通知の種類、またはペイロード JSON にバッジが含まれているかどうかの確認について議論しています。

この問題を引き起こす可能性のある他の理由はありますか?

ここに私のコードブロックがあります:

アプリを起動するたびに APNs に登録する -

[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound)];

デバイス トークンはほぼ瞬時に受信されました。トークンがプロバイダーに送信され、通知を受信して​​います。アラートとサウンドが機能します。ただし、アプリを起動して手動で変更するまで、バッジは自動的には効果がありません。助けてください。

4

3 に答える 3

27

私もこれとまったく同じ問題を抱えていました。バッジのアイコンは引用されていません。何時間も JSON を微調整しようとした後 (電話でアプリにバッジ、サウンド、アラートが表示されたことを確認した後) - 問題は、アプリが登録しているアラートの種類の 1 つとしてUIRemoteNotificationTypeNewsstandContentAvailabilityを追加したことでした。(私は夢中になった、ただすべてを選んだ)

そのため、UIRemoteNotificationTypeNewsstandContentAvailabilityも混在している場合、aps/badge 番号がアプリ アイコンを更新できるようにする機能をオーバーライドするようです。(ニューススタンドの情報を更新するために探している必要があります)

于 2012-11-26T19:52:07.533 に答える
21

この問題は修正されました。プロバイダー サーバーは、バッジ番号を引用符で囲んで送信していました (JSON 文字列、つまり「9」として)。APNs/iOS が整数として認識しないのは奇妙です。これで引用符が削除され、機能します:)

于 2012-07-06T14:15:26.443 に答える
0

同様の問題があり、バッジ番号に整数を強制することで解決しました(MySQL dbからのデータでPHPを使用):

$body['aps'] = array(
        'alert' => array(
        'action-loc-key'=> utf8_encode($r['button_action']),
        'body'          => utf8_encode($r['message']),
        'launch-image'  => ''
        ),
    'badge' => (int)$r['badge_number'],
    'sound' => 'default'
    );

Ps .: コマンドを見て、以前に直面しutf8_encodeたエラーを回避してください。json_encode

于 2016-05-30T01:29:29.493 に答える