iOS 集成文档
API 概览
即时通讯 IM 是一个高度可靠的全球通信平台,用户可以进行单聊、群组聊天或聊天室聊天。用户可以通过发送文本消息、分享图片、音频、视频、文件、表情符号和位置进行沟通。
ChatClient
类是聊天 SDK 的入口,提供登录和登出即时通讯 IM 的方法,并管理 SDK 与聊天服务器之间的连接。ChatManager
类提供发送和接收消息、管理会话(包括加载和删除会话)以及下载附件的方法。ChatMessage
类定义消息的属性。Conversation
类提供管理会话的方法。ContactManager
类提供管理聊天联系人(如添加、获取、修改和删除联系人)的方法。GroupManager
类提供群组管理的方法,如群组创建和解散以及成员管理。ChatRoomManager
类提供聊天室管理的方法,如加入和离开聊天室、获取聊天室列表,以及管理成员权限。PresenceManager
类提供管理用户在线状态订阅的方法。ChatThreadManager
类提供了管理子区的方法,包括创建、解散子区以及成员管理。PushManager
类提供了配置离线推送服务的方法。UserInfoManager
类提供了管理用户属性的方法,包括获取和更新用户属性。
如欲了解各类中的方法和参数详情,请点击这里open in new window。
连接与初始化
ChatClient
类提供登录和登出即时通讯 IM 的方法和事件,并管理 SDK 与聊天服务器之间的连接。
方法 | 描述 |
---|
initializeSDKWithOptions: | 初始化 SDK。 |
loginWithUsername:token:completion: | 使用用户 ID 和 token 登录聊天服务器。 |
renewToken: | 更新 token。 |
logout:completion: | 退出登录账号。 |
currentUsername | 获取当前登录用户的用户 ID。 |
isConnected | 检查 SDK 是否已连接到聊天服务器。 |
isLoggedIn | 检查用户是否已登录聊天应用。 |
addDelegate: | 添加代理。 |
addLogDelegate:delegateQueue: | 添加 SDK 的日志回调代理。 |
groupManager | 获取 GroupManager 类。 |
pushManager | 获取 PushManager 类。 |
roomManager | 获取 RoomManager 类。 |
chatManager | 获取 ChatManager 类。 |
userInfoManager | 获取 UserInfoManager 类。 |
contactManager | 获取 ContactManager 类。 |
presenceManager | 获取 presenceManager 类。 |
threadManager | 获取 ChatThreadManager 类。 |
事件 | 描述 |
---|
connectionStateDidChange: | 当 SDK 连接状态发生变化时触发。 |
tokenDidExpire: | 当 token 过期时触发。 |
tokenWillExpire: | 当 token 即将过期时触发。 |
autoLoginDidCompleteWithError: | 当 SDK 自动登录成功或失败时触发。 |
logDidOutput: | 当有日志输出时触发。 |
onOfflineMessageSyncStart | 开始从服务器拉取离线消息时触发。 |
onOfflineMessageSyncFinish | 从服务器拉取离线消息结束时触发。 |
发送消息
ChatManager
类提供发送和接收消息、管理会话(包括加载和删除会话)以及下载附件的方法和事件。ChatManagerDelegate
类提供消息状态事件,包括消息发送或下载成功和失败以及上传或下载进度。
方法 | 描述 |
---|
sendMessage:progress:completion: | 发送消息。 |
ackConversationRead:completion: | 向服务器发送会话已读回执。 |
sendMessageReadAck:toUser:completion: | 向服务器发送消息已读回执。 |
sendGroupMessageReadAck:toGroup:content:completion: | 向服务器发送群消息的已读回执。 |
getConversation:type:createIfNotExist: | 根据会话ID获取会话对象。 |
importMessages:completion: | 将消息导入内存和本地数据库。 |
updateMessage:completion: | 更新本地消息。 |
downloadMessageAttachment:progress:completion: | 下载消息附件。 |
downloadMessageThumbnail:progress:completion: | 下载消息缩略图。 |
getAllConversations | 获取所有本地会话。 |
getConversationsFromServer: | 从服务器获取会话列表。 |
getConversationsFromServerByPage | 从服务器分页获取会话列表。 |
deleteConversations:isDeleteMessages:completion: | 从本地数据库中删除会话及其本地消息。 |
deleteServerConversation | 从服务器删除指定会话及其历史消息。 |
fetchGroupReadAcks | 从服务器分页获取群消息的已读回执。 |
loadMessages | 从本地数据库中检索特定类型的消息。 |
deleteMessagesBeforeTimestamp | 删除时间戳在指定时间之前的本地历史消息。 |
reportMessageWithId:tag:reason:completion: | 举报不当消息。 |
fetchSupportedLanguages: | 获取翻译服务支持的所有语言。 |
translateMessage:targetLanguages:completion: | 翻译文本消息。 |
addReaction:toMessage:completion: | 添加 Reaction。 |
removeReaction:fromMessage:completion: | 删除 Reaction。 |
getReactionList | 获取 Reaction 列表。 |
getReactionDetail | 获取 Reaction 详情。 |
addDelegate | 添加消息监听器。 |
pinMessage | 置顶消息。 |
unpinMessage | 取消置顶消息。 |
modifyMessage | 修改消息。 |
fetchMessagesFromServer | 从服务器拉取历史消息。 |
事件 | 描述 |
---|
messagesDidReceive: | 当收到消息时触发。 |
cmdMessagesDidReceive: | 当收到透传消息时触发。 |
messagesDidRead: | 当收到消息的已读回执时触发。 |
groupMessageDidRead:groupAcks: | 当收到群消息的已读回执时触发。 |
groupMessageAckHasChanged | 当收到群消息已读状态更新时触发。 |
messagesDidDeliver: | 当收到送达回执时触发。 |
messagesInfoDidRecall: | 当收到的消息被撤回时触发。 |
messageStatusDidChange | 当收到消息状态变更通知时触发,包括消息 ID 的变更。 |
messageReactionDidChange: | 当消息 Reaction 发生变化时触发。 |
conversationListDidUpdate: | 当会话列表更新时触发。 |
onConversationRead:to: | 当收到会话已读回执时触发。 |
onMessagePinChanged | 当消息置顶状态发生变更时触发。 |
onMessageContentChanged | 当消息内容变更时触发。 |
会话和消息
Message
类定义消息的属性。Conversation
类提供管理会话的方法。
方法 | 描述 |
---|
Conversation.conversationId | 获取会话 ID,具体取决于会话类型。 |
Conversation.unreadMessagesCount | 获取会话中的未读消息数量。 |
Conversation.markAllMessagesAsRead: | 将所有未读消息标记为已读。 |
Conversation.messagesCount | 获取本地数据库中会话的所有消息数量。 |
Conversation.isChatThread | 检查当前会话是否为子区会话。 |
Conversation.loadMoreMsgFromDB | 从本地数据库加载消息,从特定消息 ID 开始。 |
Conversation.markMessageAsRead | 将特定消息标记为已读。 |
Conversation.deleteMessageWithId:error: | 在本地数据库中删除特定消息。 |
Conversation.latestMessage | 获取会话中的最新消息。 |
Conversation.lastReceivedMessage | 获取会话中的最新接收消息。 |
Conversation.deleteAllMessages: | 删除会话中的所有消息。 |
Conversation.ext | 会话的扩展字段。 |
Conversation.insertMessage | 在本地数据库中向会话插入消息。 |
Conversation.appendMessage | 在本地数据库中将消息插入到会话的末尾。 |
Conversation.updateMessage | 更新本地数据库中的消息。 |
Message.status | 消息发送或接收状态。 |
Message.chatType | 获取聊天消息类型。 |
Message.body | 消息正文。 |
Message.timestamp | 服务器接收消息时的 Unix 时间戳。 |
Message.localTime | 消息的本地时间戳。 |
Message.isChatThreadMessage | 消息是否为子区消息。 |
Message.chatThread | 获取子区的概述。 |
Message.from | 获取消息发送者的用户 ID。 |
Message.to | 消息接收者的用户 ID。 |
Message.messageId | 消息 ID。 |
Message.ext | 消息的扩展属性,类型为字典。 |
Message.isRead | 消息是否已读。 |
Message.isDeliverAcked | 消息是否已成功送达。 |
Message.isListened | 语音消息是否已被收听。 |
Message.direction | 消息的收发方向。 |
Message.conversationId | 获取会话 ID。 |
Message.reactionList | 获取 Reaction 列表。 |
Message.onlineState | 是否在线消息。 |
Message.pinnedInfo | 消息的置顶操作信息。 |
群组
GroupManager
类提供群组管理的方法,如群组创建和解散以及成员管理。GroupManagerDelegate
类提供群组管理事件监听。
方法 | 描述 |
---|
createGroup | 创建群组。 |
destroyGroup | 销毁群组。 |
leaveGroup | 离开群组。 |
joinPublicGroup | 加入一个公共群组。 |
addMembers | 将用户添加到群组中。 |
removeMembersFromGroup | 从群组中移除成员。 |
getGroupSpecificationFromServerWithId | 从服务器获取群组信息。 |
getJoinedGroupsFromServerWithPage | 从服务器分页获取当前用户的所有群组。 |
getPublicGroupsFromServer | 从服务器分页获取公开群组。 |
updateGroupSubject | 更改群组名称。 |
updateDescription | 更改群组描述。 |
acceptInvitationFromGroup | 接受群组邀请。 |
declineGroupInvitation | 拒绝群组邀请。 |
acceptJoinApplication | 批准群组请求。 |
declineJoinGroupRequest | 拒绝群组请求。 |
requestToJoinPublicGroup | 请求加入公共群组。 |
blockGroup | 阻止群组消息。 |
unblockGroup | 取消阻止群组消息。 |
blockMembers | 将用户添加到群组黑名单。 |
unblockMembers | 从群组黑名单中移除用户。 |
getGroupBlacklistFromServer | 获取群组黑名单(带分页)。 |
getGroupMemberListFromServer | 获取群组成员列表(带分页)。 |
updateGroupOwner | 转移群组所有权。 |
addAdmin | 添加群组管理员。 |
removeAdmin | 移除群组管理员。 |
muteMembers | 禁言群组成员。 |
unmuteMembers | 取消禁言群组成员。 |
getGroupMuteListFromServer | 从服务器获取群组禁言列表。 |
getGroupBlacklistFromServer | 从服务器获取群组黑名单(带分页)。 |
addWhiteListMembers | 将成员添加到白名单列表。 |
removeWhiteListMembers | 从白名单列表中移除成员。 |
getGroupWhiteListFromServer | 从服务器获取群组白名单列表。 |
updateGroupAnnouncement | 更新群组公告。 |
asyncFetchGroupAnnouncement | 从服务器获取群组公告。 |
uploadGroupSharedFileWithId | 上传群组共享文件。 |
getGroupFileList | 从服务器获取共享文件列表。 |
removeGroupSharedFile | 移除群组共享文件。 |
downloadGroupSharedFile | 下载群组共享文件。 |
getJoinedGroups | 获取当前用户的所有群组(从缓存中)。 |
addDelegate | 添加群组变更监听器。 |
事件 | 描述 |
---|
groupInvitationDidReceive | 当用户收到群组邀请时触发。 |
joinGroupRequestDidReceive | 当群组所有者或管理员收到用户的加入请求时触发。 |
joinGroupRequestDidApprove | 当群组请求被接受时触发。 |
joinGroupRequestDidDecline | 当群组请求被拒绝时触发。 |
groupInvitationDidAccept | 当群组邀请被接受时触发。 |
groupInvitationDidDecline | 当群组邀请被拒绝时触发。 |
didJoinGroup:inviter:message: | 当群组邀请自动接受时触发。 |
didLeaveGroup | 当当前用户被群组管理员移除时触发。 |
groupMuteListDidUpdate:addedMutedMembers:muteExpire: | 当一个或多个群组成员被禁言时触发。 |
groupMuteListDidUpdate | 当一个或多个群组成员被取消禁言时触发。 |
groupWhiteListDidUpdate:addedWhiteListMembers: | 当一个或多个群组成员被添加到白名单列表时触发。 |
groupWhiteListDidUpdate:removedWhiteListMembers: | 当一个或多个成员从白名单列表中移除时触发。 |
groupAllMemberMuteChanged | 当所有群组成员被禁言或取消禁言时触发。 |
groupAdminListDidUpdate:addedAdmin: | 当某个成员被设置为管理员时触发。 |
groupAdminListDidUpdate:removedAdmin: | 当某个成员的管理员权限被移除时触发。 |
groupOwnerDidUpdate | 当群组所有权被转移时触发。 |
userDidJoinGroup | 当某个成员加入群组时触发。 |
userDidLeaveGroup | 当某个成员主动离开群组时触发。 |
groupAnnouncementDidUpdate | 当公告被更新时触发。 |
onSharedFileAdded | 当共享文件被添加到群组时触发。 |
onSharedFileDeleted | 当共享文件从群组中移除时触发。 |
groupSpecificationDidUpdate | 当群组详细信息被更新时触发。 |
groupStateChanged | 当群组被启用或禁用时触发。 |
子区
ChatThreadManager
类提供了管理子区的方法,包括创建、解散子区以及成员管理。ThreadManagerDelegate
类提供子区事件监听。
方法 | 描述 |
---|
createChatThread | 创建Thread。 |
joinChatThread | 加入Thread。 |
destroyChatThread | 销毁Thread。 |
leaveChatThread | 离开Thread。 |
getChatThreadFromServer | 从服务器获取子区的详细信息。 |
updateChatThreadName | 更改子区的名称。 |
removeMemberFromChatThread | 从子区中移除成员。 |
getChatThreadMembers | 分页获取子区中的成员列表。 |
getJoinedChatThreadsFromServer | 分页获取当前用户已加入的子区列表。 |
getJoinedChatThreadsFromServer | 分页获取当前用户在指定组中已加入的子区列表。 |
getChatThreadsFromServer | 分页获取指定组中的子区列表。 |
getChatThreadLatestMessage | 从服务器获取指定子区的最后一条回复。 |
addChatThreadChangeListener | 添加Thread事件监听器,监听子区的变化,例如子区的创建和销毁。 |
事件 | 描述 |
---|
onChatThreadCreate | 当子区被创建时触发。 |
onChatThreadUpdate | 当子区被更新时触发。 |
onChatThreadDestroy | 当子区被销毁时触发。 |
onUserKickOutOfChatThread | 当当前用户被群主或群管理员从子区中移除时触发。 |
聊天室
ChatRoomManager
类提供聊天室管理的方法,如加入和离开聊天室、获取聊天室列表,以及管理成员权限。ChatRoomManagerDelegate
类提供聊天室事件监听。
方法 | 描述 |
---|
createChatRoom | 创建聊天室。 |
destroyChatroom | 销毁聊天室。 |
joinChatRoom | 加入聊天室。 |
leaveChatroom | 退出聊天室。 |
getChatroomsFromServer | 从服务器获取聊天室数据,支持分页。 |
getChatroomSpecificationFromServer | 从服务器获取聊天室的详细信息。 |
asyncChangeChatRoomSubject | 修改聊天室名称。 |
updateSubject | 修改聊天室描述。 |
getChatroomMemberListFromServer | 获取聊天室成员列表。 |
muteMembers | 在聊天室中禁言成员。 |
unmuteMembers | 在聊天室中取消禁言成员。 |
addAdmin | 添加聊天室管理员。 |
removeAdmin | 移除聊天室管理员的管理权限。 |
getChatroomMuteListFromServer | 从服务器获取禁言聊天室成员列表。 |
removeMembers | 从聊天室中移除成员。 |
blockMembers | 将成员添加到聊天室的黑名单中。 |
unblockMembers | 从聊天室的黑名单中移除成员。 |
getChatroomBlacklistFromServer | 获取聊天室黑名单,支持分页。 |
addWhiteListMembers | 将成员添加到聊天室的白名单中。 |
removeWhiteListMembers | 从聊天室的白名单中移除成员。 |
getChatroomWhiteListFromServer | 从服务器获取聊天室的白名单。 |
muteAllMembers | 禁言所有成员。 |
unmuteAllMembers | 取消禁言所有成员。 |
updateChatroomAnnouncement | 更新聊天室公告。 |
getChatroomAnnouncement | 从服务器获取聊天室公告。 |
setChatroomAttributes | 添加自定义聊天室属性。 |
setChatroomAttribute | 设置自定义聊天室属性。 |
setChatroomAttributesForced | 强制设置自定义聊天室属性。 |
setChatroomAttributeForced | 强制设置自定义聊天室属性。 |
fetchChatroomAttributes | 根据属性键列表获取聊天室的自定义属性列表。 |
fetchChatroomAllAttributes | 获取聊天室的所有自定义属性。 |
removeChatroomAttributes | 根据属性键列表移除自定义聊天室属性。 |
removeChatroomAttribute | 移除自定义聊天室属性。 |
removeChatroomAttributesForced | 强制移除自定义聊天室属性。 |
removeChatroomAttributeForced | 强制移除自定义聊天室属性。 |
addDelegate | 添加聊天室事件监听器。 |
事件 | 描述 |
---|
didDismissFromChatroom | 当前用户被移出聊天室时触发。 |
userDidJoinChatroom | 当其他成员加入聊天室时触发。 |
userDidLeaveChatroom | 当其他成员退出聊天室时触发。 |
onMuteListAdded | 当聊天室成员被添加到禁言列表时触发。 |
onMuteListRemoved | 当聊天室成员从禁言列表中移除时触发。 |
onWhiteListAdded | 当聊天室成员被添加到白名单时触发。 |
onWhiteListRemoved | 当聊天室成员从白名单中移除时触发。 |
chatroomAllMemberMuteChanged | 当聊天室中的全员禁言状态变更时触发。 |
onAdminAdded | 当聊天室成员被设置为管理员时触发。 |
onAdminRemoved | 当聊天室成员从管理员列表中移除时触发。 |
chatroomOwnerDidUpdate | 当聊天室的拥有者更改时触发。 |
chatroomAnnouncementDidUpdate | 当聊天室公告更改时触发。 |
chatroomSpecificationDidUpdate: | 当聊天室详情更改时触发。 |
chatroomAttributesDidUpdated | 当自定义聊天室属性更新时触发。 |
chatroomAttributesDidRemoved | 当自定义聊天室属性被移除时触发。 |
联系人
ContactManager
类提供管理聊天联系人(如添加、获取、修改和删除联系人)的方法。ContactManagerDelegate
类提供联系人事件监听。
方法 | 描述 |
---|
getContactsFromServerWithCompletion: | 从服务器获取所有联系人。 |
addUserToBlackList | 将用户添加到黑名单。 |
removeUserFromBlackList | 从黑名单中移除联系人。 |
getBlackList | 获取本地黑名单。 |
getBlackListFromServerWithCompletion: | 从服务器获取黑名单。 |
approveFriendRequestFromUser | 接受好友邀请。 |
declineFriendRequestFromUser | 拒绝好友邀请。 |
getContacts | 从本地数据库获取联系人列表。 |
getSelfIdsOnOtherPlatformWithCompletion: | 获取当前用户在其他设备上的唯一自我ID列表。 |
addDelegate | 添加联系人变更监听。 |
事件 | 描述 |
---|
friendshipDidAddByUser: | 当用户被其他用户添加为联系人时触发。 |
friendshipDidRemoveByUser: | 当用户被其他用户从联系人列表中移除时触发。 |
friendRequestDidReceiveFromUser:message: | 当用户收到好友请求时触发。 |
friendRequestDidApproveByUser: | 当好友请求被批准时触发。 |
onFriendRequestDeclined | 当好友请求被拒绝时触发。 |
用户在线状态订阅
PresenceManager
类提供管理用户在线状态订阅的方法。PresenceManagerDelegate
类提供订阅用户状态变更监听。
方法 | 描述 |
---|
publishPresence | 发布自定义的在线状态。 |
subscribePresences | 订阅用户的在线状态。 |
unsubscribePresences | 取消订阅用户的在线状态。 |
fetchSubscribedMembers | 使用分页获取已订阅的用户的列表。 |
fetchPresenceStatus | 获取用户的当前在线状态。 |
addDelegate | 添加监听器。 |
事件 | 描述 |
---|
presenceStatusDidChanged: | 当订阅的用户的在线状态更新时触发。 |
用户属性
UserInfoManager
类提供了管理用户属性的方法,包括获取和更新用户属性。
方法 | 描述 |
---|
updateOwnInfo | 修改当前用户的用户属性。 |
updateOwnInfoByAttribute | 修改当前用户的用户属性。 |
fetchUserInfoByUserId | 根据用户 ID 获取用户属性。 |
fetchUserInfoByAttribute | 根据用户 ID 和属性类型获取用户属性。 |
离线推送
PushManager
类提供了配置离线推送服务的方法。
方法 | 描述 |
---|
getPushConfigsFromServer | 从服务器获取推送配置。 |
updatePushDisplayName | 更新当前用户的推送显示昵称。 |
setSilentModeForConversation | 修改会话的免打扰设置。 |
clearRemindTypeForConversation | 清除会话的离线推送通知类型设置。 |
getSilentModeForConversation | 获取会话的免打扰设置。 |
setSilentModeForAll | 设置当前登录用户的免打扰设置。 |
getSilentModeForAll | 获取当前登录用户的免打扰设置。 |
getSilentModeForConversations | 批量获取指定会话的免打扰设置。 |
bindDeviceToken | 绑定 APNs Token。 |
registerPushKitToken | 绑定 VoIP Token。 |