// // YBImManager.h // YBHiMo // // Created by YB007 on 2021/9/15. // Copyright © 2021 YB007. All rights reserved. // #import #import "TConversationCell.h" #import #import "TMessageCell.h" #pragma mark - 自定义消息 action /// 用户发起 static const int IMAction_CallUserReq = 0; /// 用户取消 static const int IMAction_CallUserCancel = 1; /// 主播发起 static const int IMAction_CallAnchorReq = 2; /// 主播取消 static const int IMAction_CallAnchorCancel = 3; /// 主播接听 static const int IMAction_CallAnchorAgree = 4; /// 主播拒绝 static const int IMAction_CallAnchorReject = 5; /// 用户接听 static const int IMAction_CallUserAgree = 6; /// 用户拒绝 static const int IMAction_CallUserReject = 7; /// 主播挂断 static const int IMAction_CallAnchorHang = 8; /// 用户挂断 static const int IMAction_CallUserHang = 9; /// 拍乐云检测实现 /// 关闭摄像 //static const int IMAction_CallCameraClose = 10; /// 打开摄像 //static const int IMAction_CallCameraOpen = 11; /** * 可以使用 TIMProfileTypeKey_Custom_Prefix 来获取IM的前缀 * Tag_Profile_Custom_age 年龄 * Tag_Profile_Custom_avatar 头像 * Tag_Profile_Custom_city 城市 * Tag_Profile_Custom_nickname 昵称 * Tag_Profile_Custom_sex 性别 * Tag_Profile_Custom_sign 签名(交友心声) */ /// 这里定义了用户信息后缀,请勿改动,需要和腾讯IM控制台统一 #define IMKey_Custom_Suffix_Age @"age" #define IMKey_Custom_Suffix_Avatar @"avatar" #define IMKey_Custom_Suffix_City @"city" #define IMKey_Custom_Suffix_Nickname @"nickname" #define IMKey_Custom_Suffix_Sex @"sex" #define IMKey_Custom_Suffix_Sign @"sign" /// 私信推送【0-按照默认规则进行推送 1-不推送】 #define IM_Msg_Push 1 typedef NS_ENUM(NSInteger,ImCallType) { ImCallType_Audio, ImCallType_Video, }; typedef void (^ImStatusBlock)(BOOL isSucc); typedef void (^ImGroupListBlock)(NSArray *groupList); typedef void (^ImTransformBlock)(NSString *transformStr); typedef void (^ImTransformArrayBlock)(NSArray *transformArray); typedef void (^ImGetUnreadBlock)(int allUnread); typedef void (^ImGetConversationListBlock)(NSMutableArray *CovList, BOOL isSuccess); typedef void (^ImRecevNewMsgBlock)(TMessageCellData *receData); //获取新消息 typedef void (^ImSendV2MsgBlock)(BOOL isSuccess, V2TIMMessage*sendMsg, NSString *desc); //发送消息 @interface YBImManager : NSObject +(instancetype)shareInstance; #pragma mark - 登录、登出 @property(nonatomic,assign)BOOL isLogin; -(void)imLogin; -(void)imLogout; #pragma mark - 推送相关 @property(nonatomic,assign)uint32_t cer_dev; @property(nonatomic,assign)uint32_t cer_pro; @property(nonatomic,strong)NSData *deviceToken; //-(void)setIMPushConfig; ////-(void)changeAppActive:(BOOL)isActive; // //#pragma mark - 自定义消息公共方法 //-(void)pulicSendMsgWith:(NSDictionary *)msgDic receiver:(NSString *)receiverid complete:(ImStatusBlock)status; // ///// 播放、停止响铃 //-(void)playAudioCall; //-(void)stopAudioCall; // ///// 消息提示 //- (void)tryPlayMsgAlertWithSenderid:(NSString *)senderUid; // //#pragma mark - 消息处理 //-(void)addNoti; // //#pragma mark - 获取最后一条消息 //- (void)getLastDisplayStringWith:(dispatch_group_t)imListGroup finish:(ImTransformArrayBlock)finish; // //#pragma mark - 更新腾讯云用户资料 //-(void)updateUserInfoToTxWithParam:(NSDictionary *)param; // //#pragma mark - 获取加入的群组 //-(void)getJoinGroupList:(ImGroupListBlock)imGroupList; // //#pragma mark - 群消息转换 //-(void)transformInfoWithList:(NSArray *)list finish:(ImTransformBlock)finish; // // //#pragma mark - 清除未读 //-(void)clearUnreadConvId:(NSString *)convid sendNot:(BOOL)send; //-(void)sendClearNot; #pragma mark - V2TIM 发送消息 -(void)sendV2ImMsg:(TMessageCellData *)msg andReceiver:(NSString *)receiverID complete:(ImSendV2MsgBlock)sendFinish; #pragma mark - V2TIM 发送自定义消息 -(void)sendV2CustomMsg:(V2TIMCustomElem *)customMsg andReceiver:(NSString *)receiverID complete:(ImSendV2MsgBlock)sendFinish; #pragma mark - 消息转换 - (V2TIMMessage *)transIMMsgFromUIMsg:(TMessageCellData *)data; #pragma mark - V2TIM 收到新消息 -(void)onRecvNewMessage:(V2TIMMessage *)msg complete:(ImRecevNewMsgBlock)newMsg; #pragma mark - 获取未读消息数 -(void)getAllUnredNumExceptUser:(NSArray *)userList complete:(ImGetUnreadBlock)finish; #pragma mark - 获取会话列表 -(void)getConversationList:(ImGetConversationListBlock)covBlock; #pragma mark - 获取所有用户会话列表 -(void)getAllConversationList:(ImGetConversationListBlock)covBlock; #pragma mark - 清空所有会话的未读消息数。 -(void)clearAllUnreadConv; #pragma mark - 清除某一个用户未读 -(void)clearUnreadConvId:(NSString *)convid sendNot:(BOOL)send; #pragma mark - 创建一个占位CellData -(TConversationCellData *)createEmptyCellDataWithId:(NSString *)convid; @end