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

发送文文本消息示例如下:

let msg = ChatMessage.createTextMessage(
'asteriskhx2',
Date.now().toString(),
ChatMessageChatType.PeerChat
);
let callback = new (class s implements ChatMessageStatusCallback {
onProgress(progress: number): void {
chatlog.log('ConnectScreen.sendMessage.onProgress ', progress);
}
onError(error: ChatError): void {
chatlog.log('ConnectScreen.sendMessage.onError ', error);
}
onSuccess(): void {
chatlog.log('ConnectScreen.sendMessage.onSuccess');
}
onReadAck(): void {
chatlog.log('ConnectScreen.sendMessage.onReadAck');
}
onDeliveryAck(): void {
chatlog.log('ConnectScreen.sendMessage.onDeliveryAck');
}
onStatusChanged(status: ChatMessageStatus): void {
chatlog.log('ConnectScreen.sendMessage.onStatusChanged ', status);
}
})();
ChatClient.getInstance()
.chatManager.sendMessage(msg, callback)
.then((nmsg: ChatMessage) => {
chatlog.log(`${msg}, ${nmsg}`);
})
.catch();

Hierarchy

  • BaseManager
    • ChatManager

Constructors

Properties

Methods

addMessageListener addReaction addRemoteAndLocalConversationsMark createChatThread deleteAllMessageAndConversation deleteConversation deleteConversationAllMessages deleteMessage deleteMessagesBeforeTimestamp deleteMessagesWithTimestamp deleteRemoteAndLocalConversationsMark destroyChatThread downloadAttachment downloadAttachmentInCombine downloadThumbnail downloadThumbnailInCombine fetchAllConversations fetchChatThreadFromServer fetchChatThreadWithParentFromServer fetchCombineMessageDetail fetchConversationsByOptions fetchConversationsFromServerWithCursor fetchConversationsFromServerWithPage fetchGroupAcks fetchHistoryMessages fetchHistoryMessagesByOptions fetchJoinedChatThreadFromServer fetchJoinedChatThreadWithParentFromServer fetchLastMessageWithChatThread fetchMembersWithChatThreadFromServer fetchPinnedConversationsFromServerWithCursor fetchPinnedMessages fetchReactionDetail fetchReactionList fetchSupportedLanguages getAllConversations getConvMsgsWithKeyword getConversation getConversationMessageCount getConversationUnreadCount getLatestMessage getLatestReceivedMessage getMessage getMessageCountWithTimestamp getMessagePinInfo getMessageThread getMessageWithTimestamp getMessages getMessagesWithKeyword getMessagesWithMsgType getMsgWithTimestamp getMsgs getMsgsWithKeyword getMsgsWithMsgType getPinnedMessages getReactionList getThreadConversation getUnreadCount groupAckCount importMessages insertMessage joinChatThread leaveChatThread markAllConversationsAsRead markAllMessagesAsRead markMessageAsRead modifyMessageBody pinConversation pinMessage recallMessage removeAllMessageListener removeConversationFromServer removeMemberWithChatThread removeMessageListener removeMessagesFromServerWithMsgIds removeMessagesFromServerWithTimestamp removeMessagesWithTimestamp removeReaction reportMessage resendMessage searchMessages searchMessagesInConversation searchMsgFromDB sendConversationReadAck sendGroupMessageReadAck sendMessage sendMessageReadAck setConversationExtension setNativeListener translateMessage unpinMessage updateChatThreadName updateConversationMessage updateMessage _callMethod checkErrorFromResult handleGroupFileCallback handleMessageCallback

Constructors

Properties

_eventEmitter?: NativeEventEmitter
TAG: string = 'ChatManager'

