一、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;
複製程式碼
複製程式碼