Properties:
Name | Type | Default | Description | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ID |
String |
消息 ID |
|||||||||||||||||||||||||||
type |
String |
消息类型,具体如下:
|
|||||||||||||||||||||||||||
payload |
Object |
消息的内容 |
|||||||||||||||||||||||||||
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(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 - 文本消息展示内容
// 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>