Methods

  • 添加消息监听器。

    Parameters

    Returns void

  • 添加 Reaction。

    Parameters

    • reaction: string

      Reaction 的内容。

    • msgId: string

      要添加 Reaction 的消息 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 标记会话。

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

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 清空所有会话及其消息。

    Parameters

    • clearServerData: boolean = false

      是否删除服务端所有会话及其消息: - true:是。服务端的所有会话及其消息会被清除,当前用户无法再从服务端拉取消息和会话,其他用户不受影响。 - (默认)false:否。只清除本地所有会话及其消息,服务端的会话及其消息仍保留。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

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

    Parameters

    • convId: string

      会话 ID。

    • withMessage: boolean = true

      删除会话时是否同时删除本地的历史消息。 - (默认)true:删除; - false:不删除。

    Returns Promise<void>

    会话是否删除成功。 - true:是; - false: 否。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 从内存和本地数据库中删除会话中的所有消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地数据库中删除一条消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • msgId: string

      要删除的消息的 ID。

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 删除指定时间戳之前的所有本地消息。

    Parameters

    • timestamp: number

      指定的时间戳,单位为毫秒。

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 从本地数据库中删除一段时间内发送或接收的消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • params: {
          endTs: number;
          startTs: number;
      }
      • endTs: number
      • startTs: number
    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<void>

    参数

    • startTs:消息删除的起始 UNIX 时间戳。 单位是毫秒。
    • endTs:消息删除的结束 UNIX 时间戳。 单位是毫秒。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 取消标记会话。

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

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 下载消息附件。

    如果附件自动下载失败也可以调用该方法。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 下载消息附件。

    注意 该方法仅用于下载组合类型消息或线程类型的消息附件。

    注意 底层不会获取原始消息对象,会使用json转换后的消息对象。

    如果附件自动下载失败也可以调用该方法。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 下载消息的缩略图。

    Parameters

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 下载消息缩略图。

    注意 此方法仅用于下载组合类型消息中的消息缩略图。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从服务器获取会话列表。

    Returns Promise<ChatConversation[]>

    会话列表。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 从服务器获取子区详情。

    Parameters

    • chatThreadId: string

      子区 ID。

    Returns Promise<undefined | ChatMessageThread>

    若调用成功,返回子区详情;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 分页从服务器端获取指定群组的子区列表。

    Parameters

    • parentId: string

      父 ID,即群组 ID。

    • cursor: string = ''

      开始取数据的游标位置。首次获取数据时传 null 或空字符串,按子区创建时间的倒序获取数据。

    • pageSize: number = 20

      每页期望返回的子区数。取值范围为 [1,400]。

    Returns Promise<ChatCursorResult<ChatMessageThread>>

    若调用成功,返回子区列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取合并类型消息中的原始消息列表。

    合并消息包含 1 条或者多条其它类型消息。

    Parameters

    Returns Promise<ChatMessage[]>

    消息 body 里面的原始消息列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 分页从服务器获取会话列表。

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

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

    Parameters

    • Optionalcursor: string
    • OptionalpageSize: number

    Returns Promise<ChatCursorResult<ChatConversation>>

    会话列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从服务器分页获取会话列表。

    Parameters

    • pageSize: number

      当前页码,从 1 开始。

    • pageNum: number

      每页获取的会话数量,取值范围为 [1,20]。

    Returns Promise<ChatConversation[]>

    当前用户的会话列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • Uses the pagination to get read receipts for group messages from the server.

    发送群组消息已读回执见 {@link #sendConversationReadAck(String)。

    Parameters

    • msgId: string

      消息 ID。

    • groupId: string
    • startAckId: string

      开始的已读回执 ID。如果该参数设置为空字符串或 null,从服务器接收已读回执时间的倒序开始获取。

    • pageSize: number = 0

      每页期望获取群消息已读回执的条数。

    Returns Promise<ChatCursorResult<ChatGroupMessageAck>>

    已读回执列表和用于下次查询的 cursor。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 根据消息拉取参数配置从服务器分页获取指定会话的历史消息。

    注意 调用该方法,如果会话对象不存在则创建。

    Parameters

    Returns Promise<ChatCursorResult<ChatMessage>>

    消息列表(不包含查询起始 ID 的消息)和下次查询的 cursor。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 分页从服务器获取当前用户加入的子区列表。

    Parameters

    • cursor: string = ''

      开始获取数据的游标位置。首次调用方法时传 null 或空字符串,按用户加入子区时间的倒序获取数据。

    • pageSize: number = 20

      每页期望返回的子区数。取值范围为 [1,400]。

    Returns Promise<ChatCursorResult<ChatMessageThread>>

    若调用成功,返回子区列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 分页从服务器获取当前用户加入指定群组的子区列表。

    Parameters

    • parentId: string

      父 ID,即群组 ID。

    • cursor: string = ''

      开始取数据的游标位置。首次调用方法时传 null 或空字符串,按用户加入子区时间的倒序获取数据。

    • pageSize: number = 20

      每页期望返回的子区数。取值范围为 [1,400]。

    Returns Promise<ChatCursorResult<ChatMessageThread>>

    若调用成功,返回子区列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从服务器批量获取指定子区中的最新一条消息。

    Parameters

    • chatThreadIds: string[]

      要查询的子区 ID 列表,每次最多可传 20 个子区。

    Returns Promise<Map<string, ChatMessage>>

    若调用成功,返回子区的最新一条消息列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 分页获取子区成员。

    子区所属群组的所有成员均可调用该方法。

    Parameters

    • chatThreadId: string

      子区 ID。

    • cursor: string = ''

      开始获取数据的游标位置,首次调用方法时传 null 或空字符串,按成员加入子区时间的正序获取数据。

    • pageSize: number = 20

      每页期望返回的成员数。取值范围为 [1,400]。

    Returns Promise<ChatCursorResult<string>>

    若调用成功,返回子区成员列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 分页从服务器获取置顶会话。

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

    Parameters

    • Optionalcursor: string
    • OptionalpageSize: number

    Returns Promise<ChatCursorResult<ChatConversation>>

    置顶的会话列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从服务端获取指定会话中的置顶消息。

    Parameters

    Returns Promise<ChatMessage[]>

    置顶消息列表。如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取 Reaction 详情。

    Parameters

    • msgId: string

      消息 ID。

    • reaction: string

      Reaction 内容。

    • Optionalcursor: string

      开始获取 Reaction 的游标位置。

    • OptionalpageSize: number

      每页期望返回的 Reaction 数量。

    Returns Promise<ChatCursorResult<ChatMessageReaction>>

    若调用成功,返回 Reaction 详情。若返回 null,则所有数据均获取。 若调用失败,则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取 Reaction 列表。

    Parameters

    • msgIds: string[]

      消息 ID 列表。

    • groupId: string

      群组 ID,该参数仅在会话类型为群聊时有效。

    • chatType: ChatMessageChatType

      会话类型。

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

    若调用成功,返回 Reaction 列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 查询翻译服务支持的语言。

    Returns Promise<ChatTranslateLanguage[]>

    翻译服务支持的语言列表。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 获取本地数据库中所有会话。

    该方法会先从内存中获取,如果未找到任何会话,从本地数据库获取。

    Returns Promise<ChatConversation[]>

    获取的会话。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 获取指定用户在一定时间内的会话中发送的消息。

    该方法从本地数据库获取数据。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。如果没有获取到消息,返回空列表。

    • convId 会话 ID。
    • convType 会话类型。请参阅 ChatConversationType
    • keywords 查询的关键字。
    • direction 消息搜索方向。请参阅 ChatSearchDirection
    • (默认)ChatSearchDirection.UP 按照消息中包含的 Unix 时间戳的降序检索消息。
    • ChatSearchDirection.DOWN 按照消息中包含的 Unix 时间戳的升序检索消息。
    • timestamp 用于查询的消息中的起始 Unix 时间戳。单位是毫秒。设置该参数后,SDK 按照消息搜索方向,从指定的消息开始检索消息。 如果将此参数设置为负值,则 SDK 从当前时间开始,按照消息中时间戳的降序顺序检索消息。
    • searchScope 消息搜索范围。请参阅 ChatMessageSearchScope
    • count 每次检索的最大消息数。取值范围为 [1,400]。
    • sender 用于检索的用户 ID 或群组 ID。
    • isChatThread 会话是否为子区会话。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 根据会话ID和会话类型获取会话。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • createIfNeed: boolean = true

      如果没有找到指定的会话,是否创建会话:

      • (默认)true:是。
      • :否。
    • isChatThread: boolean = false

      会话是否为子区会话。

      • (默认)false:否。
      • true:是的。

    Returns Promise<undefined | ChatConversation>

    检索到的会话对象。 如果未找到会话,SDK 将返回“null”。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取会话的消息数。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<number>

    消息计数。 获取消息计数

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取会话未读消息数。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<number>

    未读消息数。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从会话中获取最新消息。

    注意

    该操作不会改变未读消息数。 如果会话对象不存在,此方法将创建它。

    SDK首先从内存中获取最新消息。 如果没有找到消息,SDK会从本地数据库中加载消息,然后放入内存中。

    Parameters

    Returns Promise<undefined | ChatMessage>

    消息实例。 如果消息不存在,SDK 将返回 undefined

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取最新收到的会话消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<undefined | ChatMessage>

    消息实例。 如果消息不存在,SDK 将返回 undefined

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地数据库获取指定 ID 的消息对象。

    Parameters

    • msgId: string

      消息 ID。

    Returns Promise<undefined | ChatMessage>

    获取的消息对象。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 获取消息数量。

    Parameters

    • params: {
          convId: string;
          convType: ChatConversationType;
          end: number;
          isChatThread?: boolean;
          start: number;
      }

    Returns Promise<number>

    指定时间范围内的消息数量。

    • 参数集合
    • convId: 会话 ID。
    • convType: 会话类型。详见 ChatConversationType
    • isChatThread: 是否是子区会话。
    • start: 开始时间戳。
    • end: 结束时间戳。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError.

  • 获取单条消息的置顶详情。

    Parameters

    • messageId: string

      消息 ID。

    Returns Promise<undefined | ChatMessagePinInfo>

    消息的置顶详情。若消息不存在或为非置顶状态,返回 undefined

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取本地子区详情。

    Parameters

    • msgId: string

      子区 ID。

    Returns Promise<undefined | ChatMessageThread>

    若调用成功,返回子区详情;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 检索本地数据库中某个会话在一定时间内发送和接收的消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • startTime: number

      查询的起始 Unix 时间戳,以毫秒为单位。

    • endTime: number

      查询的结束 Unix 时间戳,以毫秒为单位。

    • direction: ChatSearchDirection = ChatSearchDirection.UP
    • count: number = 20

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

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有开始或结束时间戳的消息)。 如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

    2023-07-24 此方法已弃用。 请改用 getMsgWithTimestamp

  • 从本地数据库中检索会话中指定数量的消息。

    检索到的消息也会根据其中包含的时间戳放入内存中的会话中。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • startMsgId: string

      查询的起始消息ID。 设置该参数后,SDK按照消息搜索方向,从指定的消息开始检索消息。 如果该参数设置为空字符串,则SDK按照消息搜索方向检索消息,而忽略该参数。

    • direction: ChatSearchDirection = ChatSearchDirection.UP
    • loadCount: number = 20

      每次检索的最大消息数。 取值范围为[1,50]。

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。 如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

    @2023 年 7 月 24 日已弃用。 请改用 getMsgs

  • 获取指定用户在一定时间内的会话中发送的消息。

    该方法从本地数据库获取数据。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。请参阅 ChatConversationType

    • keywords: string

      查询的关键字。

    • direction: ChatSearchDirection = ChatSearchDirection.UP
    • timestamp: number = -1

      用于查询的消息中的起始 Unix 时间戳。单位是毫秒。设置该参数后,SDK 按照消息搜索方向,从指定的消息开始检索消息。 如果将此参数设置为负值,则 SDK 从当前时间开始,按照消息中时间戳的降序顺序检索消息。

    • count: number = 20

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

    • Optionalsender: string

      用于检索的用户 ID 或群组 ID。

    • isChatThread: boolean = false

      会话是否是子区会话。

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

    2023-07-24 此方法已弃用。 请改用 getMsgsWithKeyword

  • 从本地数据库中检索会话中某种类型的消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • msgType: ChatMessageType

      消息类型。 请参阅ChatMessageType

    • direction: ChatSearchDirection = ChatSearchDirection.UP
    • timestamp: number = -1

      用于查询的消息中的起始 Unix 时间戳。 单位是毫秒。 设置该参数后,SDK按照消息搜索方向,从指定的消息开始检索消息。 如果将此参数设置为负值,则SDK从当前时间开始,按照消息中时间戳的降序顺序检索消息。

    • count: number = 20

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

    • Optionalsender: string

      用于检索的用户 ID 或组 ID。 通常,它是会话 ID。

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。 如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

    @2023 年 7 月 24 日已弃用。 请改用 getMsgsWithMsgType

  • 检索本地数据库中某个会话在一定时间内发送和接收的消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • params: {
          convId: string;
          convType: ChatConversationType;
          count?: number;
          direction?: ChatSearchDirection;
          endTime: number;
          isChatThread?: boolean;
          startTime: number;
      }

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有开始或结束时间戳的消息)。 如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地数据库中检索会话中指定数量的消息。

    检索到的消息也会根据其中包含的时间戳放入内存中的会话中。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取所有会话在一定时间内的会话中发送的消息。

    该方法从本地数据库获取数据。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。如果没有获取到消息,返回空列表。

    • keywords 查询的关键字。
    • direction 消息搜索方向。请参阅 ChatSearchDirection
    • (默认)ChatSearchDirection.UP 按照消息中包含的 Unix 时间戳的降序检索消息。
    • ChatSearchDirection.DOWN 按照消息中包含的 Unix 时间戳的升序检索消息。
    • timestamp 用于查询的消息中的起始 Unix 时间戳。单位是毫秒。设置该参数后,SDK 按照消息搜索方向,从指定的消息开始检索消息。 如果将此参数设置为负值,则 SDK 从当前时间开始,按照消息中时间戳的降序顺序检索消息。
    • searchScope 消息搜索范围。请参阅 ChatMessageSearchScope
    • maxCount 每次检索的最大消息数。取值范围为 [1,400]。
    • from 用于检索的用户 ID 或群组 ID。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地数据库中检索会话中某种类型的消息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<ChatMessage[]>

    检索到的消息列表(不包括具有起始时间戳的消息)。 如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地获取指定会话中的置顶消息。

    Parameters

    Returns Promise<ChatMessage[]>

    置顶消息列表。如果没有获取到消息,则返回空列表。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取指定消息的 Reaction 列表。

    Parameters

    • msgId: string

      消息 ID。

    Returns Promise<ChatMessageReaction[]>

    若调用成功,则返回 Reaction 列表;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 根据指定会话 ID 获取本地子区会话对象。

    Parameters

    • convId: string

      会话 ID。

    • createIfNeed: boolean = true

      未找到会话时是否自动创建该会话:

      • (默认) true: 是;
      • false: 否。

    Returns Promise<undefined | ChatConversation>

    子区会话实例。如果未找到会话,SDK 返回空值。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 获取未读消息数。

    Returns Promise<number>

    未读消息数。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 获取群组消息的已读人数。

    Parameters

    • msgId: string

      消息 ID。

    Returns Promise<undefined | number>

    若调用成功,返回群组消息的已读人数;失败则抛出异常。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 将消息导入本地数据库。

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

    Parameters

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 在本地会话中插入一条消息。 例如,收到一些推送消息后,可以构建消息,写入会话。若该消息已存在(msgId 或 localMsgId 已存在),该插入操作失败。 消息会根据消息里的 Unix 时间戳插入本地数据库,SDK 会更新会话的 latestMessage 等属性。

    Parameters

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 退出子区。

    子区中的所有成员均可调用该方法。

    多设备登录情况下,注意以下几点:

    Parameters

    • chatThreadId: string

      要退出的子区的 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 将所有的会话都设成已读。

    该方法仅对本地会话有效。

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 将所有消息标记为已读。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 将消息标记为已读。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 修改文本消息。

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

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

    Parameters

    Returns Promise<ChatMessage>

    修改后的消息。 详见 ChatMessageBody

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 设置会话是否置顶。

    Parameters

    • convId: string

      会话 ID.

    • isPinned: boolean

      是否置顶会话。

      • true:置顶;
        • false: 取消置顶。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 置顶消息。

    Parameters

    • messageId: string

      消息 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 撤回发送成功的消息。

    Parameters

    • msgId: string
    • Optionaloption: {
          ext?: string;
      }
      • Optionalext?: string

    Returns Promise<void>

    • 参数集合
    • msgId 消息 ID。
    • ext 扩展信息。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 移除所有消息监听器。

    Returns void

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

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型,详见 ChatConversationType

    • isDeleteMessage: boolean = true

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

      • (默认) true:是;
      • false: 否。

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 移除子区成员。

    只有子区所属群主、群管理员及子区创建者可调用该方法。

    被移出的成员会收到 ChatMessageEventListener.onChatMessageThreadUserRemoved 回调。

    你可通过设置 ChatMessageEventListener 监听子区事件。

    Parameters

    • chatThreadId: string

      子区 ID。

    • memberId: string

      被移出子区的成员的用户 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 移除消息监听器。

    Parameters

    Returns void

  • 从会话中删除消息(从本地存储和服务器)。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。

    • msgIds: string[]

      要从当前会话中删除的消息的 ID。

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从会话中删除消息(从本地存储和服务器)。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。

    • timestamp: number

      消息时间戳(以毫秒为单位)。时间戳小于指定时间戳的消息将被删除。

    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 从本地和服务器端删除指定会话的消息。

    Parameters

    • params: {
          convId: string;
          convType: ChatConversationType;
          isChatThread?: boolean;
          timestamp: number;
      }

    Returns Promise<void>

    参数集合 -

    • convId: 会话 ID。
    • convType: 会话类型。详见 ChatConversationType
    • timestamp: 消息时间戳(以毫秒为单位)。时间戳小于指定时间戳的消息将被删除。
    • isChatThread: 是否是子区会话。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError.

  • 删除 Reaction。

    Parameters

    • reaction: string

      要删除的 Reaction。

    • msgId: string

      添加了该 Reaction 的消息 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 举报消息。

    Parameters

    • msgId: string

      要举报的消息 ID。

    • tag: string

      非法消息的标签。你需要填写自定义标签,例如涉政广告

    • reason: string

      举报原因。你需要自行填写举报原因。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 重发消息。

    Parameters

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 搜索消息。

    Parameters

    • params: {
          count?: number;
          direction?: ChatSearchDirection;
          from?: string;
          isChatThread?: boolean;
          msgTypes: ChatMessageType[];
          timestamp: number;
      }

    Returns Promise<ChatMessage[]>

    符合搜索条件的消息列表。

    • 参数集合
    • msgTypes: 消息类型数组,用户搜索一个或者多个类型的消息。 详见 ChatMessageType.
    • timestamp: 搜索的时间戳。
    • count: 搜索的消息数量。取值范围为 [1,100]。默认值为 20。
    • from: 搜索的消息 ID。
    • direction: 搜索方向。 详见 ChatSearchDirection.
    • isChatThread: 是否是子区会话。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 搜索指定会话的消息。

    Parameters

    Returns Promise<ChatMessage[]>

    符合搜索条件的消息列表。

    • 消息集合
    • convId: 会话 ID。
    • convType: 会话类型。 详见 ChatConversationType.
    • msgTypes: 消息类型数组,用户搜索一个或者多个类型的消息。 详见 ChatMessageType.
    • timestamp: 搜索的时间戳。
    • count: 搜索的消息数量。取值范围为 [1,100]。默认值为 20。
    • from: 搜索的消息 ID。
    • direction: 搜索方向。 详见 ChatSearchDirection.
    • isChatThread: 是否是子区会话。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError.

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

    Parameters

    • keywords: string

      查询关键字。

    • timestamp: number = -1

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

    • maxCount: number = 20

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

    • from: string = ''

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

    • direction: ChatSearchDirection = ChatSearchDirection.UP

      消息搜索方向。详见 ChatSearchDirection. - (Default) ChatSearchDirection.UP: 按照消息中的时间戳的逆序查询 - ChatSearchDirection.DOWN: 按照消息中的时间戳的正序查询。

    Returns Promise<ChatMessage[]>

    消息列表(不包含查询起始时间戳对应的消息)。若未查找到任何消息,返回空列表。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

    2024-04-22. Use getMsgsWithKeyword instead.

  • 发送会话的已读回执。

    注意

    Parameters

    • convId: string

      会话 ID。

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 发送群消息已读回执。

    Warning

    Parameters

    • msgId: string

      消息 ID。

    • groupId: string

      群组 ID。

    • Optionalopt: {
          content: string;
      }

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

      • content: string

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 发送一条消息。

    注意

    • 如果是语音,图片类等有附件的消息,SDK 会自动上传附件。
    • 可以通过 ChatOptions 设置是否上传到聊天服务器。

    Parameters

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 发送消息的已读回执。

    该方法只针对单聊会话。

    注意

    该方法只有在 ChatOptions.requireAcktrue 时才生效。

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

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

    Parameters

    • message: ChatMessage

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

    Returns Promise<void>

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • 设置会话的扩展信息。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    • convId: string

      会话 ID。

    • convType: ChatConversationType

      会话类型。 请参阅ChatConversationType

    • ext: {
          [key: string]: string | number | boolean;
      }

      扩展信息。 该参数必须是key-value类型。

      • [key: string]: string | number | boolean
    • isChatThread: boolean = false

      会话是否为子区会话。

    Returns Promise<void>

  • Parameters

    • event: NativeEventEmitter

    Returns void

  • 翻译消息。

    Parameters

    • msg: ChatMessage

      要翻译的文本消息。

    • languages: string[]

      目标语言。

    Returns Promise<ChatMessage>

    翻译。

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 取消置顶消息。

    Parameters

    • messageId: string

      消息 ID。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 修改子区名称。

    只有子区所属群主、群管理员及子区创建者可调用该方法。

    子区所属群组的成员会收到 ChatMessageEventListener.onChatMessageThreadUpdated 回调。

    你可通过设置 ChatMessageEventListener 监听子区事件。

    Parameters

    • chatThreadId: string

      子区 ID。

    • newName: string

      子区的新名称。长度不超过 64 个字符。

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 更新本地数据库中的消息。

    修改消息后,消息 ID 保持不变,SDK 会自动更新会话的属性,如“latestMessage”。

    注意 如果会话对象不存在,此方法将创建它。

    Parameters

    Returns Promise<void>

    如果有异常会在此抛出,包括错误码和错误信息,详见 ChatError

  • 更新本地消息。

    该方法会同时更新本地内存和数据库中的消息。

    Parameters

    Returns Promise<ChatMessage>

    更新后的消息。

    如果有异常会在这里抛出,包含错误码和错误描述,详见 ChatError

  • Type Parameters

    • T

    Parameters

    • method: string
    • Optionalargs: {}

      Returns Promise<T>

    • Parameters

      • result: any

      Returns void

    • Parameters

      Returns void

    • Parameters

      Returns void