新浪微博客户端(21)-获取当前微博未读数并提示用户
Posted 夜行过客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新浪微博客户端(21)-获取当前微博未读数并提示用户相关的知识,希望对你有一定的参考价值。
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) { }]; }
最终效果:
以上是关于新浪微博客户端(21)-获取当前微博未读数并提示用户的主要内容,如果未能解决你的问题,请参考以下文章