博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MobIM-API说明
阅读量:6471 次
发布时间:2019-06-23

本文共 9403 字,大约阅读时间需要 31 分钟。

hot3.png

一、MobIMAPI说明

1. 获取当前用户信息

/** 获取当前用户信息  @return 当前用户 */+ (MIMUser * _Nullable)getCurrentUser;

2. 获取用户管理者对象

/** 获取用户管理对象  @return 用户管理对象 */+ (MIMUserManager *_Nonnull)getUserManager;

3. 获取聊天管理者对象

/** 获取聊天管理对象  @return 聊天管理对象 */+ (MIMChatManager *_Nonnull)getChatManager;

4. 获取群组管理者对象

/** 获取群组管理对象  @return 群组管理对象 */+ (MIMGroupManager *_Nonnull)getGroupManager;

5. 相关连接监听

/** 正在连接服务器  @param connectingHandler 进行连接时回调 */+ (void)onConnecting:(void (^_Nullable)(MIMUser * _Nonnull currentUser))connectingHandler; /** 连接服务器成功  @param connectedHandler 连接成功时回调 */+ (void)onConnected:(void (^_Nullable)(MIMUser * _Nonnull currentUser))connectedHandler; /** 断开连接  @param disconnectedHandler 断开连接时回调 */+ (void)onDisConnected:(void (^_Nullable)(MIMError * _Nullable error))disconnectedHandler;

