sendMessage
功能介绍
发送消息
发送消息方法在核心类 TencentImSDKPlugin.v2TIMManager.getMessageManager()中。
V2TimMessage 中可以携带不同类型子类,表示不同类型的消息。
发送消息首先通过createXXXMessage创建不同种类的信息,再通过sendMessage根据消息id发送。
参数详解
参数名称 | 参数类型 | 是否必填 | 平台 | 描述 |
---|---|---|---|---|
id | String | 是 | 全部 | 创建消息返回的id |
receiver | String | 否 | 全部 | 单聊消息接收者 userID。如果是单聊消息,必传。 |
groupID | String | 否 | 全部 | 群聊 groupID。如果是群聊消息,必传。 |
priority | MessagePriorityEnum | 否 | 全部 | 消息优先级 |
onlineUserOnly | bool | 否 | 全部 | 是否只有在线用户才能收到 |
offlinePushInfo | OfflinePushInfo | 否 | 全部 | 离线推送信息 |
needReadReceipt | bool | 否 | 全部 | 消息是否需要已读回执 |
isExcludedFromUnreadCount | bool | 否 | 全部 | 发送消息是否计入会话未读数 |
isExcludedFromLastMessage | bool | 否 | 全部 | 发送消息是否计入会话 lastMessage |
isSupportMessageExtension | boolean | 否 | 全部 | 发送消息是否支持消息扩展 |
cloudCustomData | String | 否 | 全部 | 消息云端数据 |
localCustomData | String | 否 | 全部 | 消息本地数据 |
返回模板
V2TimValueCallback<V2TimMessage>
{
code : int
desc : String
data : {
cloudCustomData : String
customElem : V2TimCustomElem
elemType : int
faceElem : V2TimFaceElem
faceUrl : String
fileElem : V2TimFileElem
friendRemark : String
groupAtUserList : List<String>
groupID : String
groupTipsElem : V2TimGroupTipsElem
id : String
imageElem : V2TimImageElem
isExcludedFromLastMessage : bool
isExcludedFromUnreadCount : bool
isPeerRead : bool
isRead : bool
isSelf : bool
localCustomData : String
localCustomInt : int
locationElem : V2TimLocationElem
mergerElem : V2TimMergerElem
messageFromWeb : String
msgID : String
nameCard : String
needReadReceipt : bool
nickName : String
offlinePushInfo : V2TimOfflinePushInfo
priority : int
progress : int
random : int
sender : String
seq : String
soundElem : V2TimSoundElem
status : int
textElem : V2TimTextElem
timestamp : int
userID : String
videoElem : V2TimVideoElem
}
}
返回值详解
名称 | 数值类型 | 描述 |
---|---|---|
code | int | 请求结果错误码 |
desc | String | 请求结果描述 |
data | V2TimMessage | 发送的信息 |
代码示例
// 创建文本消息
V2TimValueCallback<V2TimMsgCreateInfoResult> createTextMessageRes =
await TencentImSDKPlugin.v2TIMManager
.getMessageManager()
.createTextMessage(
text: "test", // 文本信息
);
if (createTextMessageRes.code == 0) {
// 文本信息创建成功
String? id = createTextMessageRes.data?.id;
// 发送文本消息
// 在sendMessage时,若只填写receiver则发个人用户单聊消息
// 若只填写groupID则发群组消息
// 若填写了receiver与groupID则发群内的个人用户,消息在群聊中显示,只有指定receiver能看见
V2TimValueCallback<V2TimMessage> 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: OfflinePushInfo(), // 离线推送时携带的标题和内容
cloudCustomData: "", // 消息云端数据,消息附带的额外的数据,存云端,消息的接受者可以访问到
localCustomData:
"" // 消息本地数据,消息附带的额外的数据,存本地,消息的接受者不可以访问到,App 卸载后数据丢失
);
if (sendMessageRes.code == 0) {
// 发送成功
}
}