【问题标题】:Can we send/display badge count for silent iOS notifications?我们可以发送/显示静默 iOS 通知的徽章计数吗?
【发布时间】:2015-10-05 10:13:17
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

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


    【解决方案1】:

    您可以将徽章计数放入有效负载中。在这种情况下,服务器端应该处理徽章计数的数量。例如:

    { "aps" : { "badge" : 5, }, }

    如果您的应用正在前台运行并增加/减少服务器发送的徽章计数,以下示例将有所帮助。

        - (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];
                }
            }
        }
    }
    

    【讨论】:

    • 如果我们与payload保持一致,key不应该是"badge"而不是"badgecount"吗?
    猜你喜欢
    • 2018-09-08
    • 1970-01-01
    • 2019-02-17
    • 2015-11-11
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多