一、MobIM類API說明
- 獲取當前用戶信息
/**
獲取當前用戶信息
@return 當前用戶
*/
+ (MIMUser * _Nullable)getCurrentUser;
- 獲取用戶管理者對象
/**
獲取用戶管理對象
@return 用戶管理對象
*/
+ (MIMUserManager *_Nonnull)getUserManager;
- 獲取聊天管理者對象
/**
獲取聊天管理對象
@return 聊天管理對象
*/
+ (MIMChatManager *_Nonnull)getChatManager;
- 獲取群組管理者對象
/**
獲取群組管理對象
@return 群組管理對象
*/
+ (MIMGroupManager *_Nonnull)getGroupManager;
- 相關連接監聽
/**
正在連接服務器
@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)
- 獲取本地提醒號列表
/**
獲取本地提醒號列表
@return 提醒號列表
*/
- (NSArray
- 獲取用戶名片,個人名片主要用於免打擾功能
/**
獲取用戶名片
@param userId 用戶id
@return 名片
*/
- (MIMVCard *)getVCardWithUserId:(NSString *)userId;
- 設置用戶是否免打擾
/**
設置用戶是否免打擾
@param userId 用戶id
@param isDisturb 是否免打擾
@return 是否設置成功
*/
- (BOOL)setUserToDisturbWithUserId:(NSString *)userId isDisturb:(BOOL)isDisturb;
- 添加、刪除黑名單
/**
添加到黑名單
@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;
- 獲取黑名單列表
/**
獲取當前用戶的黑名單列表
@param resultHandler 回調
*/
- (void)getBlackListWithResultHandler:(void (^)(NSArray
三、聊天管理類(MIMChatManager)
- 從網絡獲取所有會話列表,獲取完成後會緩存到MobIM本地,該接口一般只在首次啟動時調用
/**
獲取所有創建過的會話列表
@param completionHandler 完成回調
*/
- (void)getConversationListOnCompletion:(void (^)(NSArray
- 獲取本地會話列表,用戶app啟動時調用展示會話列表頁
/**
獲取本地會話列表
@param resultHandler 會話列表回調
*/
- (void)getLocalConversationList:(void (^)(NSArray
- 監聽本地會話列表變更,此接口與上述兩個接口配合使用
/**
監聽本地會話列表變更,當本地會話列表變化時通過block回調
@param resultHandler 會話列表變更回調,通過changeType判斷變更方式
*/
- (void)onLocalConversationListResultChanged:(void (^)(MIMConversation *changedConversation, NSFetchedResultsChangeType changeType))resultHandler;
- 獲取總未讀消息數並監聽變更
/**
獲取當前所有未讀消息並監聽變更,該方法會直接返回本地消息表中所有未讀消息,並且當本地消息表中的未讀消息變化時通過block回調實時總的未讀消息數
@param resultHandler 未讀消息變更回調
@return 未讀消息列表
*/
- (NSInteger)getAllUnreadMessagesOnResultChanged:(void (^)(NSInteger totalUnreadCount))resultHandler;
- 發送消息
/**
發送消息
@param msg 消息對象
@param completionHandler 發送完成回調
*/
- (void)sendMessage:(MIMMessage *)msg completion:(void (^)(MIMMessage *message, MIMError *error))completionHandler;
- 接收消息
/**
接收消息
@param handlerIdentifier 接收消息回調的唯一標識符,該標識不能為空或空字符串
@param messageHandler 處理接收到的消息block
*/
- (void)onMessageReceivedWithIdentifier:(NSString *)handlerIdentifier messageHandler:(void (^)(MIMMessage *message))messageHandler;
- 移除消息監聽,此接口配合上面接收消息的接口使用
/**
移除接收到消息的監聽block
@param handlerIdentifier block標識符
*/
- (void)removeMessageHandlerForIdentifier:(NSString *)handlerIdentifier;
- 刪除消息
/**
刪除一條或多條消息
@param messages 消息對象集合
@return 是否刪除成功
*/
- (BOOL)deleteMessages:(NSArray
/**
根據會話刪除某個會話所有消息
@param conversation 會話
@return 是否刪除成功
*/
- (BOOL)deleteAllMessagesInConversation:(MIMConversation *)conversation;
- 刪除會話
/**
刪除本地會話
@param conversations 要刪除的會話集合
@return 是否刪除成功
*/
- (BOOL)deleteLocalConversations:(NSArray
/**
刪除本地會話
@param conversationIds 要刪除的會話id集合
@return 是否刪除成功
*/
- (BOOL)deleteLocalConversationsByIds:(NSArray
- 更新消息狀態
/**
更新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;
- 查詢消息
/**
根據對方id查詢兩個人單聊的所有本地消息
@param otherId 對方AppUid
@param lastMessage 最後一條消息
@param pageSize 每次查詢多少條,若傳小於等於0時,默認每次查詢10條,若傳大於等於50時,默認只查50條
@return 消息列表
*/
- (NSArray
lastMessage:(MIMMessage *)lastMessage
pageSize:(NSInteger)pageSize;
/**
根據群組id查詢群組會話的所有本地消息
@param groupId 群組id
@param lastMessage 最後一條消息
@param pageSize 每次查詢多少條,若傳小於等於0時,默認每次查詢10條,若傳大於等於50時,默認只查50條
@return 消息列表
*/
- (NSArray
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
lastMessage:(MIMMessage *)lastMessage
pageSize:(NSInteger)pageSize;
四、群組管理類(MIMGroupManager)
- 創建群組
/**
創建群組
@param groupName 群組名稱
@param groupDesc 群組簡介
@param groupNoti 群組公告
@param groupMembers 群成員
@param resultHandler 回調處理
*/
- (void)createGroupWithGroupName:(NSString *)groupName
groupDesc:(NSString *)groupDesc
groupNoti:(NSString *)groupNoti
groupMembers:(NSArray
resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 修改群信息
/**
修改群名稱
@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;
- 修改群暱稱
/**
修改群暱稱
@param nickname 要修改的暱稱
@param groupId 群組ID
@param resultHandler 回調處理
*/
- (void)updateGroupNickname:(NSString *)nickname
inGroup:(NSString *)groupId
resultHandler:(void (^)(MIMVCard *card, MIMError *error))resultHandler;
- 增加、刪除群成員
/**
增加群成員
@param members 被添加人的id集合
@param groupId 要添加到的群組ID
@param resultHandler 回調處理
*/
- (void)addGroupMembers:(NSArray
toGroup:(NSString *)groupId
resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
/**
刪除群成員
@param members 要刪除的群成員MobUserId集合
@param groupId 群組id
@param resultHandler 回調處理
*/
- (void)deleteGroupMembers:(NSArray
inGroup:(NSString *)groupId
resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 退出群組
/**
退出群組
@param groupId 要退出的群組ID
@param resultHandler 回調處理
*/
- (void)exitGroupWithGroupId:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 轉讓群組
/**
轉讓群組
@param groupId 要轉讓的群組ID
@param toId 被轉讓人(群成員)的appUid
@param resultHandler 回調處理
*/
- (void)transferGroup:(NSString *)groupId
to:(NSString *)toId
resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 獲取群組信息
/**
獲取群組信息
@param options 選項,可以選擇群組信息,群成員列表,或者群信息+群成員
@param groupId 群組ID
@param resultHandler 回調處理
*/
- (void)getGroupInfoWithGroupId:(NSString *)groupId
options:(MIMGroupInfoOption)options
resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 加入群組
/**
加入群組
@param groupId 群組id
@param resultHandler 回調處理
*/
- (void)joinToGroup:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
- 獲取當前用戶的群組列表
/**
獲取當前用戶的群組列表
@param resultHandler 回調
*/
- (void)getUserGroupsWithResultHandler:(void (^)(NSArray
- 查找群組
/**
查找群組
@param groupId 群組id
@param resultHandler 回調
*/
- (void)findGroupBy:(NSString *)groupId resultHandler:(void (^)(MIMGroup *group, MIMError *error))resultHandler;
五、錯誤碼說明
錯誤信息都有錯誤碼 errorCode 和錯誤描述 errorDeion,根據錯誤描述瞭解具體錯誤情況,錯誤碼詳情請參閱:MIMErrorCode.h
/**
錯誤碼
*/
@property (nonatomic, assign) MIMErrorCode errorCode;
/**
錯誤描述
*/
@property (nonatomic, copy) NSString *errorDeion;
[ShareSDK] 輕鬆實現社會化功能 強大的社交分享
[SMSSDK] 快速集成短信驗證 聯結通訊錄社交圈
[MobLink] 打破App孤島 實現Web與App無縫鏈接
[MobPush] 快速集成推送服務 應對多樣化推送場景
[AnalySDK] 精準化行為分析 + 多維數據模型 + 匹配全網標籤 + 垂直行業分析顧問
BBSSDK | ShareREC | MobAPI | MobPay | ShopSDK | MobIM | App工廠
截止2018 年4 月,Mob 開發者服務平臺全球設備覆蓋超過84 億,SDK下載量超過3,300,000+次,服務超過380,000+款移動應用
閱讀更多 Mob開發者服務平臺 的文章