// // TIMMessage+MsgExt.h // IMMessageExt // // Created by tomzhu on 2016/12/27. // // #ifndef TIMMessage_h #define TIMMessage_h #import #import "TIMComm+MsgExt.h" #pragma mark - Elem类型 /** * 关系链变更消息 */ @interface TIMSNSSystemElem : TIMElem /** * 操作类型 */ @property(nonatomic,assign) TIM_SNS_SYSTEM_TYPE type; /** * 被操作用户列表:TIMSNSChangeInfo 列表 */ @property(nonatomic,strong) NSArray * users; /** * 未决已读上报时间戳 type=TIM_SNS_SYSTEM_PENDENCY_REPORT 有效 */ @property(nonatomic,assign) uint64_t pendencyReportTimestamp; /** * 推荐已读上报时间戳 type=TIM_SNS_SYSTEM_RECOMMEND_REPORT 有效 */ @property(nonatomic,assign) uint64_t recommendReportTimestamp; /** * 已决已读上报时间戳 type=TIM_SNS_SYSTEM_DECIDE_REPORT 有效 */ @property(nonatomic,assign) uint64_t decideReportTimestamp; @end /** * 资料变更系统消息 */ @interface TIMProfileSystemElem : TIMElem /** * 变更类型 */ @property(nonatomic,assign) TIM_PROFILE_SYSTEM_TYPE type; /** * 资料变更的用户 */ @property(nonatomic,strong) NSString * fromUser; /** * 资料变更的昵称(如果昵称没有变更,该值为nil) */ @property(nonatomic,strong) NSString * nickName; @end #pragma mark - 消息扩展 @interface TIMMessage (MsgExt) /** * 是否已读 * * @return TRUE 已读 FALSE 未读 */ - (BOOL)isReaded; /** * 对方是否已读(仅C2C消息有效) * * @return TRUE 已读 FALSE 未读 */ - (BOOL)isPeerReaded; /** * 删除消息 * * @return TRUE 成功 */ - (BOOL)remove; /** * 消息有断层,OnNewMessage回调收到消息,如果有断层,需要重新GetMessage补全(有C2C漫游的情况下使用) * * @return TRUE 有断层 * FALSE 无断层 */ - (BOOL)hasGap; /** * 设置自定义整数,默认为0 * * @param param 设置参数 * * @return TRUE 设置成功 */ - (BOOL)setCustomInt:(int32_t)param; /** * 设置自定义数据,默认为"" * * @param data 设置参数 * * @return TRUE 设置成功 */ - (BOOL)setCustomData:(NSData*)data; /** * 获取CustomInt * * @return CustomInt */ - (int32_t)customInt; /** * 获取CustomData * * @return CustomData */ - (NSData*)customData; /** * 获取消息定位符 * * @return locator */ - (TIMMessageLocator*)locator; /** * 是否为locator对应的消息 * * @param locator 消息定位符 * * @return YES 是对应的消息 */ - (BOOL)respondsToLocator:(TIMMessageLocator*)locator; /** * 设置消息时间戳,导入到本地时有效 * * @param time 时间戳 * * @return 0 成功 */ - (int)setTime:(time_t)time; /** * 设置消息发送方 * * @param sender 发送方Id * * @return 0 成功 */ - (int)setSender:(NSString*)sender; /** * 将消息导入到本地 * * @return 0 成功 */ - (int)convertToImportedMsg; @end #pragma mark - 消息草稿 @interface TIMMessageDraft : NSObject /** * 设置自定义数据 * * @param userData 自定义数据 * * @return 0 成功 */ - (int)setUserData:(NSData*)userData; /** * 获取自定义数据 * * @return 自定义数据 */ - (NSData*)getUserData; /** * 增加Elem * * @param elem elem结构 * * @return 0 表示成功 * 1 禁止添加Elem(文件或语音多于两个Elem) * 2 未知Elem */ - (int)addElem:(TIMElem*)elem; /** * 获取对应索引的Elem * * @param index 对应索引 * * @return 返回对应Elem */ - (TIMElem*)getElem:(int)index; /** * 获取Elem数量 * * @return elem数量 */ - (int)elemCount; /** * 草稿生成对应的消息 * * @return 消息 */ - (TIMMessage*)transformToMessage; /** * 当前消息的时间戳 * * @return 时间戳 */ - (NSDate*)timestamp; @end #endif /* TIMMessage_h */