如何增加推送通知徽章iPhone

时间:2016-01-08 06:13:56

标签: iphone ios8 apple-push-notifications

是否可以在收到通知时增加徽章值。或者我应该将计数作为有效负载发送?

如果我每次都将徽章值发送为“1”,如果应用未打开,如何在应用图标中增加徽章值

我使用了这段代码,但没有用。

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
{
    [UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1; 
}

2 个答案:

答案 0 :(得分:2)

如果您想自动更改图标徽章,请使用以下代码。

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

    application.applicationIconBadgeNumber = 0;
    NSLog(@"userInfo %@",userInfo);

    for (id key in userInfo) {
        NSLog(@"key: %@, value: %@", key, [userInfo objectForKey:key]);
    }

    [application setApplicationIconBadgeNumber:[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]];

    NSLog(@"Badge %d",[[[userInfo objectForKey:@"aps"] objectForKey:@"badge"] intValue]);

}

我们还需要更改php文件。所以我们可以自动更改图标徽章

// Create the payload body
$body['aps'] = array(
    'alert' => $message,
    'sound' => 'default',
    'id' => '135',
    'badge' => 8
    );

答案 1 :(得分:0)

由于推送通知由iOS而非您的应用处理,因此您无法在收到推送通知时更改应用徽章。

但您可以在推送通知的有效负载中发送徽章编号,但您必须执行计算服务器端。

您应阅读:本地和推送通知编程指南,特别是通知有效负载。

有效载荷可能如下所示:

{     “aps”:{         “警告”:“你收到了你的电子邮件。”,         “徽章”:9     } } 现在,应用程序应用程序徽章图标将显示9。