1

アプリケーションが最小化状態にあり、同時に通知が来ると、アプリ アイコンにバッジが表示されます。

4

2 に答える 2

0

通知が到着し、アプリケーションがフォアグラウンドでない場合、OS が通知を処理します。

通知badgeには、OS にバッジを更新させるフィールドを含めることができます。ただし、これは、通知を送信するサーバーが、どの番号がバッジであるべきかを知る方法が必要であることを意味します。

通知本文は次のようになります。

{
    "aps" : {
        "badge" : 9
    }
}
于 2012-05-31T12:51:43.113 に答える
0

これが私の解決策です。私が行ったのと同じことをアプリで達成する必要がありました。ダウンロードのキューがあり、バッジを使用して残りのダウンロード数を表示し、バックグラウンドでも更新し続けたいと考えていました。基本的に私の解決策は、ダウンロードの 1 つが完了するたびにUILocalNotification、サイレント サウンドを設定し、メッセージ テキストを表示しないというものでした。単にバッジを設定するだけです..以下に示すように..

- (void)queRequestFinished:(ASIHTTPRequest *)request {

    self.inResourceCount -= 1; // Deducted 1 from the total count of downloads in queue.

    Class cls = NSClassFromString(@"UILocalNotification");
    if (cls != nil) {

    UILocalNotification *notif = [[cls alloc] init];
    notif.fireDate = [NSDate  date]; // Schedule notification for now.
    notif.timeZone = [NSTimeZone defaultTimeZone];
    notif.soundName = @"silence.caf";
    notif.applicationIconBadgeNumber = inResourceCount; // Number you want displayed as Badge.

    // This is where the magic happens, and actually changes your badge.    
    [[UIApplication sharedApplication] scheduleLocalNotification:notif];

    [notif release];
   }

}

私のシナリオはあなたのシナリオとは異なる可能性があることを指摘したいと思います。ASIHTTPRequestバックグラウンドでのダウンロードの継続をサポートするライブラリを使用しqueRequestFinished:ていましたが、バックグラウンドでも上記のメソッドが呼び出されます。答えとしてマークされている場合、これが役立つことを願っています:)。

于 2012-05-31T13:16:10.027 に答える