【问题标题】:Badge Icon doesn't increase when getting PushNotification in iPhone?在 iPhone 中获取推送通知时徽章图标不会增加?
【发布时间】:2014-04-21 10:09:50
【问题描述】:

我有一个带有 Apple 推送通知的应用程序,但问题是当推送到达时,徽章应用程序图标不会增加。

谁能告诉我如何增加应用程序的徽章?

我正在使用以下代码:

-(void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo {
    NSString* alertValue = [[userInfo valueForKey:@"aps"] valueForKey:@"badge"];
    NSLog(@"my message-- %@",alertValue);
    int badgeValue= [alertValue intValue];

    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:[[UIApplication sharedApplication] applicationIconBadgeNumber]+ badgeValue];
}

谢谢

【问题讨论】:

    标签: ios iphone ios7 push-notification apple-push-notifications


    【解决方案1】:

    您不能在推送通知中发送++。您需要在推送通知负载中提供准确的徽章计数,并在服务器端管理徽章计数。

    【讨论】:

    • 你需要有一个每个用户的数据库,并记住计数。我不知道您的应用程序具体做什么,但您需要考虑如何实现。例如,消息应用程序会随着每条新消息增加服务器上的徽章计数,并在用户打开应用程序时将其设置为 0。
    • 我们在 php 代码中设置了以下代码。 {"aps" : { "alert" : "这是警报文本", "badge" : 1, "sound" : "default" } }
    • 我也尝试使用 +1,但没有任何反应?我怎样才能增加它?
    • 你需要有一个数据库,增加数据库,当你构建payload时,你需要设置正确的数字(1 or 2 or 3 or 4 or 5 or ...)。跨度>
    【解决方案2】:

    试试这个代码:

    NSInteger numberOfBadges = [UIApplication sharedApplication].applicationIconBadgeNumber
    numberOfBadges +=1;
    
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:numberOfBadges];
    

    【讨论】:

      【解决方案3】:

      关于如何做你想做的事,Leo 是对的。

      要知道的是,您拥有的任何代码都无关紧要。只有在收到推送通知时应用程序处于打开状态时,该代码才会被激活。如果应用未打开,则不会运行任何代码。

      您可能想要研究的另一种可能性是仅数据推送,其中包含您想要的非 APS 元数据块中的徽章增量。然后您可以在数据推送中任意指定增量,并激活代码来处理内容。但很有可能你真的需要按照 Leo 的建议去做,否则你怎么知道增加徽章的正确数量?

      【讨论】:

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