插入消息
功能描述
开发者可通过下面方法在会话页面内插入一条消息。通过此方法插入的消息,会将消息实体对应的内容插入数据源中。
插入本地消息
IMKit 从 1.4.3
版本开始支持插入本地消息。
向本地会话中插入一条发送方向的消息。此消息必须为客户端会存储的消息类型,参考消息介绍文档的「了解消息存储策略」。
该方法只是将消息存储在 SDK 本地数据库中,不会实际发送给服务器和对方。
插入消息后, 会自动刷新 UI 界面。
TypeScript
/**
* 单条消息入库
*
* Message 下列属性会被入库,其他属性会被抛弃:
* ```
* conversationType 会话类型
* targetId 会话 ID
* direction 消息方向,默认为发送
* senderId 发送者 ID
* receivedStatus 接收状态,默认为未读
* sentStatus 发送状态,默认为发送失败
* sentTime 发送时间
* content 消息内容
* objectName 消息类型,设置 content 的时候 SDK 会自动赋值对应的 objectName
* messageUid 服务端生产的消息唯一 ID,如要携带该字段需要保证入库后是唯一的
* extra 扩展信息
* ```
* @param Message 需要入库的消息,会话类型不支持聊天室和超级群
* @returns 入库结果
* @version 1.4.3
*/
public insertMessage(msg: Message): Promise<IAsyncResult<Message>>
插入单条消息示例代码
TypeScript
let conId = new ConversationIdentifier();
conId.conversationType = ConversationType.Private;
conId.targetId = "会话 Id";
let txtMsg = new TextMessage();
txtMsg.content = "文本内容";
let msg = new Message(conId, txtMsg);
msg.senderId = "发送方 Id";
RongIM.getInstance().messageService().insertMessage(msg).then(result => {
if (EngineError.Success !== result.code) {
// 单条消息入库失败
return;
}
if (!result.data) {
// 单条入库的消息为空
return;
}
// 单条入库成功的消息
let message = result.data as Message;
});