如何增加推送通知徽章 iPhone
Posted
技术标签:
【中文标题】如何增加推送通知徽章 iPhone【英文标题】:How to Increment the Push notification Badge iPhone 【发布时间】:2016-01-08 06:13:56 【问题描述】:是否可以在收到通知时增加徽章值。或者我应该将计数作为 payload 发送吗?
如果我每次都将徽章值发送为“1”,如果应用程序未打开,我如何增加应用程序图标中的 badge-value。
我使用了这段代码,但不起作用。
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
[UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
【问题讨论】:
【参考方案1】:如果要自动更改图标徽章,请使用以下代码。
- (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
);
【讨论】:
你可以让它自动递增,而不是从通知负载中获取徽章值(如果服务器无法计算未读计数?)【参考方案2】:由于推送通知由 ios 而非您的应用处理,因此您无法在收到推送通知时更改应用程序徽章。
但您可以在推送通知的有效负载中发送徽章编号,但您必须在服务器端进行计算。
您应该阅读:本地和推送通知编程指南,特别是通知负载。
有效载荷可能如下所示:
“aps”: "alert" : "你收到了你的邮件。", “徽章”:9 现在应用程序徽章图标将显示 9。
【讨论】:
以上是关于如何增加推送通知徽章 iPhone的主要内容,如果未能解决你的问题,请参考以下文章