TIMMessage+MsgExt.h 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. //
  2. // TIMMessage+MsgExt.h
  3. // IMMessageExt
  4. //
  5. // Created by tomzhu on 2016/12/27.
  6. //
  7. //
  8. #ifndef TIMMessage_h
  9. #define TIMMessage_h
  10. #import <ImSDK/ImSDK.h>
  11. #import "TIMComm+MsgExt.h"
  12. #pragma mark - Elem类型
  13. /**
  14. * 关系链变更消息
  15. */
  16. @interface TIMSNSSystemElem : TIMElem
  17. /**
  18. * 操作类型
  19. */
  20. @property(nonatomic,assign) TIM_SNS_SYSTEM_TYPE type;
  21. /**
  22. * 被操作用户列表:TIMSNSChangeInfo 列表
  23. */
  24. @property(nonatomic,strong) NSArray * users;
  25. /**
  26. * 未决已读上报时间戳 type=TIM_SNS_SYSTEM_PENDENCY_REPORT 有效
  27. */
  28. @property(nonatomic,assign) uint64_t pendencyReportTimestamp;
  29. /**
  30. * 推荐已读上报时间戳 type=TIM_SNS_SYSTEM_RECOMMEND_REPORT 有效
  31. */
  32. @property(nonatomic,assign) uint64_t recommendReportTimestamp;
  33. /**
  34. * 已决已读上报时间戳 type=TIM_SNS_SYSTEM_DECIDE_REPORT 有效
  35. */
  36. @property(nonatomic,assign) uint64_t decideReportTimestamp;
  37. @end
  38. /**
  39. * 资料变更系统消息
  40. */
  41. @interface TIMProfileSystemElem : TIMElem
  42. /**
  43. * 变更类型
  44. */
  45. @property(nonatomic,assign) TIM_PROFILE_SYSTEM_TYPE type;
  46. /**
  47. * 资料变更的用户
  48. */
  49. @property(nonatomic,strong) NSString * fromUser;
  50. /**
  51. * 资料变更的昵称(如果昵称没有变更,该值为nil)
  52. */
  53. @property(nonatomic,strong) NSString * nickName;
  54. @end
  55. #pragma mark - 消息扩展
  56. @interface TIMMessage (MsgExt)
  57. /**
  58. * 是否已读
  59. *
  60. * @return TRUE 已读 FALSE 未读
  61. */
  62. - (BOOL)isReaded;
  63. /**
  64. * 对方是否已读(仅C2C消息有效)
  65. *
  66. * @return TRUE 已读 FALSE 未读
  67. */
  68. - (BOOL)isPeerReaded;
  69. /**
  70. * 删除消息
  71. *
  72. * @return TRUE 成功
  73. */
  74. - (BOOL)remove;
  75. /**
  76. * 消息有断层,OnNewMessage回调收到消息,如果有断层,需要重新GetMessage补全(有C2C漫游的情况下使用)
  77. *
  78. * @return TRUE 有断层
  79. * FALSE 无断层
  80. */
  81. - (BOOL)hasGap;
  82. /**
  83. * 设置自定义整数,默认为0
  84. *
  85. * @param param 设置参数
  86. *
  87. * @return TRUE 设置成功
  88. */
  89. - (BOOL)setCustomInt:(int32_t)param;
  90. /**
  91. * 设置自定义数据,默认为""
  92. *
  93. * @param data 设置参数
  94. *
  95. * @return TRUE 设置成功
  96. */
  97. - (BOOL)setCustomData:(NSData*)data;
  98. /**
  99. * 获取CustomInt
  100. *
  101. * @return CustomInt
  102. */
  103. - (int32_t)customInt;
  104. /**
  105. * 获取CustomData
  106. *
  107. * @return CustomData
  108. */
  109. - (NSData*)customData;
  110. /**
  111. * 获取消息定位符
  112. *
  113. * @return locator
  114. */
  115. - (TIMMessageLocator*)locator;
  116. /**
  117. * 是否为locator对应的消息
  118. *
  119. * @param locator 消息定位符
  120. *
  121. * @return YES 是对应的消息
  122. */
  123. - (BOOL)respondsToLocator:(TIMMessageLocator*)locator;
  124. /**
  125. * 设置消息时间戳,导入到本地时有效
  126. *
  127. * @param time 时间戳
  128. *
  129. * @return 0 成功
  130. */
  131. - (int)setTime:(time_t)time;
  132. /**
  133. * 设置消息发送方
  134. *
  135. * @param sender 发送方Id
  136. *
  137. * @return 0 成功
  138. */
  139. - (int)setSender:(NSString*)sender;
  140. /**
  141. * 将消息导入到本地
  142. *
  143. * @return 0 成功
  144. */
  145. - (int)convertToImportedMsg;
  146. @end
  147. #pragma mark - 消息草稿
  148. @interface TIMMessageDraft : NSObject
  149. /**
  150. * 设置自定义数据
  151. *
  152. * @param userData 自定义数据
  153. *
  154. * @return 0 成功
  155. */
  156. - (int)setUserData:(NSData*)userData;
  157. /**
  158. * 获取自定义数据
  159. *
  160. * @return 自定义数据
  161. */
  162. - (NSData*)getUserData;
  163. /**
  164. * 增加Elem
  165. *
  166. * @param elem elem结构
  167. *
  168. * @return 0 表示成功
  169. * 1 禁止添加Elem(文件或语音多于两个Elem)
  170. * 2 未知Elem
  171. */
  172. - (int)addElem:(TIMElem*)elem;
  173. /**
  174. * 获取对应索引的Elem
  175. *
  176. * @param index 对应索引
  177. *
  178. * @return 返回对应Elem
  179. */
  180. - (TIMElem*)getElem:(int)index;
  181. /**
  182. * 获取Elem数量
  183. *
  184. * @return elem数量
  185. */
  186. - (int)elemCount;
  187. /**
  188. * 草稿生成对应的消息
  189. *
  190. * @return 消息
  191. */
  192. - (TIMMessage*)transformToMessage;
  193. /**
  194. * 当前消息的时间戳
  195. *
  196. * @return 时间戳
  197. */
  198. - (NSDate*)timestamp;
  199. @end
  200. #endif /* TIMMessage_h */