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

前端之家收集整理的这篇文章主要介绍了iOS静默推送应更新应用程序徽章计数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以通过接收静默推送来更新应用程序徽章计数.

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

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

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

可能吗?

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

解决方法

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

在iOS 10之前

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

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

来自iOS 10

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

猜你在找的iOS相关文章