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

发送文本消息示例如下:

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

Constructors

Methods

  • 发送会话的已读回执。

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

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

    Parameters

    • conversationId: string

      会话 ID。

    Returns void

  • 发送群消息已读回执。

    Parameters

    • message: ChatMessage

      要发送已读回执的群消息。

    • ext: string

      扩展信息。用户通过定义关键字指定动作或命令。

    Returns void

    设置了 ChatOptions.setRequireAck 和 ChatMessage.setIsNeedGroupAck 后才能调用该方法。

  • 发送消息的已读回执。

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

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

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

    Parameters

    • to: string

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

    • messageId: string

      已读回执的消息 ID。

    Returns void

  • 注册会话监听器。

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

    Parameters

    Returns void

  • 注册消息监听器。

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

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

    Parameters

    Returns void

  • 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 结果。
  • 从服务器分页获取群组消息已读回执详情。

    发送群组消息回执,可调用 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。
  • 根据会话 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

    • message: ChatMessage

      要撤回的消息对象。

    • ext: string = ""

      扩展信息。

    Returns Promise<void>

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

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

    Parameters

    Returns void

  • 移除消息监听器。

    调用 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 结果。
  • 保存消息到本地数据库。

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

    Parameters

    Returns void

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

    Parameters

    • keywords: string

      查询关键字。

    • timestamp: number

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

    • maxCount: number

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

    • from: 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]。

    • from: string

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

    • Optionaldirection: SearchDirection

      消息搜索方向。详见 SearchDirection

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

    Returns Promise<ChatMessage[]>

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

    Parameters

    Returns boolean

    • 返回更新本地的结果。