2011-12-13 58 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

相关问题