徽章计数未从推送iOS7上更新

问题描述:

我在推送通知中更新iOS7应用程序上的徽章计数时遇到问题。它在iOS8中工作正常,但是,尽管正在收到推送,但iOS7中的徽章数并未更新。徽章计数未从推送iOS7上更新

我使用的测试负载如下:{"aps":{"alert":"Test","badge":1,"sound":"default"}}

任何想法可能是怎么回事?

在应用程序中手动设置徽章计数工作正常,它只是被忽略的推数。

+0

尝试改变1〜@(1)或至@“增量” – 2015-01-21 05:23:07

徽章计数的可能原因未更新,因为它无法将值标识为intNSInteger

当某个人尝试传递非整数值时,徽章不会更新。在这种情况下,它不会显示任何警告或崩溃,但当它无法识别徽章值所需的类型时,它就会消失。

展望您的推送通知支付负载可能是该值不是所需的类型。我的意思是它可能是stringboolean,它与徽章所需类型不兼容。

所以你可以做的是,在更新徽章数之前将它投射到int

假定有解析有效负载数据,字典和结果字典会像下面的代码:

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

    // Assuming payload data is parse and result in a dictionary like below: 

    NSDictionary *payloadData = @{ @"alert": @"Test", @"badge": @1, @"sound":@"default" }; 

    NSString *badgeString = [payloadData objectForKey:@"badge"]; 
    NSInteger badgeValue = [badgeString integerValue]; 

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:badgeValue]; 
}