问题描述
iOS 我现在只是要收到消息提醒 然后获取未读消息数就行 用哪些方法呢?主要是demo里的感觉不太好整明白 谢谢了
解决方案
1、收到消息提醒,去调用接口就行了,参考下:#import "EMCDDeviceManager.h"#import <AudioToolbox/AudioToolbox.h>@interface EMCDDeviceManager (Remind)// 播放接收到新消息时的声音- (SystemSoundID)playNewMessageSound;// 震动- (void)playVibration;@end2、未读数:/*! @method @brief 获取此对话中所有未读消息的条数 @discussion @result 此对话中所有未读消息的条数 */- (NSUInteger)unreadMessagesCount;参考下Demo的实现。可以采用去获取每个会话的未读数,然后加和的方法去统计未读数总数。
解决方案二:
// 统计未读消息数-(void)setupUnreadMessageCount{ NSArray *conversations = [[[EaseMob sharedInstance] chatManager] conversations]; NSInteger unreadCount = 0; for (EMConversation *conversation in conversations) { unreadCount += conversation.unreadMessagesCount; }// if (_messageLab)// {// if (unreadCount > 0)// {// _messageLab.text = [NSString stringWithFormat:@"%i",(int)unreadCount];// _index = unreadCount; NSDictionary *dic = @{@"index":[NSString stringWithFormat:@"%li",(long)unreadCount]}; [[NSNotificationCenter defaultCenter]postNotificationName:@"unReadCount" object:nil userInfo:dic]; [[UIApplication sharedApplication] setApplicationIconBadgeNumber: unreadCount];// [_messageLab setHidden:NO];// // // // // [[UIApplication sharedApplication] setApplicationIconBadgeNumber:3];// }else{// _messageLab.text = nil;// [_messageLab setHighlighted:YES];// }// }// // UIApplication *application = [UIApplication sharedApplication];// [application setApplicationIconBadgeNumber:unreadCount]; }搜这个方法,对应的有几个代理方法//未读消息写上就可以获得未读消息