Properties:
| Name | Type | Default | Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID | 
                  String | 
                     消息 ID  | 
                |||||||||||||||||||||||||||
type | 
                  String | 
                     消息类型,具体如下: 
  | 
                |||||||||||||||||||||||||||
payload | 
                  Object | 
                     消息的内容,详细内容请查看: Message  | 
                |||||||||||||||||||||||||||
conversationID | 
                  String | 
                     消息所属的会话 ID  | 
                |||||||||||||||||||||||||||
conversationType | 
                  String | 
                     消息所属会话的类型,具体如下: 
  | 
                |||||||||||||||||||||||||||
to | 
                  String | 
                     接收方的 userID  | 
                |||||||||||||||||||||||||||
from | 
                  String | 
                     发送方的 userID,在消息发送时,会默认设置为当前登录的用户  | 
                |||||||||||||||||||||||||||
flow | 
                  String | 
                     消息的流向 
  | 
                |||||||||||||||||||||||||||
time | 
                  Number | 
                     消息时间戳。单位:秒  | 
                |||||||||||||||||||||||||||
status | 
                  String | 
                     消息状态 
  | 
                |||||||||||||||||||||||||||
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
  | 
                ||||||||||||||||||||||||||
isBroadcastMessage | 
                  Boolean | 
                    false
                   | 
                  
                     对所有直播群广播消息,true 标识直播群广播消息(需要您购买旗舰版套餐)  | 
                ||||||||||||||||||||||||||
isSupportExtension | 
                  Boolean | 
                    false
                   | 
                  
                     是否支持消息扩展,true 支持 false 不支持(需要您购买旗舰版套餐)  | 
                ||||||||||||||||||||||||||
revoker | 
                  String | null | 
                     消息撤回者的 userID  | 
                |||||||||||||||||||||||||||
progress | 
                  Number | 
                     图片、视频、语音、文件消息上传进度, 默认 0  | 
                |||||||||||||||||||||||||||
revokerInfo | 
                  Object | 
                     消息撤回者的信息。 Properties
  | 
                |||||||||||||||||||||||||||
revokeReason | 
                  String | 
                     消息撤回的原因。  | 
                |||||||||||||||||||||||||||
hasRiskContent | 
                  Boolean | 
                     语音、视频消息是否被标记为有安全风险的消息,默认为 false。 
  | 
                |||||||||||||||||||||||||||
reactionList | 
                  Array.<ReactionInfo> | 
                     需要您购买旗舰版才支持此功能,购买旗舰版能力并重新登录后,拉漫游时会自动获取表情回复摘要信息。  | 
                
MessageModel 主要负责消息操作和消息上屏数据处理,MessageModel 不需要开发者进行开发,由 TUIChatEngine 通过 ChatStore 的 messageList 提供给开发者直接使用。
Methods
modifyMessage(options) → {Promise.<any>}
修改消息
Example
let promise = messageModel.modifyMessage(options);
 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 - 文本消息展示内容
// result.name - 文本消息名称,值为 text 或 img, 返回 img 时标识是 emoji 表情消息
// result.type - 文本消息类型,自定义 emoji 表情消息时返回 custom,UIKit 默认的 emoji 表情和普通文本消息不返回 type 字段(v2.2.0 起支持)
// result.emojiKey - emoji 表情的 key(v2.2.0 起支持)
// result.src - emoji 表情消息展示链接,type = custom 时返回空字符串,需要 UIKit 层根据 baseUrl 和 emojiKey 拼接完整链接
          // 表情消息返回结果
const result = messageModel.getMessageContent();
// result.showName - 消息发送方名称
// result.name - 表情消息名称
// retsult.type - 表情消息类型,自定义 face 表情消息时返回 custom,UIKit 默认 face 表情包 type 返回 ‘’(v2.2.0 起支持)
// result.url - 表情消息展示链接,type = custom 时返回空字符串,需要 UIKit 层根据 baseUrl 和 name 拼接完整链接
          // 地理位置消息返回结果
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>