JMSGGroup.h 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557
  1. /*
  2. * | | | | \ \ / / | | | | / _______|
  3. * | |____| | \ \/ / | |____| | / /
  4. * | |____| | \ / | |____| | | | _____
  5. * | | | | / \ | | | | | | |____ |
  6. * | | | | / /\ \ | | | | \ \______| |
  7. * | | | | /_/ \_\ | | | | \_________|
  8. *
  9. * Copyright (c) 2011 ~ 2015 Shenzhen HXHG. All rights reserved.
  10. */
  11. #import <Foundation/Foundation.h>
  12. #import <JMessage/JMSGConstants.h>
  13. @class JMSGUser,JMSGApplyJoinGroupEvent;
  14. /*!
  15. * 群信息类(此类仅用于修改群信息、创建群、群信息展示)
  16. *
  17. * #### 注意:
  18. *
  19. * 如果想要获取群的相关属性值、调用相关接口,需要通过 gid 获取到 JMSGGroup 对象再使用;
  20. *
  21. * 本类中可读可写属性表示可以用于群信息修改、创建群传值,只读属性说明是不允许客户端修改的,只做展示;
  22. */
  23. @interface JMSGGroupInfo : NSObject
  24. /** 群 id */
  25. @property(nonatomic, strong, readonly) NSString *JMSG_NONNULL gid;
  26. /** 群名称 */
  27. @property(nonatomic, strong, readwrite) NSString *JMSG_NONNULL name;
  28. /** 群描述 */
  29. @property(nonatomic, strong, readwrite) NSString *JMSG_NONNULL desc;
  30. /** 群头像数据,此属性只用户修改群信息,切勿从此类拿来此属性来展示 */
  31. @property(nonatomic, strong, readwrite) NSData *JMSG_NONNULL avatarData;
  32. /** 群头像的媒体文件ID */
  33. @property(nonatomic, strong, readonly) NSString *JMSG_NONNULL avatar;
  34. /** 群组类型,私有、公开,注意:仅限于创建群组时设置,创建成功之后不允许修改群类型*/
  35. @property(nonatomic, assign, readwrite) JMSGGroupType groupType;
  36. /** 群组人数上限*/
  37. @property(nonatomic, strong, readonly) NSString *JMSG_NONNULL maxMemberCount;
  38. @end
  39. /*!
  40. * 群组
  41. *
  42. * 群组表示一组用户, 是群组聊天的聊天对象.
  43. *
  44. * 主要包含两类 API: 群组信息维护, 群组成员变更.
  45. */
  46. @interface JMSGGroup : NSObject
  47. JMSG_ASSUME_NONNULL_BEGIN
  48. ///----------------------------------------------------
  49. /// @name Group Info Maintenance 群组信息维护
  50. ///----------------------------------------------------
  51. /*!
  52. * @abstract 创建群组(只能创建私有群)
  53. *
  54. * @param groupName 群组名称
  55. * @param groupDesc 群组描述信息
  56. * @param usernameArray 初始成员列表。NSArray 里的类型是 NSString
  57. * @param handler 结果回调。正常返回 resultObject 的类型是 JMSGGroup。
  58. *
  59. * @discussion 向服务器端提交创建群组请求,返回生成后的群组对象.
  60. * 返回群组对象, 群组ID是App 需要关注的, 是后续各种群组维护的基础.
  61. */
  62. + (void)createGroupWithName:(NSString * JMSG_NULLABLE )groupName
  63. desc:(NSString *JMSG_NULLABLE)groupDesc
  64. memberArray:(NSArray JMSG_GENERIC(__kindof NSString *) *JMSG_NULLABLE)usernameArray
  65. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  66. /*!
  67. * @abstract 创建群组(可创建私有群、公开群)
  68. *
  69. * @param groupInfo 群信息类,如:群名、群类型等,详细请查看 JMSGGroupInfo 类
  70. * @param usernameArray 初始成员列表。NSArray 里的类型是 NSString
  71. * @param handler 结果回调。正常返回 resultObject 的类型是 JMSGGroup。
  72. *
  73. * @discussion 向服务器端提交创建群组请求,返回生成后的群组对象.
  74. * 返回群组对象, 群组ID是App 需要关注的, 是后续各种群组维护的基础.
  75. */
  76. + (void)createGroupWithGroupInfo:(JMSGGroupInfo *)groupInfo
  77. memberArray:(NSArray JMSG_GENERIC(__kindof NSString *) *JMSG_NULLABLE)usernameArray
  78. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  79. /*!
  80. * @abstract 更新群组信息
  81. *
  82. * @param groupId 待更新的群组ID
  83. * @param groupName 新名称
  84. * @param groupDesc 新描述
  85. * @param handler 结果回调. 正常返回时, resultObject 为 nil.
  86. *
  87. * @discussion 注意:name 和 desc 不允许传空字符串
  88. */
  89. + (void)updateGroupInfoWithGroupId:(NSString *)groupId
  90. name:(NSString *JMSG_NULLABLE)groupName
  91. desc:(NSString *JMSG_NULLABLE)groupDesc
  92. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  93. /*!
  94. * @abstract 更新群信息(统一字段上传)
  95. *
  96. * @param gid 群组 id
  97. * @param groupInfo 群信息类,详细请查看 JMSGGroupInfo 类
  98. * @param handler 结果回调. 正常返回时, resultObject 为 nil.
  99. *
  100. * @discussion 注意:修改群名称和群描述时参数不允许传空字符串,群类型不允许修改
  101. */
  102. + (void)updateGroupInfoWithGid:(NSString *)gid
  103. groupInfo:(JMSGGroupInfo *)groupInfo
  104. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  105. /*!
  106. * @abstract 更新群头像(支持传图片格式)
  107. *
  108. * @param groupId 待更新的群组ID
  109. * @param avatarData 头像数据
  110. * @param avatarFormat 头像格式,可以为空,不包括"."
  111. * @param handler 回调
  112. *
  113. * @discussion 头像格式参数直接填格式名称,不要带点。正确:@"png",错误:@".png"
  114. */
  115. + (void)updateGroupAvatarWithGroupId:(NSString *JMSG_NONNULL)groupId
  116. avatarData:(NSData *JMSG_NONNULL)avatarData
  117. avatarFormat:(NSString *JMSG_NULLABLE)avatarFormat
  118. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  119. /*!
  120. * @abstract 获取群组信息
  121. *
  122. * @param groupId 待获取详情的群组ID
  123. * @param handler 结果回调. 正常返回时 resultObject 类型是 JMSGGroup.
  124. *
  125. * @discussion 该接口总是向服务器端发起请求, 即使本地已经存在.
  126. * 如果考虑性能损耗, 在群聊时获取群组信息, 可以获取 JMSGConversation -> target 属性.
  127. */
  128. + (void)groupInfoWithGroupId:(NSString *)groupId
  129. completionHandler:(JMSGCompletionHandler)handler;
  130. /*!
  131. * @abstract 获取我的群组列表
  132. *
  133. * @param handler 结果回调。正常返回时 resultObject 的类型是 NSArray,数组里的成员类型是JMSGGroup的gid
  134. *
  135. * @discussion 该接口总是向服务器端发起请求。
  136. */
  137. + (void)myGroupArray:(JMSGCompletionHandler)handler;
  138. /*!
  139. * @abstract 获取所有设置群消息屏蔽的群组
  140. *
  141. * @param handler 结果回调。回调参数:
  142. *
  143. * - resultObject 类型为 NSArray,数组里成员的类型为 JMSGGroup
  144. * - error 错误信息
  145. *
  146. * 如果 error 为 nil, 表示设置成功
  147. * 如果 error 不为 nil,表示设置失败
  148. *
  149. * @discussion 从服务器获取,返回所有设置群消息屏蔽的群组。
  150. */
  151. + (void)shieldList:(JMSGCompletionHandler)handler;
  152. /*!
  153. * @abstract 分页获取 appkey 下所有公开群信息
  154. *
  155. * @param appkey 群组所在的 AppKey,不填则默认为当前应用 AppKey
  156. * @param start 分页获取的下标,第一页从 index = 0 开始
  157. * @param count 每一页的数量,最大值为500
  158. * @param handler 结果回调,NSArray<JMSGGroupInfo>
  159. *
  160. * #### 注意:
  161. *
  162. * 返回数据中不是 JMSGGroup 类型,而是 JMSGGroupInfo 类型,只能用于展示信息,如果想要调用相关群组 API 接口则需要通过 gid 获取到 JMSGGroup 对象才可以调用
  163. */
  164. + (void)getPublicGroupInfoWithAppKey:(NSString *JMSG_NULLABLE)appkey
  165. start:(NSInteger)start
  166. count:(NSInteger)count
  167. completionHandler:(JMSGCompletionHandler)handler;
  168. /*!
  169. * @abstract 申请加入群组
  170. *
  171. * @param gid 群组 gid
  172. * @param reason 申请原因
  173. * @param handler 结果回调
  174. *
  175. * @discussion 只有公开群需要申请才能加入,私有群不需要申请。
  176. */
  177. + (void)applyJoinGroupWithGid:(NSString *JMSG_NONNULL)gid
  178. reason:(NSString *JMSG_NULLABLE)reason
  179. completionHandler:(JMSGCompletionHandler)handler;
  180. /*!
  181. * @abstract 管理员审批入群申请
  182. *
  183. * @patam eventId 入取申请事件的 id,详情请查看 JMSGApplyJoinGroupEvent 类
  184. * @param gid 群组 gid
  185. * @param joinUser 入群的用户
  186. * @param applyUser 发起申请的的用户,如果是主动申请入群则和 member 是相同的
  187. * @param isAgree 是否同意申请,YES : 同意, NO: 不同意
  188. * @param reason 拒绝申请的理由,选填
  189. * @param handler 结果回调
  190. *
  191. * @discussion 只有管理员才有权限审批入群申请,SDK 不会保存申请入群事件(JMSGApplyJoinGroupEvent),上层可以自己封装再保存,或则归档直接保存,以便此接口取值调用。
  192. */
  193. + (void)processApplyJoinGroupEventID:(NSString *JMSG_NONNULL)eventId
  194. gid:(NSString *JMSG_NONNULL)gid
  195. joinUser:(JMSGUser *JMSG_NONNULL)joinUser
  196. applyUser:(JMSGUser *JMSG_NONNULL)applyUser
  197. isAgree:(BOOL)isAgree
  198. reason:(NSString *JMSG_NULLABLE)reason
  199. handler:(JMSGCompletionHandler)handler;
  200. /*!
  201. * @abstract 解散群组
  202. *
  203. * @patam gid 需要解散的群组 id
  204. * @param handler 结果回调,error = nil 表示操作成功
  205. *
  206. * @discussion 只有群主才有权限解散群。
  207. */
  208. + (void)dissolveGroupWithGid:(NSString *)gid handler:(JMSGCompletionHandler)handler;
  209. ///----------------------------------------------------
  210. /// @name Group basic fields 群组基本属性
  211. ///----------------------------------------------------
  212. /*!
  213. * @abstract 群组ID
  214. *
  215. * @discussion 该ID由服务器端生成,全局唯一。可以用于服务器端 API。
  216. */
  217. @property(nonatomic, strong, readonly) NSString *gid;
  218. /*!
  219. * @abstract 群组名称
  220. *
  221. * @discussion 可用于群组聊天的展示名称
  222. */
  223. @property(nonatomic, copy, readonly) NSString * JMSG_NULLABLE name;
  224. /*!
  225. * @abstract 群组描述信息
  226. */
  227. @property(nonatomic, copy, readonly) NSString * JMSG_NULLABLE desc;
  228. /*!
  229. * @abstract 群组等级
  230. *
  231. * @discussion 不同等级的群组,人数上限不同。当前默认等级 4,人数上限 200。客户端不可更改。
  232. */
  233. @property(nonatomic, strong, readonly) NSNumber *level;
  234. /*!
  235. * @abstract 群组头像(媒体文件ID)
  236. *
  237. * @discussion 此文件ID仅用于内部更新,不支持外部URL。
  238. */
  239. @property(nonatomic, strong, readonly) NSString * JMSG_NULLABLE avatar;
  240. /*!
  241. * @abstract 群组设置标志位
  242. *
  243. * @discussion 这是一个内部状态标志,对外展示仅用于调试目的。客户端不可更改。
  244. */
  245. @property(nonatomic, strong, readonly) NSNumber *flag;
  246. /*!
  247. * @abstract 群组类型
  248. *
  249. * @discussion 目前群组类型有:公开群、私有群。公开群是有权限设置,入群需要群主审核同意方可入群。
  250. */
  251. @property(nonatomic, assign, readonly) JMSGGroupType groupType;
  252. /*!
  253. * @abstract 群主(用户的 username)
  254. *
  255. * @discussion 有一套确认群主的策略。简单地说,群创建人是群主;如果群主退出,则是第二个加入的人,以此类似。客户端不可更改。
  256. */
  257. @property(nonatomic, copy, readonly) NSString *owner;
  258. /*!
  259. * @abstract 群主的appKey
  260. *
  261. * @discussion 当有跨应用群成员与群主同名(username相同)时,可结合用这个ownerAppKey来判断群主。
  262. */
  263. @property(nonatomic, copy, readonly) NSString *ownerAppKey;
  264. /*!
  265. * @abstract 群组人数上限,
  266. *
  267. * @discussion 表示当前群组人数上限,客户端不可更改。。
  268. */
  269. @property(nonatomic, strong, readonly) NSString *maxMemberCount;
  270. /*!
  271. * @abstract 该群是否已被设置为免打扰
  272. *
  273. * @discussion YES:是 , NO: 否
  274. */
  275. @property(nonatomic, assign, readonly) BOOL isNoDisturb;
  276. /*!
  277. * @abstract 该群是否已被设置为消息屏蔽
  278. *
  279. * @discussion YES:是 , NO: 否
  280. */
  281. @property(nonatomic, assign, readonly) BOOL isShieldMessage;
  282. ///----------------------------------------------------
  283. /// @name Group members maintenance 群组成员维护
  284. ///----------------------------------------------------
  285. /*!
  286. * @abstract 获取群组成员列表(同步接口,建议使用异步接口)
  287. *
  288. * @return 成员列表. NSArray 里成员类型是 JMSGUser.
  289. *
  290. * @discussion 一般在群组详情界面调用此接口,展示群组的所有成员列表。
  291. * 本接口只是在本地请求成员列表,不会发起服务器端请求。
  292. */
  293. - (NSArray JMSG_GENERIC(__kindof JMSGUser *)*)memberArray;
  294. /*!
  295. * @abstract 获取群组成员列表(异步接口)
  296. *
  297. * @handler 成员列表. NSArray 里成员类型是 JMSGUser.
  298. *
  299. * @discussion 一般在群组详情界面调用此接口,展示群组的所有成员列表。
  300. * 本接口只是在本地请求成员列表,不会发起服务器端请求。
  301. */
  302. - (void)memberArrayWithCompletionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  303. /*!
  304. * @abstract 设置群组消息免打扰(支持跨应用设置)
  305. *
  306. * @param isNoDisturb 是否免打扰 YES:是 NO: 否
  307. * @param handler 结果回调。回调参数:
  308. *
  309. * - resultObject 相应对象
  310. * - error 错误信息
  311. *
  312. * 如果 error 为 nil, 表示设置成功
  313. * 如果 error 不为 nil,表示设置失败
  314. *
  315. * @discussion 针对单个群组设置免打扰
  316. * 这个接口支持跨应用设置免打扰
  317. */
  318. - (void)setIsNoDisturb:(BOOL)isNoDisturb handler:(JMSGCompletionHandler)handler;
  319. /*!
  320. * @abstract 设置群组消息屏蔽
  321. *
  322. * @param isShield 是否群消息屏蔽 YES:是 NO: 否
  323. * @param handler 结果回调。回调参数: error 为 nil, 表示设置成功
  324. *
  325. * @discussion 针对单个群组设置群消息屏蔽
  326. */
  327. - (void)setIsShield:(BOOL)isShield handler:(JMSGCompletionHandler)handler;
  328. /*!
  329. * @abstract 群成员禁言设置
  330. *
  331. * @param isSilence 是否禁言, YES:是 NO: 否
  332. * @param username 带设置的用户的 username
  333. * @param username 带设置的用户的 appKey,若传入空则默认使用本应用appKey
  334. * @param handler 结果回调
  335. *
  336. * @discussion 注意: 目前 SDK 只支持群主设置群里某个用户禁言
  337. */
  338. - (void)setGroupMemberSilence:(BOOL)isSilence
  339. username:(NSString *JMSG_NONNULL)username
  340. appKey:(NSString *JMSG_NULLABLE)appKey
  341. handler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  342. /*!
  343. * @abstract 判断用户在该群内是否被禁言
  344. *
  345. * @param username 待判断用户的用户名
  346. * @param appKey 待判断用户的appKey,若传入空则默认使用本应用appKey
  347. */
  348. - (BOOL)isSilenceMemberWithUsername:(NSString *JMSG_NONNULL)username
  349. appKey:(NSString *JMSG_NULLABLE)appKey;
  350. /*!
  351. * @abstract 禁言列表
  352. *
  353. * @return 禁言的成员列表. NSArray 里成员类型是 JMSGUser
  354. *
  355. * @discussion 仅在获取群成员成功后此接口才有效
  356. */
  357. - (NSArray JMSG_GENERIC(__kindof JMSGUser *)*)groupSilenceMembers;
  358. /*!
  359. * @abstract 判断用户是否是管理员
  360. *
  361. * @param username 待判断用户的用户名
  362. * @param appKey 待判断用户的appKey,若传入空则默认使用本应用appKey
  363. */
  364. - (BOOL)isAdminMemberWithUsername:(NSString *JMSG_NONNULL)username
  365. appKey:(NSString *JMSG_NULLABLE)appKey;
  366. /*!
  367. * @abstract 管理员列表
  368. *
  369. * @return 管理员列表. NSArray 里成员类型是 JMSGUser
  370. *
  371. * @discussion 注意:返回列表中包含群主;仅在获取群成员成功后此接口才有效
  372. */
  373. - (NSArray JMSG_GENERIC(__kindof JMSGUser *)*)groupAdminMembers;
  374. /*!
  375. * @abstract 移交群主
  376. *
  377. * @param username 新群主用户名
  378. * @param appkey 新群主用户 AppKey,不填则默认为本应用 AppKey
  379. * @param handler 结果回调。error 为 nil 表示成功.
  380. */
  381. - (void)transferGroupOwnerWithUsername:(NSString *JMSG_NONNULL)username
  382. appKey:(NSString *JMSG_NULLABLE)appkey
  383. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  384. /*!
  385. * @abstract 添加管理员
  386. *
  387. * @param username 用户名
  388. * @param appkey 用户 AppKey,不填则默认为本应用 AppKey
  389. * @param handler 结果回调。error 为 nil 表示成功.
  390. *
  391. * @discussion 注意:非 VIP 应用最多设置 15 个管理员,不包括群主本身
  392. */
  393. - (void)addGroupAdminWithUsername:(NSString *JMSG_NONNULL)username
  394. appKey:(NSString *JMSG_NULLABLE)appkey
  395. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  396. /*!
  397. * @abstract 删除管理员
  398. *
  399. * @param username 用户名
  400. * @param appkey 用户 AppKey,不填则默认为本应用 AppKey
  401. * @param handler 结果回调。error 为 nil 表示成功.
  402. */
  403. - (void)deleteGroupAdminWithUsername:(NSString *)username
  404. appKey:(NSString *JMSG_NULLABLE)appkey
  405. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  406. /*!
  407. * @abstract 添加群组成员
  408. *
  409. * @param usernameArray 用户名数组。数组里的成员类型是 NSString
  410. * @param handler 结果回调。正常返回时 resultObject 为 nil.
  411. */
  412. - (void)addMembersWithUsernameArray:(NSArray JMSG_GENERIC(__kindof NSString *) *)usernameArray
  413. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  414. /*!
  415. * @abstract 添加群组跨应用成员
  416. *
  417. * @param usernameArray 用户名数组。数组里的成员类型是 NSString
  418. * @param handler 结果回调。正常返回时 resultObject 为 nil.
  419. */
  420. - (void)addMembersWithUsernameArray:(NSArray JMSG_GENERIC(__kindof NSString *) *)usernameArray
  421. appKey:(NSString *)userAppKey
  422. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  423. /*!
  424. * @abstract 删除群组成员
  425. *
  426. * @param usernameArray 用户名数据. 数组里的成员类型是 NSString
  427. * @param handler 结果回调。正常返回时 resultObject 为 nil.
  428. */
  429. - (void)removeMembersWithUsernameArray:(NSArray JMSG_GENERIC(__kindof NSString *) *)usernameArray
  430. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  431. /*!
  432. * @abstract 删除群组跨应用成员
  433. *
  434. * @param usernameArray 用户名数据. 数组里的成员类型是 NSString
  435. * @param handler 结果回调。正常返回时 resultObject 为 nil.
  436. */
  437. - (void)removeMembersWithUsernameArray:(NSArray JMSG_GENERIC(__kindof NSString *) *)usernameArray
  438. appKey:(NSString *)userAppKey
  439. completionHandler:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  440. /*!
  441. * @abstract 退出当前群组(当前用户)
  442. *
  443. * @param handler 结果回调。正常返回时 resultObject 为 nil。
  444. */
  445. - (void)exit:(JMSGCompletionHandler JMSG_NULLABLE)handler;
  446. /*!
  447. * @abstract 获取头像缩略图文件数据
  448. *
  449. * @param handler 结果回调。回调参数:
  450. *
  451. * - data 头像数据;
  452. * - objectId 群组 gid;
  453. * - error 不为nil表示出错;
  454. *
  455. * 如果 error 为 nil, data 也为 nil, 表示没有头像数据.
  456. *
  457. * @discussion 需要展示缩略图时使用。
  458. * 如果本地已经有文件,则会返回本地,否则会从服务器上下载。
  459. */
  460. - (void)thumbAvatarData:(JMSGAsyncDataHandler)handler;
  461. /*!
  462. * @abstract 获取头像缩略文件的本地路径
  463. *
  464. * @return 返回本地路,返回值只有在下载完成之后才有意义
  465. */
  466. - (NSString *JMSG_NULLABLE)thumbAvatarLocalPath;
  467. /*!
  468. * @abstract 获取头像大图文件数据
  469. *
  470. * @param handler 结果回调。回调参数:
  471. *
  472. * - data 头像数据;
  473. * - objectId 群组 gid;
  474. * - error 不为nil表示出错;
  475. *
  476. * 如果 error 为 nil, data 也为 nil, 表示没有头像数据.
  477. *
  478. * @discussion 需要展示大图图时使用
  479. * 如果本地已经有文件,则会返回本地,否则会从服务器上下载。
  480. */
  481. - (void)largeAvatarData:(JMSGAsyncDataHandler)handler;
  482. /*!
  483. * @abstract 获取头像大图文件的本地路径
  484. *
  485. * @return 返回本地路,返回值只有在下载完成之后才有意义
  486. */
  487. - (NSString *JMSG_NULLABLE)largeAvatarLocalPath;
  488. /*!
  489. * @abstract 获取群组的展示名
  490. *
  491. * @discussion 如果 group.name 为空, 则此接口会拼接群组前 5 个成员的展示名返回.
  492. */
  493. - (NSString *)displayName;
  494. - (BOOL)isMyselfGroupMember;
  495. - (BOOL)isEqualToGroup:(JMSGGroup * JMSG_NULLABLE)group;
  496. JMSG_ASSUME_NONNULL_END
  497. @end