繁体   English   中英

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

[英]Badge count not updating from push on iOS7

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

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

有什么想法怎么回事?

在应用程序中手动设置徽章计数效果很好,只是忽略了推送计数。

徽章计数的可能原因未更新,因为它无法将值标识为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];
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM