聊天管理类,该类负责管理会话(加载,删除等)、发送消息、下载消息附件等。

发送文本消息示例如下:

let textMessage = ChatMessage.createTextSendMessage(content, toChatUserId);
ChatClient.getInstance().chatManager()?.sendMessage(textMessage);

Constructors

Methods

  • 发送会话的已读回执。

    该方法会通知服务器将此会话未读数设置为 0,消息发送方将会收到 ConversationListener#onConversationRead 回调。

    在多端多设备登录下,接收方的其他设备也会收到该回调。

    Parameters

    • conversationId: string

      会话 ID。

    Returns void

  • 发送消息的已读回执。

    该方法仅适用于单聊会话,仅在 ChatOptions#setRequireReadAcktrue 时生效。

    发送群消息已读回执,详见 ackGroupMessageRead

    推荐进入聊天页面时调用 ackConversationRead ,其他情况下调用该方法以减少调用频率。

    Parameters

    • to: string

      已读回执的接收人的用户 ID。

    • messageId: string

      已读回执的消息 ID。

    Returns void

  • 注册会话监听器。

    在不需要会话监听器时,可调用 removeConversationListener 方法将其移除。

    Parameters

    Returns void

  • 标记会话。

    调用该方法会同时为本地和服务器端的会话添加标记。

    Parameters

    • conversationIds: string | string[]

      会话 ID 列表。

    • mark: MarkType

      要添加的会话标记。

    Returns Promise<void>

    • 返回标记会话的 Promise 结果。
  • 注册消息监听器。

    接收到新消息等回调可以通过设置此方法进行监听。

    在不需要消息监听器时,可调用 removeMessageListener 方法将其移除。

    Parameters

    Returns void

  • 给指定消息添加 Reaction。

    Parameters

    • messageId: string

      消息 ID。

    • reaction: string

      要添加的消息 Reaction。

    Returns Promise<void>

    • 返回添加 Reaction 的 Promise 结果。
  • Parameters

    Returns void

  • 删除指定会话及其本地历史消息。

    Parameters

    • conversationId: string

      会话 ID。

    • isRemoveMessages: boolean

      删除会话时是否同时删除本地的历史消息。

    Returns boolean

    • 返回删除会话的结果。
  • 删除服务端的指定会话及其历史消息。

    Parameters

    • conversationId: string

      会话 ID。

    • type: ConversationType

      会话类型。

    • isDeleteServerMessages: boolean

      删除服务端会话及其历史消息成功与否的回调。

      • true:是;
      • false: 否。

    Returns Promise<void>

    • 返回删除服务端会话及其历史消息成功与否的 promise 结果。
  • 下载并解析合并消息的附件。

    对于一条合并消息,首次调用该方法会下载和解析合并消息附件,然后返回消息列表,而后续调用会存在以下情况:

    1. 若附件已存在,该方法会直接解析附件并返回消息列表。
    2. 若附件不存在,该方法首先会下载附件,然后解析合并消息附件并返回消息列表。

    Parameters

    • message: ChatMessage

      要下载和解析的合并消息。

    Returns Promise<ChatMessage[]>

    • 返回解析成功后的 Promise 结果。
  • 分页从服务器获取获取会话列表。

    SDK 按照会话活跃时间(会话的最后一条消息的时间戳)倒序返回会话列表。

    若会话中没有消息,则 SDK 按照会话创建时间的倒序返回会话列表。

    Parameters

    • limit: number

      每页返回的会话数量。取值范围为 [1,50]。

    • cursor: string

      开始获取数据的游标位置。若获取数据时传空字符串(""),SDK 从最新活跃的会话开始获取。

    Returns Promise<CursorResult<Conversation>>

    • 返回分页获取的 Promise 结果。
  • 根据会话过滤类从服务器分页查询会话列表。

    Parameters

    • filter: ConversationFilter

      会话查询选项,包括会话标记和每页获取的会话条数。

    Returns Promise<CursorResult<Conversation>>

    • 返回分页获取会话的 Promise 结果。当 cursor 为 空字符串时,表示已获取全部数据。
  • 从服务器分页获取群组消息已读回执详情。

    发送群组消息回执,可调用 ackGroupMessageRead

    Parameters

    • messageId: string

      消息 ID。

    • pageSize: number

      每页获取的群消息已读回执数。取值范围为 [1,50]。

    • startAckId: string

      查询起始的已读回执 ID。 该参数设置后,SDK 从指定的已读回执 ID 开始,按服务器接收已读回执的时间的逆序获取。 若该参数为空,SDK 从最新的已读回执开始按服务器接收回执时间的逆序获取。

    Returns Promise<CursorResult<GroupReadAck>>

    • 返回获取群组消息已读回执详情的 promise 结果。
  • 根据消息拉取参数配置类 FetchMessageOption 从服务器分页获取指定会话的历史消息。

    Parameters

    • conversationId: string

      会话 ID。

      • 单聊:对端用户的用户 ID;
      • 群聊:群组 ID。
      • 聊天室:聊天室 ID。
    • conversationType: ConversationType

      会话类型。

    • pageSize: number

      每页获取的消息条数。取值范围为 [1,50]。

    • cursor: string

      查询的起始游标位置。

    • fetchOption: FetchMessageOption

      查询历史消息的参数配置类。

    Returns Promise<CursorResult<ChatMessage>>

    • 返回查询到的消息列表和下次查询的 cursor。
  • 分页从服务器获取置顶会话。

    SDK 按照会话置顶时间倒序返回。

    Parameters

    • limit: number

      每页返回的会话数。取值范围为 [1,50]。

    • cursor: string

      开始获取数据的游标位置。若获取数据时传空字符串(""),SDK 从最新置顶的会话开始查询。

    Returns Promise<CursorResult<Conversation>>

    • 返回分页获取的 Promise 结果。结果包含用于下次获取数据的 cursor 以及会话列表。 如果是最后一页,cursor 返回结果为空字符串。
  • 从服务端获取置顶消息。

    Parameters

    • conversationId: string

      会话 ID。

    Returns Promise<ChatMessage[]>

    • 返回 Promise 结果。成功返回置顶消息数组。
  • 获取 Reaction 列表。

    Parameters

    • messageId: string | string[]

      消息 ID。

    • chatType: ChatType

      会话类型,仅支持单聊( ChatType.Chat )和群聊( ChatType.GroupChat )。

    • OptionalgroupId: string

      群组 ID,该参数只对群聊生效。

    Returns Promise<Map<string, ChatMessageReaction[]>>

    • 返回 Reaction 列表的 Promise 结果。ChatMessageReaction 的用户列表 userIds 为概要数据,只包含前三个用户信息。
  • 获取本地当前所有会话并排序。

    SDK 按照最近一条消息的时间戳的倒序返回会话,置顶会话在前,非置顶会话在后。

    Returns Conversation[]

    • 返回排序后的会话列表。
  • 根据会话 ID 以及会话类型获取会话。

    Parameters

    • conversationId: string

      会话 ID。

      • 单聊:对端用户的用户 ID;
      • 群聊:群组 ID;
      • 聊天室:聊天室 ID;
    • type: ConversationType = ConversationType.Chat

      会话类型。

    • createIfNotExist: boolean = false

      未找到指定会话时是否创建一个新会话。

      • true:是;
      • false:否。

    Returns Conversation

    • 找到的会话对象。如果未找到,返回 undefined。
  • 获取指定 ID 的消息对象。

    Parameters

    • messageId: string

      消息 ID。

    Returns ChatMessage

    • 返回消息对象。如果不存在返回 undefined 。
  • 将消息导入本地数据库。

    你只能将你发送或接收的消息导入本地数据库。

    Parameters

    • messages: ChatMessage[]

      需要导入数据库的消息列表。

    Returns Promise<boolean>

    • 返回导入数据库的 Promise 结果。
  • 将所有会话都设成已读。

    Returns void

  • 修改消息内容。

    调用该方法修改消息内容后,本地和服务端的消息均会修改。

    调用该方法只能修改单聊和群聊中的文本消息,不能修改聊天室消息。

    多设备和该消息的接收方可通过 ChatMessageListener#onMessageContentChanged 回调监听消息是否有变更。

    Parameters

    • messageId: string

      消息 ID。

    • modifiedBody: ChatMessageBody

      内容修改后的消息体。

    Returns Promise<ChatMessage>

    • 消息修改是否成功的 Promise 结果。
  • 设置是否置顶会话。

    Parameters

    • conversationId: string

      会话 ID。

    • isPinned: boolean

      是否置顶会话: - true:置顶; - false: 取消置顶。

    Returns Promise<void>

    • 设置会话置顶状态的 Promise 结果。
  • 置顶消息。

    Parameters

    • messageId: string

      消息 ID。

    Returns Promise<void>

    • 返回 Promise 结果。
  • 撤回发送成功的消息。

    Parameters

    • message: ChatMessage

      要撤回的消息对象。

    • ext: string = ""

      扩展信息。

    Returns Promise<void>

    • 返回撤回消息的 promise 结果。
  • 移除会话监听器。

    调用 addConversationListener 添加会话监听后再调用本方法移除。

    Parameters

    Returns void

  • 取消标记会话。

    调用该方法会同时为本地和服务器端的会话添加标记。

    Parameters

    • conversationIds: string | string[]

      会话 ID 列表。

    • mark: MarkType

      要移除的会话标记。

    Returns Promise<void>

    • 返回取消会话标记的 Promise 结果。
  • 移除消息监听器。

    调用 addMessageListener 添加消息监听后再调用本方法移除。

    Parameters

    Returns void

  • 单向删除漫游消息(根据消息 ID 删除)。

    Parameters

    • conversationId: string

      会话 ID。

    • conversationType: ConversationType

      会话类型。

    • messages: string[]

      要从服务器单向删除的消息 ID 列表。

    Returns Promise<void>

    • 返回删除消息的 Promise 结果。
  • 单向删除漫游消息(根据时间删除)。

    Parameters

    • conversationId: string

      会话 ID。

    • conversationType: ConversationType

      会话类型。

    • beforeTimeStamp: number

      消息删除开始的 UNIX 时间戳,单位为毫秒。设置开始时间后,该方法删除服务器在该时间点之前接收到的消息。

    Returns Promise<void>

    • 返回删除消息的 Promise 结果。
  • 删除指定消息的 Reaction。

    Parameters

    • messageId: string

      消息 ID。

    • reaction: string

      要删除的 Reaction。

    Returns Promise<void>

    • 返回删除 Reaction 的 Promise 结果。
  • 保存消息到本地数据库。

    命令消息(类型见:ContentType.CMD,消息体见:CmdMessageBody)不会在本地保存。

    Parameters

    Returns void

  • 从本地数据库获取指定会话中包含特定关键字的消息。

    Parameters

    • keywords: string

      查询关键字。

    • timestamp: number

      查询的起始消息 Unix 时间戳,单位为毫秒。该参数设置后,SDK 从指定时间戳的消息开始,按消息搜索方向获取。 如果该参数设置为负数,SDK 从当前时间开始搜索。

    • maxCount: number

      每次获取的最大消息数。取值范围为 [1,400]。

    • Optionalfrom: string

      单聊或群聊中的消息发送方的用户 ID。若设置为空字符串,SDK 将在整个会话中搜索消息。

    • Optionaldirection: SearchDirection

      消息搜索方向。详见 SearchDirection

      • (默认)UP:按照消息中的时间戳的逆序查询;
      • DOWN:按照消息中的时间戳的正序查询。

    Returns Promise<ChatMessage[]>

    • 返回消息列表 Promise 结果。
  • 从本地数据库获取指定会话的一定数量的特定类型的消息。

    Parameters

    • contentType: ContentType

      消息类型。详见 ContentType

    • timestamp: number

      查询的起始消息 Unix 时间戳,单位为毫秒。该参数设置后,SDK 从指定时间戳的消息开始,按消息搜索方向获取。 如果该参数设置为负数,SDK 从当前时间开始搜索。

    • maxCount: number

      每次获取的最大消息数。取值范围为 [1,400]。

    • Optionalfrom: string

      单聊或群聊中的消息发送方的用户 ID。若设置为空字符串,SDK 将在整个会话中搜索消息。

    • Optionaldirection: SearchDirection

      消息搜索方向。详见 SearchDirection

      • (默认)UP:按照消息中的时间戳的逆序查询;
      • DOWN:按照消息中的时间戳的正序查询。

    Returns Promise<ChatMessage[]>

    • 返回消息列表 Promise 结果。
  • 按照消息类型从本地数据库搜索消息。

    Parameters

    • types: ContentType[]

      消息类型数组。详见 ContentType。消息类型数组不可为空。

    • timestamp: number

      查询的起始消息 Unix 时间戳,单位为毫秒。该参数设置后,SDK 从指定时间戳的消息开始,按消息搜索方向获取。 如果该参数设置为负数,SDK 从当前时间开始搜索。

    • maxCount: number

      每次获取的最大消息数。取值范围为 [1,400]。

    • Optionalfrom: string

      消息发送方的用户 ID。若不设置或设置为空字符串,搜索消息时不限制于发送方的消息。

    • Optionaldirection: SearchDirection

      消息搜索方向。详见 SearchDirection

      • (默认)UP:按照消息中的时间戳的逆序查询;
      • DOWN:按照消息中的时间戳的正序查询。

    Returns Promise<ChatMessage[]>

    • 返回消息列表 Promise 结果。
  • 取消置顶消息。

    Parameters

    • messageId: string

      消息 ID。

    Returns Promise<void>

    • 返回 Promise 结果。
  • 更新本地消息。

    Parameters

    Returns boolean

    • 返回更新本地的结果。