2011-06-21 23 views
7

私は、新しい通知を受け取った後、増分または減分としてバッジ番号を維持するためのサーバーサイドアプリケーションを開発しました。アップルプッシュ通知バッジ番号

しかし、バッジを表示する際に問題があります。実際のシナリオは次のとおりです。 - デバイスに新しい通知を受け取った後、キャンセルボタンをクリックしてからバッジ番号が正しく表示されますが、その後はアプリケーションを開き、削除されます。つまり、私に通知が届いたというリクエストをサーバーに送信していないので、バッジを1つ減らすことができます。その後、バッジもアプリアイコンから削除されました。

私の質問は、アプリケーションを開くと、バッジ番号が自動的に(アプリケーション)デバイスから削除されたということですか?またはゼロに設定するまではそのまま表示されますか?

答えて

12

あなたはそれをゼロに設定し、次のコードでそれを行うことができますまで、それが表示されます:

[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0] 


EDIT:
は、あなたが通知を受け取るようバッジ番号を設定することがより一般的である 、あなたのUIApplicationDelegateクラスのapplication:didReceiveRemoteNotification:またはapplication:didFinishLaunchingWithOptions:のいずれかの方法です。

次のコードを使用して、自動的にアイコンバッジを変更したい場合は、Local and Push Notification Programming Guide

0

でそれについての詳細を読むことができます。

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
{ 

    application.applicationIconBadgeNumber = 0; 
    NSLog(@"userInfo %@",userInfo); 

    for (id key in userInfo) { 
     NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]); 
    } 

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]]; 

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]); 

} 

また、phpファイルを変更する必要があります。アイコンのバッジを自動的に変更することができます。

// Create the payload body 
$body['aps'] = array(
    'alert' => $message, 
    'sound' => 'default', 
    'id' => '135', 
    'badge' => 8 
    ); 
関連する問題