如何在iOS';收到推送消息时的主屏幕?

如何在iOS';收到推送消息时的主屏幕?,ios,iphone,push-notification,Ios,Iphone,Push Notification,我希望iOS设备可以自动更新主屏幕中的预算数字(应用程序未运行)。 目前,我正在使用推送通知,它可以接收推送通知OK。 但预算数字不会自动更新(它只能在我点击查看详情推送通知后更新)。 我的问题是,当收到推送消息时,应用程序未运行(后台应用程序)-如在线聊天应用程序,如何重新加载预算数? 我在AppDelegate中显示预算数的函数如下: - (void)application:(UIApplication *)application didReceiveRemoteNotification:(

我希望iOS设备可以自动更新主屏幕中的预算数字(应用程序未运行)。 目前,我正在使用推送通知,它可以接收推送通知OK。 但预算数字不会自动更新(它只能在我点击查看详情推送通知后更新)。 我的问题是,当收到推送消息时,应用程序未运行(后台应用程序)-如在线聊天应用程序,如何重新加载预算数? 我在AppDelegate中显示预算数的函数如下:

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

-(void)application:(UIApplication*)application didReceiveMemotentification:(NSDictionary*)userInfo
当您的应用程序处于后台状态或处于活动状态时,将永远不会调用此方法,所以您只需从后端管理它的徽章计数

来自您的带有密钥或徽章的APNS有效负载必须具有整数值。像

badge": 1 // that value (1) must be an Integer else that badge not display.
所以,当推送通知到达时,Apple manage会自动在应用程序图标上显示该徽章图标

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

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

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

在阅读Chinttu RoxeN Ramani的回复之前,我将“徽章”设置为custom key=>它无法运行。也许这是我的问题

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

在后台,不会调用didReceiveRemoteNotification,徽章将由iOS处理。您应该保留的唯一内容是您必须发送的内容和整数值当您发送推送通知时,您必须发送
badge
标记,然后只有您的应用程序才会显示badge。因此,您的有效负载应该如下所示:
{“警报”:“测试通知”,“badge”:5,“声音”:“默认”}
。因此,你的应用程序将显示5个徽章。
$body['aps'] = array(
                'alert' => $message,
                'badge' => $Total_msg_unread,
                'sound' => 'default'
                );