iOS静默推送应更新应用程序徽章计数

是否可以通过接收静推送来更新应用程序徽章计数.

当应用程序未在后台运行时,不会调用方法.
我的猜测是,即使应用程序没有在后台运行,也会调用方法.我错了吗?@H_502_4@

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
        fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
    int currentBadge = [UIApplication sharedApplication].applicationIconBadgeNumber;
    DLog(@"%@,badge = %i",userInfo,currentBadge);
    [UIApplication sharedApplication].applicationIconBadgeNumber = [UIApplication sharedApplication].applicationIconBadgeNumber + 1;
    completionHandler(UIBackgroundFetchResultNoData);
}

我只是想通过任何收到的通知增加徽章号码.通知有效负载没有“徽章”字段.@H_502_4@

可能吗?@H_502_4@

如果应用程序没有运行后台,UIApplicationExitsOnSuspend = YES,我想知道在这种情况下是否会无声推送工作?@H_502_4@

解决方法

在iOS上预处理和修改通知的有效负载有各种可能性.

在iOS 10之前@H_502_4@

您可以发送Silent Notifications,不会向用户显示内容.将终止或在后台唤醒我们的应用程序,您将能够对通知内容进行预处理.查看更多信息here,如何设置.但是,此通知类型不是100%可靠,并且不应滥用,例如,用于所有要发送的通知,因为Apple可以停止在一些消息之后发送通知.@H_502_4@

另一种选择是,如果您的应用程序支持VoIP.这样,您的应用程序几乎总是会听取推送通知,并且您将始终可以预先处理通知,然后再显示它们.但是,如果您的应用没有真正的VoIP功能,例如电话,Apple会在评论时拒绝您的应用. Here一个很棒的教程,如何设置它.@H_502_4@

来自iOS 10@H_502_4@

随着iOS 10的推出,我们终于能够对我们的通知进行预处理,甚至在应用程序处于后台或终止时也是如此.不需要发送VoIP功能或特殊类型的通知. Here一个很棒的教程,如何设置它.@H_502_4@

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...