如何增加iPhone的推送通知标记

如何增加iPhone的推送通知标记,iphone,ios8,apple-push-notifications,Iphone,Ios8,Apple Push Notifications,是否可以在收到通知时增加徽章值。或者我应该将计数作为有效负载发送吗 如果我每次都以“1”的形式发送徽章值,那么如果应用程序未打开,我如何增加应用程序图标中的徽章值 我使用了这个代码,但不起作用 -(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo { [UIApplication sharedApplication].application

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

如果我每次都以“1”的形式发送徽章值,那么如果应用程序未打开,我如何增加应用程序图标中的徽章值

我使用了这个代码,但不起作用

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

由于推送通知由iOS而非应用程序处理,因此在收到推送通知时,您无法更改应用程序标记

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

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

有效载荷可能如下所示:

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

如果要自动更改图标徽标,请使用以下代码

- (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
    );

您是否可以让它自动递增,而不是从通知负载中获取徽章值(如果服务器无法计算未读计数?)