[[UIApplication sharedApplication] setApplicationIconBadgeNumber:count]
[UIApplication sharedApplication].applicationIconBadgeNumber = 99
当角标个数为0的时候,设置个数为0,系统会自动设置角标不显示
如果项目中集成了友盟的推送,那就是友盟推送默认清空角标,需要将默认清空关闭。调用此方法:
[UMessage setBadgeClear:NO]
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]
[[UIApplication sharedApplication] registerUserNotificationSettings:settings]
[application registerForRemoteNotifications]
if (@available(iOS 10.0, *)) {
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]
center.delegate = self
[center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge|UNAuthorizationOptionSound) completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (!error) {
NSLog(@"请求权限成功!")
}
}]
[center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
NSLog(@"%@",settings)
}]
[[UIApplication sharedApplication] registerForRemoteNotifications]
} else {
// Fallback on earlier versions
}
在苹果手机机设置界面中关闭某个软件的允许通知开关,就能够清除苹果手机桌面中某个图标上面的角标了。
以苹果6s为例,具体 *** 作步骤如下:
一、第一步,在手机桌面找到设置,然后点击进入设置,如下图所示。
二、第二步,进入设置后,找到“通知”,接下来点击通知,如下图所示。
三、第三步,接下来点击一个要取消角标的应用,如下图所示。
四、第四步,接下来点开之后,点击关闭允许通知开关,如下图所示。
五、第五步,然后就设置完成,成功取消了桌面中某个图标的角标,如下图所示。
应用角标控制方式比较多,简单列举一下,方便大家处理类似问题。
如果推送没有 badge 参数,那么每次推送 badge 数量为 +1。
如果 Code / Push 都不能满足需求的时候,比如推送后还要根据本地数据对 badge 做特殊处理,就可以考虑下 UNNotificationServiceExtension 方案。但是有个前提是 push 的消息要带 "mutable-content":1 才能拦截处理。UNNotificationServiceExtension 原理如下图:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)