ios - 我们可以发送/显示静默 iOS 通知的角标(Badge)计数吗?

标签 ios objective-c apple-push-notifications push badge

我想在 iOS 应用程序中处理角标(Badge)计数增量。根据我到目前为止所做的研究,我了解到应用程序可以在前台时以编程方式读取/更新角标(Badge)。此外,仅当应用程序处于前台状态时才会调用“application:didReceiveRemoteNotification”。

但是,即使我的应用程序处于后台状态,我也希望能够增加角标(Badge)。我遇到了下面的通知回调方法,即使在后台状态下也会被调用 - 应用程序:didReceiveRemoteNotification:fetchCompletionHandler

它是在 iOS 7 中引入的。但是我注意到即使是这个新引入的回调也不会在后台状态下调用。然后在做了更多的研究之后,我意识到这个方法只在 Silent iOS 通知的情况下调用。所以现在我的问题是,是否可以显示静默通知的角标(Badge)计数,我可以在有效负载中接收角标(Badge)计数吗?我只是想通过利用可用于静默通知的后台支持来实现角标(Badge)计数计算。

此时此刻,任何建议/指导/帮助对我们来说都是非常宝贵的。

谢谢。

最佳答案

您可以将角标(Badge)计数放入有效负载中。在这种情况下,服务器端应该处理角标(Badge)计数。例如:

{ “应用程序”:{ “角标(Badge)”:5, }, }

如果您的应用在前台运行并增加/减少服务器发送的角标(Badge)计数,以下示例会有所帮助。

    - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo  {
    NSLog(@"remote notification: %@",[userInfo description]);

    if (userInfo) {
        NSLog(@"%@",userInfo);

        if ([userInfo objectForKey:@"aps"]) { 
            if([[userInfo objectForKey:@"aps"] objectForKey:@"badgecount"]) {
                [UIApplication sharedApplication].applicationIconBadgeNumber = [[[userInfo objectForKey:@"aps"] objectForKey: @"badgecount"] intValue];
            }
        }
    }
}

关于ios - 我们可以发送/显示静默 iOS 通知的角标(Badge)计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31446194/

相关文章:

ios - ios 中的推送通知 - 角标(Badge)和横幅显示不同的请求

ios - PopViewController 动画 :YES when tap on UIAlertView make Keyboard appear in parentVC

ios - iOS 的唯一用户 ID

iphone - 错误 : Symbol not found: ___CFObjCIsCollectable

java - 如何将整个文件夹或包从 Java 转换为 Objective-C?

ios - 通知中心设备在推送后消失 (APNS)

ios - '[[myView viewWithTag :tag] removeFromSuperview]' Removes all my UIButtons

ios - 从 visual studio 2013 运行 xamarin.ios 应用程序?

ios - 在 Web 服务结果上触发通知。

c# - 证书的 iOS 推送通知 AuthenticationException