2011-12-13 59 views
0

我的應用程序只呼叫警報,但徽章顯示並不會清除。下面是代碼.... :應用程序僅呼叫警報,但無論如何顯示徽章

- (void)registerForAPNService 
{ 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert)]; 
} 

的ApplicationIconBadgeNumber被設置爲17,如下所示。

(void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)devToken 
{ 
    //[SettingsManager shared].apnToken = [[[NSString alloc] initWithData:devToken encoding:NSSymbolStringEncoding] autorelease]; 
    NSString *apnToken = [devToken description]; 
    apnToken = [apnToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"< >"]]; 
    apnToken = [apnToken stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    _dataManager.apnToken = apnToken; 
    NSLog(@"Device token is %@", devToken); 
    NSLog(@"Device token is %@", apnToken); 
    [self sendAPNToken]; 
    //app.applicationIconBadgeNumber = 17; 

這是徽章的原因嗎?我的開發人員說「在APNS註冊期間徽章被關閉,這是一個iOS錯誤。」這似乎是這樣嗎?

+0

爲什麼添加「app.applicationIconBadgeNumber = 17;「如果你不想要徽章?是的,這聽起來像一個錯誤。 – shannoga

+0

註冊只能輪換推送通知設置徽章的能力,您隨時可以更改代碼中的徽章。 – hypercrypt

+0

PS:如果你不需要徽章,你爲什麼要推牌? – hypercrypt

回答

1

徽章不能真正被「關閉」。我不知道你的開發人員是什麼意思,但我非常懷疑這是一個iOS錯誤。您可以徽章的數量設置爲0,這樣的:

app.applicationIconBadgeNumber = 0; 

也許他們設置applicationIconBadgeNumber到17,然後註釋掉行,但從未將其設置回0

+0

將數字更改爲0並保存後,我需要做些什麼才能使更改生效? – Eric

+0

在應用程序委託中,在'didFinishLaunchingWithOptions:'使用'[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]''。我們不需要任何stinkin徽章。 – gurooj

+0

顯然徽章從一開始就出現,徽章顯示爲1.我說,因爲它雖然只有一個應用程序,但它內部有很多單獨控制的「子應用程序」,它們發出獨立的推送通知給他們各自的註冊用戶。無論他們註冊了哪個組,它看起來都是「1」。 – Eric

相關問題