如何增加推送通知徽章 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的主要内容,如果未能解决你的问题,请参考以下文章

推送通知徽章

在 iOS13 中接收推送通知时如何自动增加通知徽章编号

iPhone:自动增加徽章计数器[重复]

Firebase 推送通知徽章计数是不是在 iOS 中自动增加?

更新推送通知徽章计数

每次到达时如何在推送通知中计算徽章值?