HomeViewController.m
- (void)viewDidLoad { [super viewDidLoad]; // 初始化NavigationItem [self initNavigationItem]; // 初始化TitleView [self initTitleView]; // 更新TitleView 显示名称 [self updateTitleViewDisplayName]; // 集成下拉刷新控件 [self setupPullToRefreshView]; // 授权显示通知 [self requestDisplayBadge]; // 获取微博未读数 NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(setupUnReadCount) userInfo:nil repeats:YES]; [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSRunLoopCommonModes]; } /** iOS8中如果想要设置ApplicationIconBadgeNumber,需要用户授权 */ - (void)requestDisplayBadge { float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version >= 8.0) { UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge categories:nil]; [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; } } /** 清空所有通知提示 */ - (void)clearAllBadgeTips { self.tabBarItem.badgeValue = nil; [UIApplication sharedApplication].applicationIconBadgeNumber = 0; } /** 每隔5秒向新浪发送一次请求,获取当前微博未读数量 */ - (void)setupUnReadCount { AFHTTPSessionManager *requestManager = [AFHTTPSessionManager manager]; NSString *urlString = @"https://rm.api.weibo.com/2/remind/unread_count.json"; NSMutableDictionary *params = [NSMutableDictionary dictionary]; DJAccount *account = [DJAccountTool account]; params[@"access_token"] = account.access_token; params[@"uid"] = account.uid; [requestManager GET:urlString parameters:params progress:nil success:^(NSURLSessionDataTask * _Nonnull task, NSDictionary * _Nullable responseObject) { NSString *unReadCount = [responseObject[@"status"] description]; if ([unReadCount isEqualToString:@"0"]) { // 没有未读的微博数据 [self clearAllBadgeTips]; } else { // 有未读的微博数据 self.tabBarItem.badgeValue = unReadCount; [UIApplication sharedApplication].applicationIconBadgeNumber = [unReadCount intValue]; } } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { }]; }
最终效果: