IMessageModel

IMessageModel

Properties:
Name Type Default Description
ID String

消息 ID

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_CUSTOM 自定义消息
TUIChatEngine.TYPES.MSG_MERGER 合并消息
TUIChatEngine.TYPES.MSG_LOCATION 位置消息
TUIChatEngine.TYPES.MSG_FACE 表情消息
TUIChatEngine.TYPES.MSG_GRP_TIP 群提示消息
TUIChatEngine.TYPES.MSG_GRP_SYS_NOTICE 群系统通知消息
payload Object

消息的内容

conversationID String

消息所属的会话 ID

conversationType String

消息所属会话的类型,具体如下:

类型 含义
TUIChatEngine.TYPES.CONV_C2C C2C(Client to Client, 端到端) 会话
TUIChatEngine.TYPES.CONV_GROUP GROUP(群组) 会话
TUIChatEngine.TYPES.CONV_SYSTEM SYSTEM(系统) 会话
to String

接收方的 userID

from String

发送方的 userID,在消息发送时,会默认设置为当前登录的用户

flow String

消息的流向

  • in 为收到的消息
  • out 为发出的消息
time Number

消息时间戳。单位:秒

status String

消息状态

  • unSend(未发送)
  • success(发送成功)
  • fail(发送失败)
isRevoked Boolean

=false - 是否被撤回的消息,true 标识被撤回的消息

priority String TUIChatEngineTYPES.MSG_PRIORITY_NORMAL

消息优先级,用于群聊

nick String ''

消息发送者的昵称(在 AVChatRoom 内支持,需提前调用 TUIUserService.updateMyProfile 设置)

avatar String ''

消息发送者的头像地址(在 AVChatRoom 内支持,需提前调用 TUIUserService.updateMyProfile 设置)

isPeerRead Boolean false

C2C 消息对端是否已读,true 标识对端已读

nameCard String ''

非直播群消息发送者的群名片(也可称之为消息发送者的群昵称),需提前调用 TUIGroupService.setGroupMemberNameCard 设置

atUserList Array

群聊时此字段存储被 at 的群成员的 userID

cloudCustomData String ''

消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

isDeleted Boolean false

是否被删除的消息,true 标识被删除的消息

isModified Boolean false

是否被修改过,true 标识被修改过的消息

needReadReceipt Boolean false

是否需要已读回执,true 标识需要(需要您购买旗舰版套餐)

readReceiptInfo Object {readCount,unreadCount,isPeerRead}

消息已读回执信息

Properties
Name Type Description
readCount Number | undefined

群消息已读数
如果想要查询哪些群成员已读了消息,可调用 TUIChatService.getGroupMessageReadMemberList

unreadCount Number | undefined

群消息未读数

isPeerRead Boolean | undefined

C2C消息对端是否已发送已读回执,消息发送方收到已读回执通知或拉漫游时会更新此属性

isBroadcastMessage Boolean false

对所有直播群广播消息,true 标识直播群广播消息(需要您购买旗舰版套餐)

isSupportExtension Boolean false

是否支持消息扩展,true 支持 false 不支持(需要您购买旗舰版套餐)

revoker String | null

消息撤回者的 userID

progress Number

图片、视频、语音、文件消息上传进度, 默认 0

revokerInfo Object

消息撤回者的信息。

Properties
Name Type Description
avatar String

消息撤回者的头像

nick String

消息撤回者的昵称

userID String

消息撤回者的 userID

revokeReason String

消息撤回的原因。

hasRiskContent Boolean

语音、视频消息是否被标记为有安全风险的消息,默认为 false。

  • 只有在开通【云端审核】功能后才生效,【云端审核】开通流程请参考 云端审核功能
reactionList Array.<ReactionInfo>

需要您购买旗舰版才支持此功能,购买旗舰版能力并重新登录后,拉漫游时会自动获取表情回复摘要信息。

MessageModel 主要负责消息操作和消息上屏数据处理,MessageModel 不需要开发者进行开发,由 TUIChatEngine 通过 ChatStore 的 messageList 提供给开发者直接使用。

Methods

modifyMessage(options) → {Promise.<any>}

修改消息

Example
let promise = messageModel.modifyMessage(message);
 promise.catch((error) => {
   // 调用异常时业务侧可以通过 promise.catch 捕获异常进行错误处理
 });
Parameters:
Name Type Description
options ModifyMessageParams

修改的内容

Returns:
Type
Promise.<any>

revokeMessage() → {Promise.<any>}

撤回单聊消息或者群聊消息。撤回成功后,消息对象的 isRevoked 属性值为 true。

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

resendMessage() → {Promise.<any>}

重发消息的接口,当消息发送失败时,可调用该接口进行重发

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

deleteMessage() → {Promise.<any>}

删除消息的接口。删除成功后,被删除消息的 isDeleted 属性值为 true。

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

quoteMessage() → {Message}

引用当前消息

Example
let message = messageModel.quoteMessage();
Returns:
Type
Message

replyMessage() → {Message}

回复当前消息

Example
let message = messageModel.replyMessage();
Returns:
Type
Message

getSignalingInfo() → {Record.<string, any>|null}

获取信令信息

Example
let signaling = messageModel.getSignalingInfo();
// signaling != null 说明是信令消息,可以进行信令相关的业务逻辑处理
// signaling = null  说明是非信令消息
if (signaling) {
  console.log(signaling)
}
Returns:
Type
Record.<string, any> | null

getMessageContent() → {Record.<string, any>}

获取消息展示内容
注意1:以下解析为默认解析行为,如果需要自定义解析,可以通过 messageModel 结构体内容自行解析。
注意2:该接口不支持群系统消息解析。
注意3:群提示消息不支持返回 showName。
注意4:showName 显示优先级如下:

  • 单聊:remark > nick > userID
  • 群聊:remark > nameCard > nick > userID
Examples
// 文本消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.text - 文本消息展示内容
// 表情消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.name - 表情消息名称
// result.url - 表情消息展示链接
// 地理位置消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.lon - 经度
// result.lat - 纬度
// result.href - 地图跳转链接
// result.url - 地图展示链接
// result.description - 描述信息
// 图片消息返回结果,默认返回的是原图信息,如果需要缩略图或大图信息请从 messageModel.payload 中获取
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.url - 图片访问链接
// result.width - 图片宽度
// result.width - 图片高度
// 语音消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.url - 语音播放链接
// result.second - 语音时长
// 视频消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.url - 视频播放链接
// result.snapshotUrl - 视频封面图链接
// result.snapshotWidth - 视频封面图宽度
// result.snapshotHeight - 视频封面图高度
// 文件消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.url - 文件下载链接
// result.name - 文件名称
// result.size - 文件大小
// 自定义消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.custom - 自定义消息展示内容
// result.businessID - 业务标识信息,创建群组自定义消息的 businessID 是 group_create,其他的自定义消息返回为空字符串
// 合并消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// 合并消息返回内容是 message.payload 内容
// 群提示消息返回结果
const result = messageModel.getMessageContent();
// result.text - 群提示消息展示内容
Returns:
Type
Record.<string, any>