EMGroupManagerDelegate.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. /*!
  2. * \~chinese
  3. * @header EMGroupManagerDelegate.h
  4. * @abstract 此协议定义了群组相关的回调
  5. * @author Hyphenate
  6. * @version 3.00
  7. *
  8. * \~english
  9. * @header EMGroupManagerDelegate.h
  10. * @abstract This protocol defined the callbacks of group
  11. * @author Hyphenate
  12. * @version 3.00
  13. */
  14. #import <Foundation/Foundation.h>
  15. /*!
  16. * \~chinese
  17. * 离开群组的原因
  18. *
  19. * \~english
  20. * The reason of user leaving the group
  21. */
  22. typedef enum{
  23. EMGroupLeaveReasonBeRemoved = 0, /*! \~chinese 被移除 \~english Removed by owner */
  24. EMGroupLeaveReasonUserLeave, /*! \~chinese 自己主动离开 \~english User leave the group */
  25. EMGroupLeaveReasonDestroyed, /*! \~chinese 群组销毁 \~english Group has been destroyed */
  26. }EMGroupLeaveReason;
  27. @class EMGroup;
  28. @class EMGroupSharedFile;
  29. /*!
  30. * \~chinese
  31. * 群组相关的回调
  32. *
  33. * \~english
  34. * Delegate
  35. */
  36. @protocol EMGroupManagerDelegate <NSObject>
  37. @optional
  38. /*!
  39. * \~chinese
  40. * 用户A邀请用户B入群,用户B接收到该回调
  41. *
  42. * @param aGroupId 群组ID
  43. * @param aInviter 邀请者
  44. * @param aMessage 邀请信息
  45. *
  46. * \~english
  47. * Delegate method will be invoked when receiving a group invitation
  48. *
  49. * After user A invites user B into the group, user B will receive this callback
  50. *
  51. * @param aGroupId The group ID
  52. * @param aInviter Inviter
  53. * @param aMessage Invitation message
  54. */
  55. - (void)groupInvitationDidReceive:(NSString *)aGroupId
  56. inviter:(NSString *)aInviter
  57. message:(NSString *)aMessage;
  58. /*!
  59. * \~chinese
  60. * 用户B同意用户A的入群邀请后,用户A接收到该回调
  61. *
  62. * @param aGroup 群组实例
  63. * @param aInvitee 被邀请者
  64. *
  65. * \~english
  66. * Delegate method will be invoked when the group invitation is accepted
  67. *
  68. * After user B accepted user A‘s group invitation, user A will receive this callback
  69. *
  70. * @param aGroup User joined group
  71. * @param aInvitee Invitee
  72. */
  73. - (void)groupInvitationDidAccept:(EMGroup *)aGroup
  74. invitee:(NSString *)aInvitee;
  75. /*!
  76. * \~chinese
  77. * 用户B拒绝用户A的入群邀请后,用户A接收到该回调
  78. *
  79. * @param aGroup 群组
  80. * @param aInvitee 被邀请者
  81. * @param aReason 拒绝理由
  82. *
  83. * \~english
  84. * Delegate method will be invoked when the group invitation is declined.
  85. *
  86. * After user B declined user A's group invitation, user A will receive the callback
  87. *
  88. * @param aGroup Group instance
  89. * @param aInvitee Invitee
  90. * @param aReason Decline reason
  91. */
  92. - (void)groupInvitationDidDecline:(EMGroup *)aGroup
  93. invitee:(NSString *)aInvitee
  94. reason:(NSString *)aReason;
  95. /*!
  96. * \~chinese
  97. * SDK自动同意了用户A的加B入群邀请后,用户B接收到该回调,需要设置EMOptions的isAutoAcceptGroupInvitation为YES
  98. *
  99. * @param aGroup 群组实例
  100. * @param aInviter 邀请者
  101. * @param aMessage 邀请消息
  102. *
  103. * \~english
  104. * Delegate method will be invoked after SDK automatically accepted the group invitation
  105. *
  106. * User B will receive this callback after SDK automatically accept user A's group invitation, need set EMOptions's isAutoAcceptGroupInvitation property to YES
  107. *
  108. * @param aGroup Group instance
  109. * @param aInviter Inviter
  110. * @param aMessage Invite message
  111. */
  112. - (void)didJoinGroup:(EMGroup *)aGroup
  113. inviter:(NSString *)aInviter
  114. message:(NSString *)aMessage;
  115. /*!
  116. * \~chinese
  117. * 离开群组回调
  118. *
  119. * @param aGroup 群组实例
  120. * @param aReason 离开原因
  121. *
  122. * \~english
  123. * Delegate method will be invoked when user leaves a group
  124. *
  125. * @param aGroup Group instance
  126. * @param aReason Leave reason
  127. */
  128. - (void)didLeaveGroup:(EMGroup *)aGroup
  129. reason:(EMGroupLeaveReason)aReason;
  130. /*!
  131. * \~chinese
  132. * 群组的群主收到用户的入群申请,群的类型是EMGroupStylePublicJoinNeedApproval
  133. *
  134. * @param aGroup 群组实例
  135. * @param aApplicant 申请者
  136. * @param aReason 申请者的附属信息
  137. *
  138. * \~english
  139. * Delegate method will be invoked when the group owner receives a group request and group's style is EMGroupStylePublicJoinNeedApproval
  140. *
  141. * @param aGroup Group instance
  142. * @param aUsername The user initialized the group join request
  143. * @param aReason The user's message
  144. */
  145. - (void)joinGroupRequestDidReceive:(EMGroup *)aGroup
  146. user:(NSString *)aUsername
  147. reason:(NSString *)aReason;
  148. /*!
  149. * \~chinese
  150. * 群主拒绝用户A的入群申请后,用户A会接收到该回调,群的类型是EMGroupStylePublicJoinNeedApproval
  151. *
  152. * @param aGroupId 群组ID
  153. * @param aReason 拒绝理由
  154. *
  155. * \~english
  156. * Delegate method will be invoked when the group owner declines a join group request
  157. *
  158. * User A will receive this callback after group's owner declined the group request, group's style is EMGroupStylePublicJoinNeedApproval
  159. *
  160. * @param aGroupId Group id
  161. * @param aReason Decline reason
  162. */
  163. - (void)joinGroupRequestDidDecline:(NSString *)aGroupId
  164. reason:(NSString *)aReason;
  165. /*!
  166. * \~chinese
  167. * 群主同意用户A的入群申请后,用户A会接收到该回调,群的类型是EMGroupStylePublicJoinNeedApproval
  168. *
  169. * @param aGroup 通过申请的群组
  170. *
  171. * \~english
  172. * Delegate method will be invoked when the group owner approves a join group request
  173. *
  174. * User A will receive this callback after group's owner approve the group request, group's style is EMGroupStylePublicJoinNeedApproval
  175. *
  176. * @param aGroup Group instance
  177. */
  178. - (void)joinGroupRequestDidApprove:(EMGroup *)aGroup;
  179. /*!
  180. * \~chinese
  181. * 群组列表发生变化
  182. *
  183. * @param aGroupList 群组列表<EMGroup>
  184. *
  185. * \~english
  186. * Group List updated
  187. *
  188. * @param aGroupList Group list<EMGroup>
  189. */
  190. - (void)groupListDidUpdate:(NSArray *)aGroupList;
  191. /*!
  192. * \~chinese
  193. * 有成员被加入禁言列表
  194. *
  195. * @param aGroup 群组
  196. * @param aMutedMembers 被禁言的成员
  197. * @param aMuteExpire 禁言失效时间,当前不可用
  198. *
  199. * \~english
  200. * Users are added to the mute list
  201. *
  202. * @param aGroup Group
  203. * @param aMutedMembers Users to be added
  204. * @param aMuteExpire Mute expire, not available at this time
  205. */
  206. - (void)groupMuteListDidUpdate:(EMGroup *)aGroup
  207. addedMutedMembers:(NSArray *)aMutedMembers
  208. muteExpire:(NSInteger)aMuteExpire;
  209. /*!
  210. * \~chinese
  211. * 有成员被移出禁言列表
  212. *
  213. * @param aGroup 群组
  214. * @param aMutedMembers 移出禁言列表的成员
  215. *
  216. * \~english
  217. * Users are removed from the mute list
  218. *
  219. * @param aGroup Group
  220. * @param aMutedMembers Users to be removed
  221. */
  222. - (void)groupMuteListDidUpdate:(EMGroup *)aGroup
  223. removedMutedMembers:(NSArray *)aMutedMembers;
  224. /*!
  225. * \~chinese
  226. * 有成员被加入白名单
  227. *
  228. * @param aGroup 群组
  229. * @param aMembers 被加入白名单的成员
  230. *
  231. * \~english
  232. * Users are added to the white list
  233. *
  234. * @param aGroup Group
  235. * @param aMutedMembers Users to be added
  236. */
  237. - (void)groupWhiteListDidUpdate:(EMGroup *)aGroup
  238. addedWhiteListMembers:(NSArray *)aMembers;
  239. /*!
  240. * \~chinese
  241. * 有成员被移出白名单
  242. *
  243. * @param aGroup 群组
  244. * @param aMembers 被移出白名单的成员
  245. *
  246. * \~english
  247. * Users are removed from the white list
  248. *
  249. * @param aGroup Group
  250. * @param aMutedMembers Users to be removed
  251. */
  252. - (void)groupWhiteListDidUpdate:(EMGroup *)aGroup
  253. removedWhiteListMembers:(NSArray *)aMembers;
  254. /*!
  255. * \~chinese
  256. * 群组全部禁言状态变化
  257. *
  258. * @param aGroup 群组
  259. * @param aMuted 是否被全部禁言
  260. *
  261. * \~english
  262. * Group members are all muted
  263. *
  264. * @param aGroup Group
  265. * @param aMuted All member muted
  266. */
  267. - (void)groupAllMemberMuteChanged:(EMGroup *)aGroup
  268. isAllMemberMuted:(BOOL)aMuted;
  269. /*!
  270. * \~chinese
  271. * 有成员被加入管理员列表
  272. *
  273. * @param aGroup 群组
  274. * @param aAdmin 加入管理员列表的成员
  275. *
  276. * \~english
  277. * User is added to the admin list
  278. *
  279. * @param aGroup Group
  280. * @param aAdmin User to be added
  281. */
  282. - (void)groupAdminListDidUpdate:(EMGroup *)aGroup
  283. addedAdmin:(NSString *)aAdmin;
  284. /*!
  285. * \~chinese
  286. * 有成员被移出管理员列表
  287. *
  288. * @param aGroup 群组
  289. * @param aAdmin 移出管理员列表的成员
  290. *
  291. * \~english
  292. * User is removed to the admin list
  293. *
  294. * @param aGroup Group
  295. * @param aAdmin User to be removed
  296. */
  297. - (void)groupAdminListDidUpdate:(EMGroup *)aGroup
  298. removedAdmin:(NSString *)aAdmin;
  299. /*!
  300. * \~chinese
  301. * 群组创建者有更新
  302. *
  303. * @param aGroup 群组
  304. * @param aNewOwner 新群主
  305. * @param aOldOwner 旧群主
  306. *
  307. * \~english
  308. * Owner is updated
  309. *
  310. * @param aGroup Group
  311. * @param aNewOwner New Owner
  312. * @param aOldOwner Old Owner
  313. */
  314. - (void)groupOwnerDidUpdate:(EMGroup *)aGroup
  315. newOwner:(NSString *)aNewOwner
  316. oldOwner:(NSString *)aOldOwner;
  317. /*!
  318. * \~chinese
  319. * 有用户加入群组
  320. *
  321. * @param aGroup 加入的群组
  322. * @param aUsername 加入者
  323. *
  324. * \~english
  325. * Delegate method will be invoked when a user joins a group.
  326. *
  327. * @param aGroup Joined group
  328. * @param aUsername The user who joined group
  329. */
  330. - (void)userDidJoinGroup:(EMGroup *)aGroup
  331. user:(NSString *)aUsername;
  332. /*!
  333. * \~chinese
  334. * 有用户离开群组
  335. *
  336. * @param aGroup 离开的群组
  337. * @param aUsername 离开者
  338. *
  339. * \~english
  340. * Delegate method will be invoked when a user leaves a group.
  341. *
  342. * @param aGroup Left group
  343. * @param aUsername The user who leaved group
  344. */
  345. - (void)userDidLeaveGroup:(EMGroup *)aGroup
  346. user:(NSString *)aUsername;
  347. /*!
  348. * \~chinese
  349. * 群公告有更新
  350. *
  351. * @param aGroup 群组
  352. * @param aAnnouncement 群公告
  353. *
  354. * \~english
  355. * Delegate method will be invoked when a user update the announcement from a group.
  356. *
  357. * @param aGroup Group
  358. * @param aAnnouncement Announcement
  359. */
  360. - (void)groupAnnouncementDidUpdate:(EMGroup *)aGroup
  361. announcement:(NSString *)aAnnouncement;
  362. /*!
  363. * \~chinese
  364. * 有用户上传群共享文件
  365. *
  366. * @param aGroup 群组
  367. * @param aSharedFile 共享文件
  368. *
  369. * \~english
  370. * Delegate method will be invoked when a user upload share file to a group.
  371. *
  372. * @param aGroup Group
  373. * @param aSharedFile Share File
  374. */
  375. - (void)groupFileListDidUpdate:(EMGroup *)aGroup
  376. addedSharedFile:(EMGroupSharedFile *)aSharedFile;
  377. /*!
  378. * \~chinese
  379. * 有用户删除群共享文件
  380. *
  381. * @param aGroup 群组
  382. * @param aFileId 共享文件ID
  383. *
  384. * \~english
  385. * Delegate method will be invoked when a user remove share file from a group.
  386. *
  387. * @param aGroup Group
  388. * @param aFileId File ID
  389. */
  390. - (void)groupFileListDidUpdate:(EMGroup *)aGroup
  391. removedSharedFile:(NSString *)aFileId;
  392. #pragma mark - Deprecated methods
  393. /*!
  394. * \~chinese
  395. * 用户A邀请用户B入群,用户B接收到该回调
  396. *
  397. * @param aGroupId 群组ID
  398. * @param aInviter 邀请者
  399. * @param aMessage 邀请信息
  400. *
  401. * \~english
  402. * Delegate method will be invoked when user receives a group invitation
  403. *
  404. * After user A invites user B into the group, user B will receive this callback
  405. *
  406. * @param aGroupId The group ID
  407. * @param aInviter Inviter
  408. * @param aMessage Invite message
  409. */
  410. - (void)didReceiveGroupInvitation:(NSString *)aGroupId
  411. inviter:(NSString *)aInviter
  412. message:(NSString *)aMessage __deprecated_msg("Use -groupInvitationDidReceive:inviter:message:");
  413. /*!
  414. * \~chinese
  415. * 用户B同意用户A的入群邀请后,用户A接收到该回调
  416. *
  417. * @param aGroup 群组实例
  418. * @param aInvitee 被邀请者
  419. *
  420. * \~english
  421. * Delegate method will be invoked when a group invitation is accepted
  422. *
  423. * After user B accepted user A‘s group invitation, user A will receive this callback
  424. *
  425. * @param aGroup Group to join
  426. * @param aInvitee Invitee
  427. */
  428. - (void)didReceiveAcceptedGroupInvitation:(EMGroup *)aGroup
  429. invitee:(NSString *)aInvitee __deprecated_msg("Use -groupInvitationDidAccept:invitee:");
  430. /*!
  431. * \~chinese
  432. * 用户B拒绝用户A的入群邀请后,用户A接收到该回调
  433. *
  434. * @param aGroup 群组
  435. * @param aInvitee 被邀请者
  436. * @param aReason 拒绝理由
  437. *
  438. * \~english
  439. * Delegate method will be invoked when a group invitation is declined
  440. *
  441. * After user B declined user A's group invitation, user A will receive the callback
  442. *
  443. * @param aGroup Group instance
  444. * @param aInvitee Invitee
  445. * @param aReason Decline reason
  446. */
  447. - (void)didReceiveDeclinedGroupInvitation:(EMGroup *)aGroup
  448. invitee:(NSString *)aInvitee
  449. reason:(NSString *)aReason __deprecated_msg("Use -groupInvitationDidDecline:invitee:reason:");
  450. /*!
  451. * \~chinese
  452. * SDK自动同意了用户A的加B入群邀请后,用户B接收到该回调,需要设置EMOptions的isAutoAcceptGroupInvitation为YES
  453. *
  454. * @param aGroup 群组实例
  455. * @param aInviter 邀请者
  456. * @param aMessage 邀请消息
  457. *
  458. * \~english
  459. * User B will receive this callback after SDK automatically accept user A's group invitation.
  460. * Set EMOptions's isAutoAcceptGroupInvitation property to YES for this delegate method
  461. *
  462. * @param aGroup Group instance
  463. * @param aInviter Inviter
  464. * @param aMessage Invite message
  465. */
  466. - (void)didJoinedGroup:(EMGroup *)aGroup
  467. inviter:(NSString *)aInviter
  468. message:(NSString *)aMessage __deprecated_msg("Use -didJoinGroup:inviter:message:");
  469. /*!
  470. * \~chinese
  471. * 离开群组回调
  472. *
  473. * @param aGroup 群组实例
  474. * @param aReason 离开原因
  475. *
  476. * \~english
  477. * Callback of leave group
  478. *
  479. * @param aGroup Group instance
  480. * @param aReason Leave reason
  481. */
  482. - (void)didReceiveLeavedGroup:(EMGroup *)aGroup
  483. reason:(EMGroupLeaveReason)aReason __deprecated_msg("Use -didLeaveGroup:reason:");
  484. /*!
  485. * \~chinese
  486. * 群组的群主收到用户的入群申请,群的类型是EMGroupStylePublicJoinNeedApproval
  487. *
  488. * @param aGroup 群组实例
  489. * @param aApplicant 申请者
  490. * @param aReason 申请者的附属信息
  491. *
  492. * \~english
  493. * Group's owner receive user's applicaton of joining group, group's style is EMGroupStylePublicJoinNeedApproval
  494. *
  495. * @param aGroup Group
  496. * @param aApplicant The applicant
  497. * @param aReason The applicant's message
  498. */
  499. - (void)didReceiveJoinGroupApplication:(EMGroup *)aGroup
  500. applicant:(NSString *)aApplicant
  501. reason:(NSString *)aReason __deprecated_msg("Use -joinGroupRequestDidReceive:user:reason:");
  502. /*!
  503. * \~chinese
  504. * 群主拒绝用户A的入群申请后,用户A会接收到该回调,群的类型是EMGroupStylePublicJoinNeedApproval
  505. *
  506. * @param aGroupId 群组ID
  507. * @param aReason 拒绝理由
  508. *
  509. * \~english
  510. * User A will receive this callback after group's owner declined the join group request
  511. *
  512. * @param aGroupId Group id
  513. * @param aReason Decline reason
  514. */
  515. - (void)didReceiveDeclinedJoinGroup:(NSString *)aGroupId
  516. reason:(NSString *)aReason __deprecated_msg("Use -joinGroupRequestDidDecline:reason:");
  517. /*!
  518. * \~chinese
  519. * 群主同意用户A的入群申请后,用户A会接收到该回调,群的类型是EMGroupStylePublicJoinNeedApproval
  520. *
  521. * @param aGroup 通过申请的群组
  522. *
  523. * \~english
  524. * User A will receive this callback after group's owner accepted it's application, group's style is EMGroupStylePublicJoinNeedApproval
  525. *
  526. * @param aGroup Group instance
  527. */
  528. - (void)didReceiveAcceptedJoinGroup:(EMGroup *)aGroup __deprecated_msg("Use -joinGroupRequestDidApprove:");
  529. /*!
  530. * \~chinese
  531. * 群组列表发生变化
  532. *
  533. * @param aGroupList 群组列表<EMGroup>
  534. *
  535. * \~english
  536. * Group List changed
  537. *
  538. * @param aGroupList Group list<EMGroup>
  539. */
  540. - (void)didUpdateGroupList:(NSArray *)aGroupList __deprecated_msg("Use -groupListDidUpdate:");
  541. @end