WFCCIMService.h 39 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355
  1. //
  2. // WFCCIMService.h
  3. // WFChatClient
  4. //
  5. // Created by heavyrain on 2017/11/5.
  6. // Copyright © 2017年 WildFireChat. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "WFCCMessage.h"
  10. #import "WFCCGroupInfo.h"
  11. #import "WFCCConversationInfo.h"
  12. #import "WFCCUserInfo.h"
  13. #import "WFCCFriendRequest.h"
  14. #import "WFCCConversationSearchInfo.h"
  15. #import "WFCCGroupMember.h"
  16. #import "WFCCGroupSearchInfo.h"
  17. #import "WFCCChatroomInfo.h"
  18. #import "WFCCChatroomMemberInfo.h"
  19. #import "WFCCUnreadCount.h"
  20. #import "WFCCChannelInfo.h"
  21. #import "WFCCPCOnlineInfo.h"
  22. #pragma mark - 频道通知定义
  23. //发送消息状态通知
  24. extern NSString *kSendingMessageStatusUpdated;
  25. extern NSString *kConnectionStatusChanged;
  26. extern NSString *kReceiveMessages;
  27. extern NSString *kRecallMessages;
  28. extern NSString *kDeleteMessages;
  29. extern NSString *kMessageDelivered;
  30. extern NSString *kMessageReaded;
  31. #pragma mark - 枚举值定义
  32. /**
  33. 修改个人信息的内容
  34. - Modify_DisplayName: 修改显示名
  35. - Modify_Portrait: 修改头像
  36. - Modify_Gender: 修改性别
  37. - Modify_Mobile: 修改手机号
  38. - Modify_Email: 修改邮箱
  39. - Modify_Address: 修改地址
  40. - Modify_Company: 修改公司信息
  41. - Modify_Social: 修改社交信息
  42. - Modify_Extra: 修改扩展信息
  43. */
  44. typedef NS_ENUM(NSInteger, ModifyMyInfoType) {
  45. Modify_DisplayName = 0,
  46. Modify_Portrait = 1,
  47. Modify_Gender = 2,
  48. Modify_Mobile = 3,
  49. Modify_Email = 4,
  50. Modify_Address = 5,
  51. Modify_Company = 6,
  52. Modify_Social = 7,
  53. Modify_Extra = 8
  54. };
  55. typedef NS_ENUM(NSInteger, ModifyGroupInfoType) {
  56. Modify_Group_Name = 0,
  57. Modify_Group_Portrait = 1,
  58. Modify_Group_Extra = 2,
  59. Modify_Group_Mute = 3,
  60. Modify_Group_JoinType = 4,
  61. Modify_Group_PrivateChat = 5,
  62. Modify_Group_Searchable = 6
  63. };
  64. typedef NS_ENUM(NSInteger, ModifyChannelInfoType) {
  65. Modify_Channel_Name = 0,
  66. Modify_Channel_Portrait = 1,
  67. Modify_Channel_Desc = 2,
  68. Modify_Channel_Extra = 3,
  69. Modify_Channel_Secret = 4,
  70. Modify_Channel_Callback = 5
  71. };
  72. /**
  73. 个人设置Scope
  74. @discussion 用户设置,1000以内被系统保留。应用不应该直接使用系统预制的范围。应用可以使用1000以上的值。
  75. */
  76. typedef NS_ENUM(NSInteger, UserSettingScope) {
  77. //不能直接使用,调用setConversation:silent:方法会使用到此值。
  78. UserSettingScope_Conversation_Silent = 1,
  79. //不能直接使用
  80. UserSettingScope_Global_Silent = 2,
  81. //不能直接使用,调用setConversation:top:方法会使用到此值。
  82. UserSettingScope_Conversation_Top = 3,
  83. //不能直接使用
  84. UserSettingScope_Hidden_Notification_Detail = 4,
  85. //不能直接使用
  86. UserSettingScope_Group_Hide_Nickname = 5,
  87. //不能直接使用
  88. UserSettingScope_Favourite_Group = 6,
  89. //不能直接使用,协议栈内会使用此值
  90. UserSettingScope_Conversation_Sync = 7,
  91. //不能直接使用,协议栈内会使用此值
  92. UserSettingScope_My_Channel = 8,
  93. //不能直接使用,协议栈内会使用此值
  94. UserSettingScope_Listened_Channel = 9,
  95. //不能直接使用,协议栈内会使用此值
  96. UserSettingScope_PC_Online = 10,
  97. //不能直接使用,协议栈内会使用此值
  98. UserSetting_Conversation_Readed = 11,
  99. //不能直接使用,协议栈内会使用此值
  100. UserSetting_WebOnline = 12,
  101. //不能直接使用,协议栈内会使用此值
  102. UserSetting_DisableRecipt = 13,
  103. //自定义用户设置,请使用1000以上的key
  104. UserSettingScope_Custom_Begin = 1000
  105. } ;
  106. /**
  107. 搜索用户类型
  108. - SearchUserType_General: 模糊搜索diaplayName,精确匹配name和电话
  109. - SearchUserType_Name_Mobile: 精确匹配name和电话
  110. - SearchUserType_Name: 精确匹配name
  111. - SearchUserType_Mobile: 精确匹配电话
  112. */
  113. typedef NS_ENUM(NSInteger, WFCCSearchUserType) {
  114. SearchUserType_General,
  115. SearchUserType_Name_Mobile,
  116. SearchUserType_Name,
  117. SearchUserType_Mobile,
  118. } ;
  119. typedef NS_ENUM(NSInteger, WFCCPlatformType) {
  120. PlatformType_UNSET = 0,
  121. PlatformType_iOS = 1,
  122. PlatformType_Android = 2,
  123. PlatformType_Windows = 3,
  124. PlatformType_OSX = 4,
  125. PlatformType_WEB = 5,
  126. Platform_WX = 6,
  127. Platform_Linux = 7
  128. } ;
  129. #pragma mark - 用户源
  130. /*
  131. * ChatClient内置支持用户信息托管,但对于很多应用来说都已经拥有自己的用户信息。此时可以实现用户源并设置到IMServer中去。这样ChatClient会从源中读取信息,从而ChatUIKit不用修改代码。
  132. * 对于好友关系,由于页面简单。如果客户有自己的好友关系,建议客户自己修改相关UI。
  133. * 对于群组建议使用我们的托管。
  134. */
  135. @protocol WFCCUserSource <NSObject>
  136. - (WFCCUserInfo *)getUserInfo:(NSString *)userId
  137. refresh:(BOOL)refresh;
  138. - (void)searchUser:(NSString *)keyword
  139. searchType:(WFCCSearchUserType)searchType
  140. page:(int)page
  141. success:(void(^)(NSArray<WFCCUserInfo *> *machedUsers))successBlock
  142. error:(void(^)(int errorCode))errorBlock;
  143. -(void)modifyMyInfo:(NSDictionary<NSNumber */*ModifyMyInfoType*/, NSString *> *)values
  144. success:(void(^)(void))successBlock
  145. error:(void(^)(int error_code))errorBlock;
  146. @end
  147. #pragma mark - IM服务
  148. /**
  149. IM服务
  150. */
  151. @interface WFCCIMService : NSObject
  152. /**
  153. IM服务单例
  154. @return IM服务单例
  155. */
  156. + (WFCCIMService*)sharedWFCIMService;
  157. @property(nonatomic, weak)id<WFCCUserSource> userSource;
  158. #pragma mark - 会话相关
  159. /**
  160. 获取会话信息
  161. @param conversationTypes 会话类型
  162. @param lines 默认传 @[@(0)]
  163. @return 会话信息
  164. */
  165. - (NSArray<WFCCConversationInfo *> *)getConversationInfos:(NSArray<NSNumber *> *)conversationTypes
  166. lines:(NSArray<NSNumber *> *)lines;
  167. /**
  168. 获取会话信息
  169. @param conversation 会话
  170. @return 会话信息
  171. */
  172. - (WFCCConversationInfo *)getConversationInfo:(WFCCConversation *)conversation;
  173. /**
  174. 搜索会话
  175. @param keyword 关键词
  176. @param conversationTypes 会话类型
  177. @param lines 默认传 @[@(0)]
  178. @return 会话搜索结果信息
  179. */
  180. - (NSArray<WFCCConversationSearchInfo *> *)searchConversation:(NSString *)keyword inConversation:(NSArray<NSNumber *> *)conversationTypes lines:(NSArray<NSNumber *> *)lines;
  181. /**
  182. 删除会话
  183. @param conversation 会话
  184. @param clearMessage 是否删除会话中的消息
  185. */
  186. - (void)removeConversation:(WFCCConversation *)conversation
  187. clearMessage:(BOOL)clearMessage;
  188. /**
  189. 设置或取消会话置顶
  190. @param conversation 会话
  191. @param top 是否置顶
  192. */
  193. - (void)setConversation:(WFCCConversation *)conversation
  194. top:(BOOL)top
  195. success:(void(^)(void))successBlock
  196. error:(void(^)(int error_code))errorBlock;
  197. /**
  198. 设置会话免打扰
  199. @param conversation 会话
  200. @param silent 是否免打扰
  201. @param successBlock 成功的回调
  202. @param errorBlock 失败的回调
  203. */
  204. - (void)setConversation:(WFCCConversation *)conversation
  205. silent:(BOOL)silent
  206. success:(void(^)(void))successBlock
  207. error:(void(^)(int error_code))errorBlock;
  208. /**
  209. 设置会话草稿
  210. @param conversation 会话
  211. @param draft 草稿
  212. */
  213. - (void)setConversation:(WFCCConversation *)conversation
  214. draft:(NSString *)draft;
  215. /**
  216. 更新会话的时间
  217. @param conversation 会话
  218. @param timestamp 时间戳
  219. */
  220. - (void)setConversation:(WFCCConversation *)conversation
  221. timestamp:(long long)timestamp;
  222. #pragma mark - 未读数相关
  223. /**
  224. 获取指定类型会话的未读数
  225. @param conversationTypes 会话类型
  226. @param lines 默认传 @[@(0)]
  227. @return 未读数
  228. */
  229. - (WFCCUnreadCount *)getUnreadCount:(NSArray<NSNumber *> *)conversationTypes
  230. lines:(NSArray<NSNumber *> *)lines;
  231. /**
  232. 获取某个会话的未读数
  233. @param conversation 会话
  234. @return 未读数
  235. */
  236. - (WFCCUnreadCount *)getUnreadCount:(WFCCConversation *)conversation;
  237. /**
  238. 清空会话未读数
  239. @param conversation 会话
  240. */
  241. - (void)clearUnreadStatus:(WFCCConversation *)conversation;
  242. - (void)clearUnreadStatus:(NSArray<NSNumber *> *)conversationTypes
  243. lines:(NSArray<NSNumber *> *)lines;
  244. /**
  245. 清空所有会话的未读数
  246. */
  247. - (void)clearAllUnreadStatus;
  248. /**
  249. 设置媒体消息已播放(已经放开限制,所有消息都可以设置为已读状态)
  250. */
  251. - (void)setMediaMessagePlayed:(long)messageId;
  252. - (NSMutableDictionary<NSString *, NSNumber *> *)getConversationRead:(WFCCConversation *)conversation;
  253. - (NSMutableDictionary<NSString *, NSNumber *> *)getMessageDelivery:(WFCCConversation *)conversation;
  254. - (long long)getMessageDeliveryByUser:(NSString *)userId;
  255. #pragma mark - 消息相关
  256. /**
  257. 获取消息
  258. @discuss 获取从fromIndex起count条旧的消息。如果想要获取比fromIndex新的消息,count传负值。
  259. @param conversation 会话
  260. @param contentTypes 消息类型
  261. @param fromIndex 起始index
  262. @param count 总数
  263. @return 消息实体
  264. */
  265. - (NSArray<WFCCMessage *> *)getMessages:(WFCCConversation *)conversation
  266. contentTypes:(NSArray<NSNumber *> *)contentTypes
  267. from:(NSUInteger)fromIndex
  268. count:(NSInteger)count
  269. withUser:(NSString *)user;
  270. /**
  271. 获取某类会话信息
  272. @param conversationTypes 会话类型
  273. @param lines 默认传 @[@(0)]
  274. @param contentTypes 消息类型
  275. @param fromIndex 起始index
  276. @param count 总数
  277. @return 消息实体
  278. */
  279. - (NSArray<WFCCMessage *> *)getMessages:(NSArray<NSNumber *> *)conversationTypes
  280. lines:(NSArray<NSNumber *> *)lines
  281. contentTypes:(NSArray<NSNumber *> *)contentTypes
  282. from:(NSUInteger)fromIndex
  283. count:(NSInteger)count
  284. withUser:(NSString *)user;
  285. /**
  286. 获取某类会话信息
  287. @param conversationTypes 会话类型
  288. @param lines 默认传 @[@(0)]
  289. @param messageStatus 消息状态
  290. @param fromIndex 起始index
  291. @param count 总数
  292. @return 消息实体
  293. */
  294. - (NSArray<WFCCMessage *> *)getMessages:(NSArray<NSNumber *> *)conversationTypes
  295. lines:(NSArray<NSNumber *> *)lines
  296. messageStatus:(WFCCMessageStatus)messageStatus
  297. from:(NSUInteger)fromIndex
  298. count:(NSInteger)count
  299. withUser:(NSString *)user;
  300. /**
  301. 获取服务器消息
  302. @param conversation 会话
  303. @param beforeMessageUid 起始index
  304. @param count 总数
  305. @param successBlock 返回消息
  306. @param errorBlock 返回错误码
  307. */
  308. - (void)getRemoteMessages:(WFCCConversation *)conversation
  309. before:(long long)beforeMessageUid
  310. count:(NSUInteger)count
  311. success:(void(^)(NSArray<WFCCMessage *> *messages))successBlock
  312. error:(void(^)(int error_code))errorBlock;
  313. /**
  314. 获取消息
  315. @param messageId 消息ID
  316. @return 消息实体
  317. */
  318. - (WFCCMessage *)getMessage:(long)messageId;
  319. /**
  320. 获取消息
  321. @param messageUid 消息UID
  322. @return 消息实体
  323. */
  324. - (WFCCMessage *)getMessageByUid:(long long)messageUid;
  325. /**
  326. 搜索消息
  327. @param conversation 会话
  328. @param keyword 关键词
  329. @return 命中的消息
  330. */
  331. - (NSArray<WFCCMessage *> *)searchMessage:(WFCCConversation *)conversation
  332. keyword:(NSString *)keyword;
  333. /**
  334. 发送消息
  335. @param conversation 会话
  336. @param content 消息内容
  337. @param successBlock 成功的回调
  338. @param errorBlock 失败的回调
  339. @return 消息实体
  340. */
  341. - (WFCCMessage *)send:(WFCCConversation *)conversation
  342. content:(WFCCMessageContent *)content
  343. success:(void(^)(long long messageUid, long long timestamp))successBlock
  344. error:(void(^)(int error_code))errorBlock;
  345. /**
  346. 发送媒体消息
  347. @param conversation 会话
  348. @param content 消息内容
  349. @param successBlock 成功的回调
  350. @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调
  351. @param errorBlock 失败的回调
  352. @return 消息实体
  353. */
  354. - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
  355. content:(WFCCMessageContent *)content
  356. success:(void(^)(long long messageUid, long long timestamp))successBlock
  357. progress:(void(^)(long uploaded, long total))progressBlock
  358. error:(void(^)(int error_code))errorBlock;
  359. /**
  360. 发送消息
  361. @param conversation 会话
  362. @param content 消息内容
  363. @param expireDuration 消息的有效期,0不限期,单位秒
  364. @param successBlock 成功的回调
  365. @param errorBlock 失败的回调
  366. @return 消息实体
  367. */
  368. - (WFCCMessage *)send:(WFCCConversation *)conversation
  369. content:(WFCCMessageContent *)content
  370. expireDuration:(int)expireDuration
  371. success:(void(^)(long long messageUid, long long timestamp))successBlock
  372. error:(void(^)(int error_code))errorBlock;
  373. /**
  374. 发送消息
  375. @param conversation 会话
  376. @param content 消息内容
  377. @param toUsers 在会话中只发给该用户,如果为空则发到会话中
  378. @param expireDuration 消息的有效期,0不限期,单位秒
  379. @param successBlock 成功的回调
  380. @param errorBlock 失败的回调
  381. @return 消息实体
  382. */
  383. - (WFCCMessage *)send:(WFCCConversation *)conversation
  384. content:(WFCCMessageContent *)content
  385. toUsers:(NSArray<NSString *> *)toUsers
  386. expireDuration:(int)expireDuration
  387. success:(void(^)(long long messageUid, long long timestamp))successBlock
  388. error:(void(^)(int error_code))errorBlock;
  389. /**
  390. 发送媒体消息
  391. @param conversation 会话
  392. @param content 消息内容
  393. @param expireDuration 消息的有效期,0不限期,单位秒
  394. @param successBlock 成功的回调
  395. @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调
  396. @param errorBlock 失败的回调
  397. @return 消息实体
  398. */
  399. - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
  400. content:(WFCCMessageContent *)content
  401. expireDuration:(int)expireDuration
  402. success:(void(^)(long long messageUid, long long timestamp))successBlock
  403. progress:(void(^)(long uploaded, long total))progressBlock
  404. error:(void(^)(int error_code))errorBlock;
  405. /**
  406. 发送媒体消息
  407. @param conversation 会话
  408. @param content 消息内容
  409. @param toUsers 在会话中只发给该用户,如果为空则发到会话中
  410. @param expireDuration 消息的有效期,0不限期,单位秒
  411. @param successBlock 成功的回调
  412. @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调
  413. @param errorBlock 失败的回调
  414. @return 消息实体
  415. */
  416. - (WFCCMessage *)sendMedia:(WFCCConversation *)conversation
  417. content:(WFCCMessageContent *)content
  418. toUsers:(NSArray<NSString *> *)toUsers
  419. expireDuration:(int)expireDuration
  420. success:(void(^)(long long messageUid, long long timestamp))successBlock
  421. progress:(void(^)(long uploaded, long total))progressBlock
  422. error:(void(^)(int error_code))errorBlock;
  423. /**
  424. 发送已保存消息,消息状态必须是发送中或者发送失败
  425. @param message 已经存储在本地待发送的消息
  426. @param expireDuration 消息的有效期,0不限期,单位秒
  427. @param successBlock 成功的回调
  428. @param errorBlock 失败的回调
  429. @return 协议栈是否可以发送
  430. */
  431. - (BOOL)sendSavedMessage:(WFCCMessage *)message
  432. expireDuration:(int)expireDuration
  433. success:(void(^)(long long messageUid, long long timestamp))successBlock
  434. error:(void(^)(int error_code))errorBlock;
  435. /**
  436. 撤回消息
  437. @param message 待撤回的消息
  438. @param successBlock 成功的回调
  439. @param errorBlock 失败的回调
  440. @discuss 服务器不检查可撤回时间,应用逻辑来处理。
  441. */
  442. - (void)recall:(WFCCMessage *)message
  443. success:(void(^)(void))successBlock
  444. error:(void(^)(int error_code))errorBlock;
  445. /**
  446. 上传媒体(图片、语音、文件等)
  447. @param fileName 文件名,可为空
  448. @param mediaData 媒体信息
  449. @param mediaType 媒体类型
  450. @param successBlock 成功的回调
  451. @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调
  452. @param errorBlock 失败的回调
  453. */
  454. - (void)uploadMedia:(NSString *)fileName
  455. mediaData:(NSData *)mediaData
  456. mediaType:(WFCCMediaType)mediaType
  457. success:(void(^)(NSString *remoteUrl))successBlock
  458. progress:(void(^)(long uploaded, long total))progressBlock
  459. error:(void(^)(int error_code))errorBlock;
  460. /**
  461. 同步上传媒体(图片、语音、文件等),成功或者失败之后才会返回
  462. @param fileName 文件名,可为空
  463. @param mediaData 媒体信息
  464. @param mediaType 媒体类型
  465. @param successBlock 成功的回调
  466. @param progressBlock 上传进度的回调,注意仅当媒体内容大于300K才会有回调
  467. @param errorBlock 失败的回调
  468. @return 是否上传成功
  469. */
  470. - (BOOL)syncUploadMedia:(NSString *)fileName
  471. mediaData:(NSData *)mediaData
  472. mediaType:(WFCCMediaType)mediaType
  473. success:(void(^)(NSString *remoteUrl))successBlock
  474. progress:(void(^)(long uploaded, long total))progressBlock
  475. error:(void(^)(int error_code))errorBlock;
  476. /**
  477. 删除消息
  478. @param messageId 消息ID
  479. @return 是否删除成功
  480. */
  481. - (void)deleteMessage:(long)messageId;
  482. /**
  483. 删除会话中的消息
  484. @param conversation 会话
  485. */
  486. - (void)clearMessages:(WFCCConversation *)conversation;
  487. /**
  488. 删除会话中的before之前的旧消息。
  489. @param conversation 会话,如果conversation为nil,则清除所有会话的消息。
  490. @param before 时间点,单位是毫秒
  491. */
  492. - (void)clearMessages:(WFCCConversation *)conversation before:(int64_t)before;
  493. /**
  494. 注册自定义消息类型
  495. @param contentClass 自定义消息
  496. */
  497. - (void)registerMessageContent:(Class)contentClass;
  498. /**
  499. 消息解码
  500. @param payload 消息Payload
  501. @return 消息内容
  502. */
  503. - (WFCCMessageContent *)messageContentFromPayload:(WFCCMessagePayload *)payload;
  504. /**
  505. 插入消息
  506. @param conversation 会话
  507. @param content 消息内容
  508. @param status 消息状态,注意消息状态会影响消息方向
  509. @param serverTime 时间,0为当前时间
  510. @return 消息实体
  511. */
  512. - (WFCCMessage *)insert:(WFCCConversation *)conversation
  513. sender:(NSString *)sender
  514. content:(WFCCMessageContent *)content
  515. status:(WFCCMessageStatus)status
  516. notify:(BOOL)notify
  517. serverTime:(long long)serverTime;
  518. /**
  519. 更新消息内容。只更新本地消息内容,无法更新服务器和远端。
  520. @param messageId 消息ID
  521. @param content 消息内容
  522. */
  523. - (void)updateMessage:(long)messageId
  524. content:(WFCCMessageContent *)content;
  525. /**
  526. 更新消息状态,需要确保状态跟消息的方向相对应。一般情况下协议栈会自动处理好,不建议客户手动操作状态。。只更新本地消息内容,无法更新服务器和远端。
  527. @param messageId 消息ID
  528. @param status 消息状态
  529. @return YES 更新成功。NO 消息不存在,或者状态与消息方向不匹配
  530. */
  531. - (bool)updateMessage:(long)messageId status:(WFCCMessageStatus)status;
  532. /**
  533. 插入消息。只插入到本地,无法更新服务器和远端。
  534. @param message 待插入的消息
  535. @return 插入消息的id
  536. */
  537. - (long)insertMessage:(WFCCMessage *)message;
  538. /**
  539. 获取会话的消息数
  540. @param conversation 会话。
  541. @return 会话的消息数。
  542. */
  543. - (int)getMessageCount:(WFCCConversation *)conversation;
  544. #pragma mark - 用户相关
  545. /**
  546. 获取用户信息
  547. @param userId 用户ID
  548. @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。
  549. @return 本地的用户信息,可能为空
  550. */
  551. - (WFCCUserInfo *)getUserInfo:(NSString *)userId
  552. refresh:(BOOL)refresh;
  553. /**
  554. 获取用户信息
  555. @discussion 获取用户信息,如果在群中有群昵称也一并返回
  556. @param userId 用户ID
  557. @param groupId 群组ID
  558. @param refresh 是否强制从服务器更新,如果本地没有或者强制,会从服务器刷新,然后发出通知kUserInfoUpdated。
  559. @return 本地的用户信息,可能为空
  560. */
  561. - (WFCCUserInfo *)getUserInfo:(NSString *)userId inGroup:(NSString *)groupId refresh:(BOOL)refresh;
  562. /**
  563. 批量获取用户信息
  564. @param userIds 用户ID列表
  565. @param groupId 群组ID
  566. @return 本地的用户信息列表。本地不存在的用户会返回只有id的用户信息,同时会拉取。
  567. */
  568. - (NSArray<WFCCUserInfo *> *)getUserInfos:(NSArray<NSString *> *)userIds inGroup:(NSString *)groupId;
  569. /**
  570. 搜索用户
  571. @param keyword 关键词
  572. @param searchType 搜索类型
  573. @param page page
  574. @param successBlock 成功的回调
  575. @param errorBlock 失败的回调
  576. */
  577. - (void)searchUser:(NSString *)keyword
  578. searchType:(WFCCSearchUserType)searchType
  579. page:(int)page
  580. success:(void(^)(NSArray<WFCCUserInfo *> *machedUsers))successBlock
  581. error:(void(^)(int errorCode))errorBlock;
  582. #pragma mark - 好友相关
  583. /**
  584. 查询用户和当前用户是否是好友关系
  585. @param userId 用户ID
  586. @return 是否是好友
  587. */
  588. - (BOOL)isMyFriend:(NSString *)userId;
  589. /**
  590. 获取当前用户的好友列表
  591. @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取
  592. @return 好友列表的用户ID
  593. */
  594. - (NSArray<NSString *> *)getMyFriendList:(BOOL)refresh;
  595. /**
  596. 搜索好友
  597. @param keyword 关键词
  598. @return 好友用户信息
  599. */
  600. - (NSArray<WFCCUserInfo *> *)searchFriends:(NSString *)keyword;
  601. /**
  602. 搜索群组
  603. @param keyword 关键词
  604. @return 群组搜索结果
  605. */
  606. - (NSArray<WFCCGroupSearchInfo *> *)searchGroups:(NSString *)keyword;
  607. /**
  608. 获取收到的好友请求
  609. @return 好友请求
  610. */
  611. - (NSArray<WFCCFriendRequest *> *)getIncommingFriendRequest;
  612. /**
  613. 获取发出的好友请求
  614. @return 好友请求
  615. */
  616. - (NSArray<WFCCFriendRequest *> *)getOutgoingFriendRequest;
  617. /**
  618. 从服务器更新好友请求
  619. */
  620. - (void)loadFriendRequestFromRemote;
  621. /**
  622. 获取未读的好友请求数
  623. @return 未读的好友请求数
  624. */
  625. - (int)getUnreadFriendRequestStatus;
  626. /**
  627. 清除好友请求的未读数
  628. */
  629. - (void)clearUnreadFriendRequestStatus;
  630. /**
  631. 删除好友
  632. @param userId 用户ID
  633. @param successBlock 成功的回调
  634. @param errorBlock 失败的回调
  635. */
  636. - (void)deleteFriend:(NSString *)userId
  637. success:(void(^)(void))successBlock
  638. error:(void(^)(int error_code))errorBlock;
  639. /**
  640. 发送好友请求
  641. @param userId 用户ID
  642. @param reason 请求说明
  643. @param successBlock 成功的回调
  644. @param errorBlock 失败的回调
  645. */
  646. - (void)sendFriendRequest:(NSString *)userId
  647. reason:(NSString *)reason
  648. success:(void(^)(void))successBlock
  649. error:(void(^)(int error_code))errorBlock;
  650. /**
  651. 处理好友请求
  652. @param userId 用户ID
  653. @param accpet 是否接受
  654. @param extra 附加信息,如果接受,附加信息会添加到好友附加信息中
  655. @param successBlock 成功的回调
  656. @param errorBlock 失败的回调
  657. */
  658. - (void)handleFriendRequest:(NSString *)userId
  659. accept:(BOOL)accpet
  660. extra:(NSString *)extra
  661. success:(void(^)(void))successBlock
  662. error:(void(^)(int error_code))errorBlock;
  663. - (NSString *)getFriendAlias:(NSString *)friendId;
  664. - (void)setFriend:(NSString *)friendId
  665. alias:(NSString *)alias
  666. success:(void(^)(void))successBlock
  667. error:(void(^)(int error_code))errorBlock;
  668. - (NSString *)getFriendExtra:(NSString *)friendId;
  669. /**
  670. 查询用户是否被加入黑名单
  671. @param userId 用户ID
  672. @return 是否被加入黑名单
  673. */
  674. - (BOOL)isBlackListed:(NSString *)userId;
  675. /**
  676. 获取当前用户的黑名单列表
  677. @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取
  678. @return 黑名单列表的用户ID
  679. */
  680. - (NSArray<NSString *> *)getBlackList:(BOOL)refresh;
  681. /**
  682. 设置黑名单
  683. @param userId 用户ID
  684. @param isBlackListed YES 加入黑名单; NO 取消黑名单
  685. @param successBlock 成功的回调
  686. @param errorBlock 失败的回调
  687. */
  688. - (void)setBlackList:(NSString *)userId
  689. isBlackListed:(BOOL)isBlackListed
  690. success:(void(^)(void))successBlock
  691. error:(void(^)(int error_code))errorBlock;
  692. #pragma mark - 群相关
  693. /**
  694. 获取群成员信息
  695. @param groupId 群ID
  696. @param forceUpdate 是否强制从服务器更新,如果不刷新则从本地缓存中读取
  697. @return 群成员信息
  698. */
  699. - (NSArray<WFCCGroupMember *> *)getGroupMembers:(NSString *)groupId
  700. forceUpdate:(BOOL)forceUpdate;
  701. /**
  702. 获取群信息
  703. @param groupId 群ID
  704. @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取
  705. @return 群信息
  706. */
  707. - (WFCCGroupInfo *)getGroupInfo:(NSString *)groupId
  708. refresh:(BOOL)refresh;
  709. /**
  710. 获取群成员信息
  711. @param groupId 群ID
  712. @param memberId 群成员ID
  713. @return 群成员信息
  714. */
  715. - (WFCCGroupMember *)getGroupMember:(NSString *)groupId
  716. memberId:(NSString *)memberId;
  717. /**
  718. 创建群
  719. @param groupId 群ID
  720. @param groupName 群名称
  721. @param groupPortrait 群头像
  722. @param groupMembers 群成员
  723. @param notifyLines 默认传 @[@(0)]
  724. @param notifyContent 通知消息
  725. @param successBlock 成功的回调
  726. @param errorBlock 失败的回调
  727. */
  728. - (void)createGroup:(NSString *)groupId
  729. name:(NSString *)groupName
  730. portrait:(NSString *)groupPortrait
  731. type:(WFCCGroupType)type
  732. members:(NSArray *)groupMembers
  733. notifyLines:(NSArray<NSNumber *> *)notifyLines
  734. notifyContent:(WFCCMessageContent *)notifyContent
  735. success:(void(^)(NSString *groupId))successBlock
  736. error:(void(^)(int error_code))errorBlock;
  737. /**
  738. 添加群成员
  739. @param members 成员的用户ID列表
  740. @param groupId 群ID
  741. @param notifyLines 默认传 @[@(0)]
  742. @param notifyContent 通知消息
  743. @param successBlock 成功的回调
  744. @param errorBlock 失败的回调
  745. */
  746. - (void)addMembers:(NSArray *)members
  747. toGroup:(NSString *)groupId
  748. notifyLines:(NSArray<NSNumber *> *)notifyLines
  749. notifyContent:(WFCCMessageContent *)notifyContent
  750. success:(void(^)(void))successBlock
  751. error:(void(^)(int error_code))errorBlock;
  752. /**
  753. 踢出群成员
  754. @param members 成员的用户ID列表
  755. @param groupId 群ID
  756. @param notifyLines 默认传 @[@(0)]
  757. @param notifyContent 通知消息
  758. @param successBlock 成功的回调
  759. @param errorBlock 失败的回调
  760. */
  761. - (void)kickoffMembers:(NSArray *)members
  762. fromGroup:(NSString *)groupId
  763. notifyLines:(NSArray<NSNumber *> *)notifyLines
  764. notifyContent:(WFCCMessageContent *)notifyContent
  765. success:(void(^)(void))successBlock
  766. error:(void(^)(int error_code))errorBlock;
  767. /**
  768. 退群
  769. @param groupId 群ID
  770. @param notifyLines 默认传 @[@(0)]
  771. @param notifyContent 通知消息
  772. @param successBlock 成功的回调
  773. @param errorBlock 失败的回调
  774. */
  775. - (void)quitGroup:(NSString *)groupId
  776. notifyLines:(NSArray<NSNumber *> *)notifyLines
  777. notifyContent:(WFCCMessageContent *)notifyContent
  778. success:(void(^)(void))successBlock
  779. error:(void(^)(int error_code))errorBlock;
  780. /**
  781. 解散群
  782. @param groupId 群ID
  783. @param notifyLines 默认传 @[@(0)]
  784. @param notifyContent 通知消息
  785. @param successBlock 成功的回调
  786. @param errorBlock 失败的回调
  787. */
  788. - (void)dismissGroup:(NSString *)groupId
  789. notifyLines:(NSArray<NSNumber *> *)notifyLines
  790. notifyContent:(WFCCMessageContent *)notifyContent
  791. success:(void(^)(void))successBlock
  792. error:(void(^)(int error_code))errorBlock;
  793. /**
  794. 修改群信息
  795. @param groupId 群ID
  796. @param type 要修改的群属性
  797. @param newValue 要修改的群属性值
  798. @param notifyLines 默认传 @[@(0)]
  799. @param notifyContent 通知消息
  800. @param successBlock 成功的回调
  801. @param errorBlock 失败的回调
  802. */
  803. - (void)modifyGroupInfo:(NSString *)groupId
  804. type:(ModifyGroupInfoType)type
  805. newValue:(NSString *)newValue
  806. notifyLines:(NSArray<NSNumber *> *)notifyLines
  807. notifyContent:(WFCCMessageContent *)notifyContent
  808. success:(void(^)(void))successBlock
  809. error:(void(^)(int error_code))errorBlock;
  810. /**
  811. 修改群昵称
  812. @param groupId 群ID
  813. @param newAlias 昵称
  814. @param notifyLines 默认传 @[@(0)]
  815. @param notifyContent 通知消息
  816. @param successBlock 成功的回调
  817. @param errorBlock 失败的回调
  818. */
  819. - (void)modifyGroupAlias:(NSString *)groupId
  820. alias:(NSString *)newAlias
  821. notifyLines:(NSArray<NSNumber *> *)notifyLines
  822. notifyContent:(WFCCMessageContent *)notifyContent
  823. success:(void(^)(void))successBlock
  824. error:(void(^)(int error_code))errorBlock;
  825. /**
  826. 转移群主
  827. @param groupId 群ID
  828. @param newOwner 群主的用户ID
  829. @param notifyLines 默认传 @[@(0)]
  830. @param notifyContent 通知消息
  831. @param successBlock 成功的回调
  832. @param errorBlock 失败的回调
  833. */
  834. - (void)transferGroup:(NSString *)groupId
  835. to:(NSString *)newOwner
  836. notifyLines:(NSArray<NSNumber *> *)notifyLines
  837. notifyContent:(WFCCMessageContent *)notifyContent
  838. success:(void(^)(void))successBlock
  839. error:(void(^)(int error_code))errorBlock;
  840. /**
  841. 设置群管理
  842. @param groupId 群ID
  843. @param isSet 设置或取消
  844. @param memberIds 成员ID
  845. @param notifyLines 默认传 @[@(0)]
  846. @param notifyContent 通知消息
  847. @param successBlock 成功的回调
  848. @param errorBlock 失败的回调
  849. */
  850. - (void)setGroupManager:(NSString *)groupId
  851. isSet:(BOOL)isSet
  852. memberIds:(NSArray<NSString *> *)memberIds
  853. notifyLines:(NSArray<NSNumber *> *)notifyLines
  854. notifyContent:(WFCCMessageContent *)notifyContent
  855. success:(void(^)(void))successBlock
  856. error:(void(^)(int error_code))errorBlock;
  857. /**
  858. 设置群成员禁言,仅专业版支持
  859. @param groupId 群ID
  860. @param isSet 设置或取消
  861. @param memberIds 成员ID
  862. @param notifyLines 默认传 @[@(0)]
  863. @param notifyContent 通知消息
  864. @param successBlock 成功的回调
  865. @param errorBlock 失败的回调
  866. */
  867. - (void)muteGroupMember:(NSString *)groupId
  868. isSet:(BOOL)isSet
  869. memberIds:(NSArray<NSString *> *)memberIds
  870. notifyLines:(NSArray<NSNumber *> *)notifyLines
  871. notifyContent:(WFCCMessageContent *)notifyContent
  872. success:(void(^)(void))successBlock
  873. error:(void(^)(int error_code))errorBlock;
  874. /**
  875. 获取当前用户收藏的群组
  876. @return 当前用户收藏的群组ID
  877. */
  878. - (NSArray<NSString *> *)getFavGroups;
  879. /**
  880. 是否是当前用户收藏的群组
  881. @return 是否是当前用户收藏的群组
  882. */
  883. - (BOOL)isFavGroup:(NSString *)groupId;
  884. /**
  885. 设置群组收藏状态
  886. @param groupId 群组ID
  887. @param fav 是否收藏
  888. @param successBlock 成功的回调
  889. @param errorBlock 失败的回调
  890. */
  891. - (void)setFavGroup:(NSString *)groupId fav:(BOOL)fav success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock;
  892. #pragma mark - 个人设置相关
  893. /**
  894. 获取个人设置
  895. @param scope 设置项的scope
  896. @param key 设置项的key
  897. @return 设置值
  898. */
  899. - (NSString *)getUserSetting:(UserSettingScope)scope
  900. key:(NSString *)key;
  901. /**
  902. 获取个人一类设置
  903. @param scope 设置项的scope
  904. @return scope对应的所有设置值
  905. */
  906. - (NSDictionary<NSString *, NSString *> *)getUserSettings:(UserSettingScope)scope;
  907. /**
  908. 设置个人设置项
  909. @param scope 设置项的scope
  910. @param key 设置项的key
  911. @param value 值
  912. @param successBlock 成功的回调
  913. @param errorBlock 失败的回调
  914. */
  915. - (void)setUserSetting:(UserSettingScope)scope
  916. key:(NSString *)key
  917. value:(NSString *)value
  918. success:(void(^)(void))successBlock
  919. error:(void(^)(int error_code))errorBlock;
  920. /**
  921. 修改个人信息
  922. @param values 信息
  923. @param successBlock 成功的回调
  924. @param errorBlock 失败的回调
  925. @discuss 性别属性是int类型,修改时需要转为字符串类型
  926. */
  927. -(void)modifyMyInfo:(NSDictionary<NSNumber */*ModifyMyInfoType*/, NSString *> *)values
  928. success:(void(^)(void))successBlock
  929. error:(void(^)(int error_code))errorBlock;
  930. /**
  931. 是否全局静音
  932. @return YES,当前用户全局静音;NO,没有全局静音
  933. */
  934. - (BOOL)isGlobalSlient;
  935. /**
  936. 修改全局静音状态
  937. @param slient 是否静音
  938. @param successBlock 成功的回调
  939. @param errorBlock 失败的回调
  940. */
  941. - (void)setGlobalSlient:(BOOL)slient
  942. success:(void(^)(void))successBlock
  943. error:(void(^)(int error_code))errorBlock;
  944. /**
  945. 是否隐藏推送详情
  946. @return YES,隐藏推送详情,提示“您收到一条消息”;NO,推送显示消息摘要
  947. */
  948. - (BOOL)isHiddenNotificationDetail;
  949. /**
  950. 修改全局静音状态
  951. @param hidden 是否静音
  952. @param successBlock 成功的回调
  953. @param errorBlock 失败的回调
  954. */
  955. - (void)setHiddenNotificationDetail:(BOOL)hidden
  956. success:(void(^)(void))successBlock
  957. error:(void(^)(int error_code))errorBlock;
  958. /**
  959. 是否隐藏群组会话中群成员昵称显示
  960. @return YES,群组会话中不显示群成员昵称;NO,显示
  961. */
  962. - (BOOL)isHiddenGroupMemberName:(NSString *)groupId;
  963. /**
  964. 修改隐藏群组会话中群成员昵称显示状态
  965. @param hidden 是否隐藏
  966. @param successBlock 成功的回调
  967. @param errorBlock 失败的回调
  968. */
  969. - (void)setHiddenGroupMemberName:(BOOL)hidden
  970. group:(NSString *)groupId
  971. success:(void(^)(void))successBlock
  972. error:(void(^)(int error_code))errorBlock;
  973. /**
  974. 当前用户是否启用消息回执功能,仅专业版有效
  975. @return YES,开启消息回执功能;NO,关闭个人的消息回执功能。
  976. @disscussion 仅当服务器开启这个功能才有效
  977. */
  978. - (BOOL)isUserEnableReceipt;
  979. /**
  980. 修改当前用户是否启用消息回执功能,仅专业版有效
  981. @param enable 是否开启
  982. @param successBlock 成功的回调
  983. @param errorBlock 失败的回调
  984. @disscussion 仅当服务器开启这个功能才有效
  985. */
  986. - (void)setUserEnableReceipt:(BOOL)enable
  987. success:(void(^)(void))successBlock
  988. error:(void(^)(int error_code))errorBlock;
  989. #pragma mark - 聊天室相关
  990. - (void)joinChatroom:(NSString *)chatroomId
  991. success:(void(^)(void))successBlock
  992. error:(void(^)(int error_code))errorBlock;
  993. - (void)quitChatroom:(NSString *)chatroomId
  994. success:(void(^)(void))successBlock
  995. error:(void(^)(int error_code))errorBlock;
  996. - (void)getChatroomInfo:(NSString *)chatroomId
  997. upateDt:(long long)updateDt
  998. success:(void(^)(WFCCChatroomInfo *chatroomInfo))successBlock
  999. error:(void(^)(int error_code))errorBlock;
  1000. - (void)getChatroomMemberInfo:(NSString *)chatroomId
  1001. maxCount:(int)maxCount
  1002. success:(void(^)(WFCCChatroomMemberInfo *memberInfo))successBlock
  1003. error:(void(^)(int error_code))errorBlock;
  1004. #pragma mark - 频道相关
  1005. - (void)createChannel:(NSString *)channelName
  1006. portrait:(NSString *)channelPortrait
  1007. status:(int)status
  1008. desc:(NSString *)desc
  1009. extra:(NSString *)extra
  1010. success:(void(^)(WFCCChannelInfo *channelInfo))successBlock
  1011. error:(void(^)(int error_code))errorBlock;
  1012. /**
  1013. 获取频道信息
  1014. @param channelId 频道ID
  1015. @param refresh 是否强制从服务器更新,如果不刷新则从本地缓存中读取
  1016. @return 群信息
  1017. */
  1018. - (WFCCChannelInfo *)getChannelInfo:(NSString *)channelId
  1019. refresh:(BOOL)refresh;
  1020. /**
  1021. 修改频道信息
  1022. @param channelId 群ID
  1023. @param type 要修改的群属性
  1024. @param newValue 要修改的群属性值
  1025. @param successBlock 成功的回调
  1026. @param errorBlock 失败的回调
  1027. */
  1028. - (void)modifyChannelInfo:(NSString *)channelId
  1029. type:(ModifyChannelInfoType)type
  1030. newValue:(NSString *)newValue
  1031. success:(void(^)(void))successBlock
  1032. error:(void(^)(int error_code))errorBlock;
  1033. /**
  1034. 搜索频道
  1035. @param keyword 关键词
  1036. @param successBlock 成功的回调
  1037. @param errorBlock 失败的回调
  1038. */
  1039. - (void)searchChannel:(NSString *)keyword success:(void(^)(NSArray<WFCCChannelInfo *> *machedChannels))successBlock error:(void(^)(int errorCode))errorBlock;
  1040. /**
  1041. 是否收听频道
  1042. @param channelId 频道ID
  1043. @return YES,收听;NO,未收听
  1044. */
  1045. - (BOOL)isListenedChannel:(NSString *)channelId;
  1046. /**
  1047. 收听或者取消收听频道
  1048. @param channelId 频道ID
  1049. @param listen 是否收听
  1050. @param successBlock 成功的回调
  1051. @param errorBlock 失败的回调
  1052. */
  1053. - (void)listenChannel:(NSString *)channelId listen:(BOOL)listen success:(void(^)(void))successBlock error:(void(^)(int errorCode))errorBlock;
  1054. /**
  1055. 获取当前用户创建的频道
  1056. @return 当前用户创建的频道ID
  1057. */
  1058. - (NSArray<NSString *> *)getMyChannels;
  1059. /**
  1060. 获取当前用户收听的频道
  1061. @return 当前用户收听的频道ID
  1062. */
  1063. - (NSArray<NSString *> *)getListenedChannels;
  1064. /**
  1065. 销毁频道
  1066. @param channelId 频道ID
  1067. @param successBlock 成功的回调
  1068. @param errorBlock 失败的回调
  1069. */
  1070. - (void)destoryChannel:(NSString *)channelId
  1071. success:(void(^)(void))successBlock
  1072. error:(void(^)(int error_code))errorBlock;
  1073. #pragma mark - 其它接口
  1074. /**
  1075. 获取PC在线信息
  1076. @return PC端在线状态
  1077. */
  1078. - (NSArray<WFCCPCOnlineInfo *> *)getPCOnlineInfos;
  1079. /**
  1080. 踢掉PC或者Web
  1081. @param pcClientId PC或Web端的clientId
  1082. @param successBlock 成功的回调
  1083. @param errorBlock 失败的回调
  1084. */
  1085. - (void)kickoffPCClient:(NSString *)pcClientId
  1086. success:(void(^)(void))successBlock
  1087. error:(void(^)(int error_code))errorBlock;
  1088. /**
  1089. 获取媒体文件授权访问地址
  1090. @param mediaType 媒体类型
  1091. @param mediaPath 媒体Path
  1092. @param successBlock 成功的回调
  1093. @param errorBlock 失败的回调
  1094. */
  1095. - (void)getAuthorizedMediaUrl:(WFCCMediaType)mediaType
  1096. mediaPath:(NSString *)mediaPath
  1097. success:(void(^)(NSString *authorizedUrl))successBlock
  1098. error:(void(^)(int error_code))errorBlock;
  1099. /**
  1100. 获取图片缩略图参数
  1101. @return 图片缩略图参数
  1102. */
  1103. - (NSString *)imageThumbPara;
  1104. /**
  1105. 开启数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;另外开启成功后一定要注意commit,需要配对使用.
  1106. @return 是否开启成功。
  1107. */
  1108. - (BOOL)beginTransaction;
  1109. /**
  1110. 提交数据库事务。注意:该方法仅仅在做数据迁移时使用,其它情况不要使用;需要跟beginTransaction配对使用
  1111. */
  1112. - (void)commitTransaction;
  1113. /**
  1114. 是否是商业版IM服务。
  1115. */
  1116. - (BOOL)isCommercialServer;
  1117. /**
  1118. 是否支持已送达报告和已阅读报告
  1119. */
  1120. - (BOOL)isReceiptEnabled;
  1121. @end