3

サーバーからプッシュ通知を受け取っています。サーバーは常に Badge=1 をペイロードで送信します。

サーバー側の開発者はそれについて何も知りません。iOS アプリが更新されたバッジ カウント (自動インクリメント バッジ カウント) を取得できるように、サーバー側の開発者がバッジ カウント値を処理する方法を教えてください。

  1. iOS アプリ側で自動インクリメントできますか? もしそうなら、どのように?

  2. そうでない場合、サーバー開発者はサーバーでバッジカウントをどのように処理できますか? サーバー側でバッジ数を処理する必要があることを示すリンクをいくつか見ました。

サンプルやリファレンスは役に立ちます。

4

2 に答える 2

6

iOSアプリ側ではできないと思います。サーバーから取得する必要があります。

私がやること:

  • サーバーは、各ユーザーのデータベースにアプリバッジ番号を保存します。
  • サーバーが通知を送信すると、その数が 1 増加します。
  • また、アプリケーションの起動時に呼び出すバッジ番号をリセットする Web サービスを作成する必要があります。

その行でアプリのバッジ番号を変更できます (例: applicationDidBecomeActive):

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    application.applicationIconBadgeNumber = 0;
}

この助けを願っています。

于 2013-03-28T16:55:20.493 に答える
4

バッジ カウントは、サーバーから Apple プッシュ通知ペイロードで送信できるパラメーターの 1 つです。通常、バッジ カウントは、サーバーが認識し、アプリ ユーザーに警告したいある種の新しいデータ (未読メールなど) の量を反映しています。したがって、サーバー側で行う必要があります。現在、バッジ カウントで常に 1 を送信しているコードを変更して、正しいカウントを選択する必要があります。

クライアントで実行できます (プッシュ通知が到着するたびに 1 ずつ増やします) が、プッシュ通知が到着するとは限らないため、これはお勧めできません。さらに、通知にバッジ番号に加えてアラートが含まれており、ユーザーが通知をタップしてアプリを開く場合にのみ可能です (そうしないと、アプリがまだ実行されていない場合、アプリは通知データを取得できません)。 .

于 2013-03-28T16:56:38.627 に答える