0

そのため、プッシュ通知は完全に機能していますが、バッジ通知が 3 つまでしか表示されず、それらの通知が表示されていても、バッジ番号がそれを超えません。バッジをクリアするための起動時のバッジ レジスタとクリア コー​​ドは次のとおりです。

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

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];

バッジを設定するコードは他にありません。

どんな質問にも喜んでお答えしますが、これを修正する必要があります^^; 助けてくれてありがとう!

イタリック体で編集します。

4

2 に答える 2

1

プッシュ通知の到着の結果としてバッジ カウントを更新する場合は、(badgeプッシュ通知のプロパティを使用して) サーバーでその値を設定する必要があります。

サーバーがアプリにプッシュ通知を送信する場合、それらが確実に届くとは限りません。短期間に複数の通知を送信すると、Apple がそれらの一部のみを配信する可能性があります。したがって、通知が届いたときにアプリでバッジの数を増やすことはお勧めできません。

これが良い方法ではないもう 1 つの理由は、アプリでプログラムによってバッジを更新する場合、ユーザーが通知をタップしたときにのみ更新が行われることです (また、ユーザーが起動アイコンからアプリケーションを開いた場合は、通知があったことを知っているので、バッジを更新することはわかりません)。

バッジの考え方は、サーバーがプッシュ通知の一部としてバッジを送信するというものです。その後、通知をタップしなくても、iOS はアプリ アイコンにバッジを表示します。これは、アプリで表示する新しい情報があることをユーザーに伝えます。アプリが起動したら、新しいデータを表示し、バッジをクリアする必要があります (値を 0 に設定します)。

通常、サーバーから返されるバッジ番号には、アプリのユーザーがサーバーで利用できる新しいデータ項目の数 (未読メールの数など) が含まれています。ユーザーが複数のデバイスを介してサーバーからデータにアクセスできる場合、サーバーにこの数を維持させることはさらに理にかなっています。ラップトップで新しいメールをすべて読んでいる場合、未読メッセージを示すバッジ番号をメール アプリに表示したくないでしょう。

于 2013-07-19T23:36:02.553 に答える