MobIM-API说明

一、MobIM类API说明

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;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 198,082评论 5 464
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,231评论 2 375
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 145,047评论 0 327
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,977评论 1 268
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,893评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,014评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,976评论 3 388
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,605评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,888评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,906评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,732评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,513评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,980评论 3 301
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,132评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,447评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,027评论 2 343
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,232评论 2 339

推荐阅读更多精彩内容