sendMessage
功能介绍
发送消息
6.0 及以上版本支持 groupID 和 receiver 同时设置,如果同时设置,表示在群内给 receiver 发送定向消息,如果需要给多个 receiver 发送定向消息,请先调用 createTargetedGroupMessage 接口创建定向消息,再调用 sendMessage 接口发送。
设置 offlinePushInfo 字段,需要先在 V2TIMOfflinePushManager 开启推送,推送开启后,除了自定义消息,其他消息默认都会推送。
如果自定义消息也需要推送,请设置 offlinePushInfo 的 desc 字段,设置成功后,推送的时候会默认展示 desc 信息。
AVChatRoom 群聊不支持 onlineUserOnly 字段,如果是 AVChatRoom 请将该字段设置为 false。
如果设置 onlineUserOnly 为 true 时,该消息为在线消息且不会被计入未读计数。
参数详解
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
id | string | 是 | 创建消息返回的id 参数为传入参数对象的参数 |
receiver | string | 否 | 单聊消息接收者 userID。如果是单聊消息,必传。 参数为传入参数对象的参数 |
groupID | string | 否 | 群聊 groupID。如果是群聊消息,必传。参数为传入参数对象的参数 |
priority | MessagePriorityEnum | 否 | 消息优先级 参数为传入参数对象的参数 |
onlineUserOnly | boolean | 否 | 是否只有在线用户才能收到 参数为传入参数对象的参数 |
offlinePushInfo | V2TimOfflinePushInfo | 否 | 离线推送信息 参数为传入参数对象的参数 |
needReadReceipt | boolean | 否 | 消息是否需要已读回执 参数为传入参数对象的参数 |
isExcludedFromUnreadCount | boolean | 否 | 发送消息是否计入会话未读数 参数为传入参数对象的参数 |
isExcludedFromLastMessage | boolean | 否 | 发送消息是否计入会话 lastMessage 参数为传入参数对象的参数 |
isSupportMessageExtension | boolean | 否 | 发送消息是否支持消息扩展 lastMessage 参数为传入参数对象的参数 |
cloudCustomData | string | 否 | 消息云端数据 参数为传入参数对象的参数 |
localCustomData | string | 否 | 消息本地数据 参数为传入参数对象的参数 |
返回模板
V2TimValueCallback<V2TimMessage>
{
code : number
desc : string
data : {
msgID: string
timestamp: number
progress: number
sender: string
nickName: string
friendRemark: string
faceUrl: string
nameCard: string
groupID: string
userID: string
status: number
elemType: number
textElem: V2TimTextElem
customElem: V2TimCustomElem
imageElem: V2TimImageElem
soundElem: V2TimSoundElem
videoElem: V2TimVideoElem
fileElem: V2TimFileElem
locationElem: V2TimLocationElem
faceElem: V2TimFaceElem
groupTipsElem: V2TimGroupTipsElem
mergerElem: V2TimMergerElem
localCustomData: string
localCustomInt: number
cloudCustomData: string
isSelf: boolean
isRead: boolean
isPeerRead: boolean
priority: number
offlinePushInfo: V2TimOfflinePushInfo
groupAtUserList: string[]
seq: string
random: number
isExcludedFromUnreadCount: boolean
isExcludedFromLastMessage: boolean
id: string
needReadReceipt: boolean
}
}
返回值详解
名称 | 数值类型 | 描述 |
---|---|---|
code | number | 请求结果错误码 |
desc | string | 请求结果描述 |
data | V2TimMessage | 发送的信息 |
代码示例
import { TencentImSDKPlugin, MessagePriorityEnum } from 'react-native-tim-js';
// 创建文本消息
const createTextMessageRes = await TencentImSDKPlugin.v2TIMManager
.getMessageManager()
.createTextMessage(
'test' // 文本信息
);
if (createTextMessageRes.code == 0) {
// 文本信息创建成功
const id = createTextMessageRes.data?.id;
// 发送文本消息
// 在sendMessage时,若只填写receiver则发个人用户单聊消息
// 若只填写groupID则发群组消息
// 若填写了receiver与groupID则发群内的个人用户,消息在群聊中显示,只有指定receiver能看见
const sendMessageRes = await TencentImSDKPlugin.v2TIMManager
.getMessageManager()
.sendMessage({
id: id!, // 创建的messageid
receiver: 'userID', // 接收人id
groupID: 'groupID', // 接收群组id
priority: MessagePriorityEnum.V2TIM_PRIORITY_DEFAULT, // 消息优先级
onlineUserOnly: false, // 是否只有在线用户才能收到,如果设置为 true ,接收方历史消息拉取不到,常被用于实现“对方正在输入”或群组里的非重要提示等弱提示功能,该字段不支持 AVChatRoom。
isExcludedFromUnreadCount: false, // 发送消息是否计入会话未读数
isExcludedFromLastMessage: false, // 发送消息是否计入会话 lastMessage
needReadReceipt: false, // 消息是否需要已读回执(只有 Group 消息有效,6.1 及以上版本支持,需要您购买旗舰版套餐)
offlinePushInfo: {}, // 离线推送时携带的标题和内容
cloudCustomData: '', // 消息云端数据,消息附带的额外的数据,存云端,消息的接受者可以访问到
localCustomData: '', // 消息本地数据,消息附带的额外的数据,存本地,消息的接受者不可以访问到,App 卸载后数据丢失
});
if (sendMessageRes.code === 0) {
// 发送成功
}
}