【问题标题】:How to Increment the Push notification Badge iPhone如何增加推送通知徽章 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; 
}

【问题讨论】:

    标签: iphone ios8 apple-push-notifications


    【解决方案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。

    【讨论】:

      猜你喜欢
      • 2012-06-24
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多