如何在收到推送消息时更新iOS主屏幕中的通知徽章编号?

时间:2014-06-26 05:49:40

标签: ios iphone push-notification

我想iOS设备可以自动更新主屏幕中的预算号码(app不运行)。 目前,我使用推送通知,它可以接收推送通知。 但是预算编号不会自动更新(它只能在我点击查看详细推送通知后更新)。 我的问题是如何在收到推送消息时重新加载预算号码,应用程序未运行(后台应用程序) - 比如LINE聊天应用程序? 我的功能是在AppDelegate中显示预算编号,如下:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    int Total_budges = [[userInfo objectForKey:@"badge_count"] intValue];
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + Total_budges;
}

全部谢谢!

2 个答案:

答案 0 :(得分:2)

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo当你的应用程序处于backGround状态时,永远不会调用此方法其他处于活动状态所以只需要从后端管理它的徽章计数。

使用密钥或徽章的APNS PayLoad必须具有整数值。像

badge": 1 // that value (1) must be an Integer else that badge not display.

所以当推送通知到达时,Apple管理会自动在您的应用程序图标上显示该徽章图标。

对于使用应用程序打开时的清除计数:

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
    [[UIApplication sharedApplication] cancelAllLocalNotifications];

答案 1 :(得分:0)

谢谢大家回答我! 我正在重试,现在它运行正常! 我所做的所有步骤: 1-重新计算服务器中的总预算和Apple推送消息的响应 2-用钥匙“徽章”返回

$body['aps'] = array(
                'alert' => $message,
                'badge' => $Total_msg_unread,
                'sound' => 'default'
                );

在阅读Chinttu RoxeN Ramani的回复之前,我将'徽章'设置为自定义键=>它无法运行。也许这是我的问题!

3-在Xcode中将预算值转换为IntValue。 再一次,谢谢大家!