IConversationModel

IConversationModel

Properties:
Name Type Description
conversationID String

会话 ID。会话ID组成方式:

  • C2C${userID}(单聊)
  • GROUP${groupID}(群聊)
  • @TIM#SYSTEM(系统通知会话)
type String

会话类型,具体如下:

类型 含义
TUIChatEngine.TYPES.CONV_C2C C2C(Client to Client, 端到端)会话
TUIChatEngine.TYPES.CONV_GROUP GROUP(群组)会话
TUIChatEngine.TYPES.CONV_SYSTEM SYSTEM(系统)会话。该会话只能接收来自系统的通知消息,不能发送消息。
subType String

群组会话的群组类型,具体如下:

类型 含义
TUIChatEngine.TYPES.GRP_WORK 好友工作群
TUIChatEngine.TYPES.GRP_PUBLIC 陌生人社交群
TUIChatEngine.TYPES.GRP_MEETING 临时会议群
TUIChatEngine.TYPES.GRP_AVCHATROOM 直播群
unreadCount Number

未读计数。TUIChatEngine.TYPES.GRP_MEETING / TUIChatEngine.TYPES.GRP_AVCHATROOM 类型的群组会话不记录未读计数,该字段值为0

lastMessage Object

会话最新的消息

Properties
Name Type Description
nick String

群会话最新消息的发送者的昵称,C2C 会话为 ''

nameCard String

群会话最新消息的发送者的群名片,C2C 会话为 ''

lastTime Number

当前会话最新消息的时间戳,单位:秒

lastSequence Number

当前会话的最新消息的 Sequence

fromAccount String

最新消息来源用户的 userID

isRevoked Boolean

会话最新的消息是否已被撤回,true 表示已撤回,默认值为 false

revoker String | null

消息撤回者的 userID

isPeerRead Boolean

对端是否已读 C2C 会话的最新消息,默认值为 false

messageForShow String

最新消息的内容,用于展示。可能值:文本消息内容、"[图片]"、"[语音]"、"[位置]"、"[表情]"、"[文件]"、"[自定义消息]"。
若该字段不满足您的需求,您可以使用 payload 来自定义渲染。

type String

消息类型,具体如下:

类型 含义
TUIChatEngine.TYPES.MSG_TEXT 文本消息
TUIChatEngine.TYPES.MSG_IMAGE 图片消息
TUIChatEngine.TYPES.MSG_SOUND 音频消息
TUIChatEngine.TYPES.MSG_AUDIO 音频消息
TUIChatEngine.TYPES.MSG_VIDEO 视频消息
TUIChatEngine.TYPES.MSG_FILE 文件消息
TUIChatEngine.TYPES.MSG_LOCATION 地理位置消息
TUIChatEngine.TYPES.MSG_CUSTOM 自定义消息
TUIChatEngine.TYPES.MSG_GRP_TIP 群提示消息
TUIChatEngine.TYPES.MSG_GRP_SYS_NOTICE 群系统通知消息
payload Object

消息的内容,收到的音频 / 文件消息的 payload 中没有 url 字段。

groupProfile Group

群会话的群组资料

userProfile Profile

C2C会话的用户资料

groupAtInfoList Array.<GroupAtInfo>

群会话的 at 信息列表,接入侧可根据此信息在会话列表展示【有人@我】【@所有人】等效果。

remark String

好友备注,只有C2C会话且对端是我的好友,且我设置过此好友的备注才有值

isPinned Boolean

会话是否置顶

messageRemindType String

消息提醒类型,具体如下:

  • TUIChatEngine.TYPES.MSG_REMIND_ACPT_AND_NOTE 在线正常接收消息,离线时会有厂商的离线推送通知(Web 和小程序端无离线推送)
  • TUIChatEngine.TYPES.MSG_REMIND_DISCARD 在线和离线都拒收消息
  • TUIChatEngine.TYPES.MSG_REMIND_ACPT_NOT_NOTE 在线正常接收消息,离线不会有推送通知(消息免打扰)
markList Array

会话标记列表,具体如下:

  • TUIChatEngine.TYPES.CONV_MARK_TYPE_STAR 会话标星
  • TUIChatEngine.TYPES.CONV_MARK_TYPE_UNREAD 会话标记未读(重要会话)
  • TUIChatEngine.TYPES.CONV_MARK_TYPE_FOLD 会话折叠
  • TUIChatEngine.TYPES.CONV_MARK_TYPE_HIDE 会话隐藏
customData String

会话自定义数据

conversationGroupList Array

会话所属分组列表

draftText String

会话草稿

isMuted Boolean

会话是否已设置免打扰,默认为 false

operationType Number

群组操作类型, 默认 0。4-被踢出群组 5-群组被解散 8-主动退群

ConversationModel 主要负责会话操作和会话数据处理,ConversationModel 不需要开发者进行开发,由 TUIChatEngine 通过 ConversationStore 的 conversationList 提供给开发者直接使用。

Methods

deleteConversation() → {Promise.<any>}

删除会话

Example
let promise = conversationModel.deleteConversation();
promise.catch((error) => {
 // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
});
Returns:
Type
Promise.<any>

pinConversation() → {Promise.<any>}

置顶会话

Examples
// 置顶会话
// isPinned 为 false 时,调用此 API 是置顶会话
if (isPinned === false) {
 let promise = conversationModel.pinConversation();
 promise.catch((error) => {
   // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
 });
}
// 取消置顶
// isPinned 为 true 时,调用此 API 是取消置顶。
if (isPinned === true) {
 let promise = conversationModel.pinConversation();
 promise.catch((error) => {
   // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
 });
}
Returns:
Type
Promise.<any>

muteConversation() → {Promise.<any>}

设置消息免打扰

Examples
// 设置消息免打扰
// isMuted 为 false 时,调用此 API 是设置消息免打扰。
let promise = conversationModel.muteConversation();
promise.catch((error) => {
 // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
});
// 取消消息免打扰
// isMuted 为 true 时,调用此 API 是取消消息免打扰。
let promise = conversationModel.muteConversation();
promise.catch((error) => {
 // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
});
Returns:
Type
Promise.<any>

getAvatar() → {string}

获取会话头像

Example
let avatar = conversationModel.getAvatar();
Returns:
Type
string

getShowName() → {string}

获取会话名称

Example
let name = conversationModel.getShowName();
Returns:
Type
string

getGroupAtInfo() → {string}

获取群会话 @ 信息

Example
let atInfo = conversationModel.getGroupAtInfo();
Returns:
Type
string

getLastMessage(key) → {string|null}

获取会话最近一条消息的展示信息

Examples
// 获取会话 lastMessage 展示的时间
let time = conversationModel.getLastMessage('time');
// 获取会话 lastMessage 展示的文本内容
let time = conversationModel.getLastMessage('text');
Parameters:
Name Type Description
key string

lastMessage 需要展示的 key

  • time 获取会话 lastMessage 展示的时间
  • text 获取会话 lastMessage 展示的文本
Returns:
Type
string | null