当前位置: 首页 > news >正文

MobIM-API说明

一、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;
 
复制代码
复制代码


相关文章:

  • mysql5.5.15配置主从数据库
  • 京东美团研发面经
  • windos使用nslookup查询mx记录
  • canvas - drawImage()方法绘制图片不显示的问题
  • JavaScript的性能优化:加载和执行
  • 建站利器 | 阿里巴巴上线静态开源站点搭建工具 Docsite
  • 【SDOI2009】Bill的挑战
  • java与C#的简单比较
  • 关于malloc的一个未解决的疑问
  • ASP.NET Core 基本项目目录结构 - ASP.NET Core 基础教程 - 简单教程,简单编程
  • 配置Windows2008R2桌面体验
  • Proxmox-VE搭配Ceph存储组建高可用虚拟化平台
  • jeetsite 4.0 框架搭建入门
  • 微信5.0绑定银行卡教程
  • python第三周:集合、函数、编码、文件
  • 收藏网友的 源程序下载网
  • $translatePartialLoader加载失败及解决方式
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【前端学习】-粗谈选择器
  • Angular 响应式表单 基础例子
  • CentOS 7 防火墙操作
  • docker-consul
  • ESLint简单操作
  • gf框架之分页模块(五) - 自定义分页
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Python中eval与exec的使用及区别
  • Terraform入门 - 1. 安装Terraform
  • XML已死 ?
  • 干货 | 以太坊Mist负责人教你建立无服务器应用
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 使用Gradle第一次构建Java程序
  • 为视图添加丝滑的水波纹
  • 用element的upload组件实现多图片上传和压缩
  • Java数据解析之JSON
  • Linux权限管理(week1_day5)--技术流ken
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (01)ORB-SLAM2源码无死角解析-(56) 闭环线程→计算Sim3:理论推导(1)求解s,t
  • (1)Nginx简介和安装教程
  • (3)llvm ir转换过程
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (k8s中)docker netty OOM问题记录
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (三)uboot源码分析
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .Net CF下精确的计时器
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • /etc/shadow字段详解
  • :如何用SQL脚本保存存储过程返回的结果集
  • ?php echo ?,?php echo Hello world!;?
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思