二、用户管理类(MIMUserManager

1. 获取本地提醒号列表

/** 获取本地提醒号列表  @return 提醒号列表 */- (NSArray<MIMUser *> *)getLocalNoticers;

2. 获取用户名片,个人名片主要用于免打扰功能

/** 获取用户名片  @param userId 用户id @return 名片 */- (MIMVCard *)getVCardWithUserId:(NSString *)userId;

3. 设置用户是否免打扰

/** 设置用户是否免打扰  @param userId 用户id @param isDisturb 是否免打扰 @return 是否设置成功 */- (BOOL)setUserToDisturbWithUserId:(NSString *)userId isDisturb:(BOOL)isDisturb;

4. 添加、删除黑名单

/** 添加到黑名单  @param userId 要添加的人的appUserId @param resultHandler 回调,添加成功则返回被添加到黑名单的用户信息 */- (void)addToBlackListWithUserId:(NSString *)userId resultHandler:(void (^)(MIMUser *user, MIMError *error))resultHandler; /** 删除黑名单  @param userId 要删除的人的appUserId @param resultHandler 回调,删除成功则返回从黑名单中删除的用户信息 */- (void)deleteBlackListWithUserId:(NSString *)userId resultHandler:(void (^)(MIMUser *user, MIMError *error))resultHandler;

5. 获取黑名单列表

/** 获取当前用户的黑名单列表  @param resultHandler 回调 */- (void)getBlackListWithResultHandler:(void (^)(NSArray<MIMUser *> *blackList, MIMError *error))resultHandler;

三、聊天管理类(MIMChatManager

1. 从网络获取所有会话列表,获取完成后会缓存到MobIM本地,该接口一般只在首次启动时调用

/** 获取所有创建过的会话列表  @param completionHandler 完成回调 */- (void)getConversationListOnCompletion:(void (^)(NSArray<MIMConversation *> *conversationList, MIMError *error))completionHandler;

2. 获取本地会话列表,用户app启动时调用展示会话列表页

/** 获取本地会话列表  @param resultHandler 会话列表回调 */- (void)getLocalConversationList:(void (^)(NSArray<MIMConversation *> *conversationList))resultHandler;

3. 监听本地会话列表变更,此接口与上述两个接口配合使用

/** 监听本地会话列表变更,当本地会话列表变化时通过block回调  @param resultHandler 会话列表变更回调,通过changeType判断变更方式 */- (void)onLocalConversationListResultChanged:(void (^)(MIMConversation *changedConversation, NSFetchedResultsChangeType changeType))resultHandler;

4. 获取总未读消息数并监听变更

/** 获取当前所有未读消息并监听变更,该方法会直接返回本地消息表中所有未读消息,并且当本地消息表中的未读消息变化时通过block回调实时总的未读消息数  @param resultHandler 未读消息变更回调 @return 未读消息列表 */- (NSInteger)getAllUnreadMessagesOnResultChanged:(void (^)(NSInteger totalUnreadCount))resultHandler;

5. 发送消息

/** 发送消息  @param msg 消息对象 @param completionHandler 发送完成回调 */- (void)sendMessage:(MIMMessage *)msg completion:(void (^)(MIMMessage *message, MIMError *error))completionHandler;

6. 接收消息

/** 接收消息  @param handlerIdentifier 接收消息回调的唯一标识符,该标识不能为空或空字符串 @param messageHandler 处理接收到的消息block */- (void)onMessageReceivedWithIdentifier:(NSString *)handlerIdentifier messageHandler:(void (^)(MIMMessage *message))messageHandler;

7. 移除消息监听,此接口配合上面接收消息的接口使用

/** 移除接收到消息的监听block  @param handlerIdentifier block标识符 */- (void)removeMessageHandlerForIdentifier:(NSString *)handlerIdentifier;

8. 删除消息

/** 删除一条或多条消息  @param messages 消息对象集合 @return 是否删除成功 */- (BOOL)deleteMessages:(NSArray<MIMMessage *> *)messages; /** 根据会话删除某个会话所有消息  @param conversation 会话 @return 是否删除成功 */- (BOOL)deleteAllMessagesInConversation:(MIMConversation *)conversation;

9. 删除会话

/** 删除本地会话  @param conversations 要删除的会话集合 @return 是否删除成功 */- (BOOL)deleteLocalConversations:(NSArray<MIMConversation *> *)conversations; /** 删除本地会话  @param conversationIds 要删除的会话id集合 @return 是否删除成功 */- (BOOL)deleteLocalConversationsByIds:(NSArray<NSString *> *)conversationIds;

10. 更新消息状态

/** 更新Message为已读状态  @param message 消息 @return 是否更新成功 */- (BOOL)updateMessageToReaded:(MIMMessage *)message; /** 根据Conversation更新所有Message为已读状态  @param conversation 会话 @return 是否更新成功 */- (BOOL)updateMessagesToReadedInConversation:(MIMConversation *)conversation; /** 更新语音消息为已听取状态  @param aVoiceMessage 语音消息 @return 是否更新成功 */- (BOOL)updateVoiceMessageToListened:(MIMMessage *)aVoiceMessage; /** 更新附件消息下载状态  @param newStatus 新下载状态 @param message 附件消息 @return 是否更新成功 */- (BOOL)updateAttachDownloadStatus:(MIMDownloadStatus)newStatus withMessage:(MIMMessage *)message;

11. 查询消息

/** 根据对方id查询两个人单聊的所有本地消息  @param otherId 对方AppUid @param lastMessage 最后一条消息 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条 @return 消息列表 */- (NSArray<MIMMessage *> *)fetchSingleChatMessagesByOtherId:(NSString *)otherId                                                lastMessage:(MIMMessage *)lastMessage                                                   pageSize:(NSInteger)pageSize; /** 根据群组id查询群组会话的所有本地消息  @param groupId 群组id @param lastMessage 最后一条消息 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条 @return 消息列表 */- (NSArray<MIMMessage *> *)fetchGroupChatMessagesByGroupId:(NSString *)groupId                                                lastMessage:(MIMMessage *)lastMessage                                                   pageSize:(NSInteger)pageSize;  /** 根据会话ID查询该会话的最后一条消息  @param conversationId 会话id @return 该会话的最后一条消息 */- (MIMMessage*)fetchLastMessageByConversationId:(NSString *)conversationId; /** 根据会话ID查询该会话所有消息  @param conversationId 会话id @param lastMessage 最后一条消息 @param pageSize 每次查询多少条,若传小于等于0时,默认每次查询10条,若传大于等于50时,默认只查50条 @return 消息列表 */- (NSArray<MIMMessage *> *)fetchAllMessagesByConversationId:(NSString *)conversationId                                                lastMessage:(MIMMessage *)lastMessage                                                   pageSize:(NSInteger)pageSize;

四、群组管理类(MIMGroupManager

1. 创建群组

/** 创建群组  @param groupName 群组名称 @param groupDesc 群组简介 @param groupNoti 群组公告 @param groupMembers 群成员 @param resultHandler 回调处理 */- (void)createGroupWithGroupName:(NSString *)groupName                       groupDesc:(NSString *)groupDesc                       groupNoti:(NSString *)groupNoti                    groupMembers:(NSArray<NSString *> *)groupMembers                   resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

2. 修改群信息

/** 修改群名称  @param groupName 群名称 @param groupId 群id @param resultHandler 回调 */- (void)updateGroupName:(NSString *)groupName            withGroupId:(NSString *)groupId          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler; /** 修改群简介  @param groupDesc 群简介 @param groupId 群id @param resultHandler 回调 */- (void)updateGroupDesc:(NSString *)groupDesc            withGroupId:(NSString *)groupId          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler; /** 修改群公告  @param groupNoti 群公告 @param groupId 群id @param resultHandler 回调 */- (void)updateGroupNotice:(NSString *)groupNoti              withGroupId:(NSString *)groupId            resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

3. 修改群昵称

/** 修改群昵称  @param nickname 要修改的昵称 @param groupId 群组ID @param resultHandler 回调处理 */- (void)updateGroupNickname:(NSString *)nickname                    inGroup:(NSString *)groupId              resultHandler:(void (^)(MIMVCard *card, MIMError *error))resultHandler;

4. 增加、删除群成员

/** 增加群成员  @param members 被添加人的id集合 @param groupId 要添加到的群组ID @param resultHandler 回调处理 */- (void)addGroupMembers:(NSArray<NSString *> *)members                toGroup:(NSString *)groupId          resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler; /** 删除群成员  @param members 要删除的群成员MobUserId集合 @param groupId 群组id @param resultHandler 回调处理 */- (void)deleteGroupMembers:(NSArray<NSString *> *)members                   inGroup:(NSString *)groupId             resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

5. 退出群组

/** 退出群组  @param groupId 要退出的群组ID @param resultHandler 回调处理 */- (void)exitGroupWithGroupId:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

6. 转让群组

/** 转让群组  @param groupId 要转让的群组ID @param toId 被转让人(群成员)的appUid @param resultHandler 回调处理 */- (void)transferGroup:(NSString *)groupId                   to:(NSString *)toId        resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

7. 获取群组信息

/** 获取群组信息  @param options 选项,可以选择群组信息,群成员列表,或者群信息+群成员 @param groupId 群组ID @param resultHandler 回调处理 */- (void)getGroupInfoWithGroupId:(NSString *)groupId                        options:(MIMGroupInfoOption)options                  resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

8. 加入群组

/** 加入群组  @param groupId 群组id @param resultHandler 回调处理 */- (void)joinToGroup:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

9. 获取当前用户的群组列表

/** 获取当前用户的群组列表  @param resultHandler 回调 */- (void)getUserGroupsWithResultHandler:(void (^)(NSArray<MIMGroup *> *groupList, MIMError *error))resultHandler;

10. 查找群组

/** 查找群组  @param groupId 群组id @param resultHandler 回调 */- (void)findGroupBy:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;

五、错误码说明

错误信息都有错误码 errorCode 和错误描述 errorDescription,根据错误描述了解具体错误情况,错误码详情请参阅:MIMErrorCode.h

/** 错误码 */@property (nonatomic, assign) MIMErrorCode errorCode; /** 错误描述 */@property (nonatomic, copy) NSString *errorDescription;

 

 

 

 

转载于:https://my.oschina.net/u/3773669/blog/2218837

你可能感兴趣的文章
leveldb学习:DBimpl
查看>>
[Recompose] Stream Props to React Children with RxJS
查看>>
打印图片
查看>>
SHOW CREATE DATABASE Syntax
查看>>
rsync常见问题及解决办法
查看>>
AKM项目轶事之GBS同事转入GDC
查看>>
MySQL日期 专题
查看>>
C#中禁止程序多开
查看>>
分布式缓存Redis使用以及原理
查看>>
[LeetCode] Number of 1 Bits 位操作
查看>>
练习二:结对练习
查看>>
JSON中JObject和JArray,JValue序列化(Linq)
查看>>
杂七杂八
查看>>
Activity竟然有两个onCreate方法,可别用错了
查看>>
Linux经常使用命令(十六) - whereis
查看>>
Tomcat
查看>>
插件编译 版本问题
查看>>
android中TextView的阴影设置
查看>>
core dump相关
查看>>
MySQL如何导出带日期格式的文件
查看>>