作者:腾讯云-ahqzhang
群内 @ 消息与普通消息没有本质区别,仅是在被 @ 的人在收到消息时,需要在UI上做特殊处理,例如QQ的消息列表中会有标红提示。具体实现可以参考以下方案:
user1
TIMCustomElem
, 并在 TIMCustomElem
里添加自己设计的标识该消息为 @ 消息的消息协议。 一个简单的协议定义可以如下: {
"type":"REMIND",
"target":"user1"
}
@消息的构建过程示例代码如下(以android平台为例):
// 发送一条文本消息,并在消息中 @ 群成员 user1
TIMMessage msg = new TIMMessage();
//构建文本消息元素体
TIMTextElem txtElem = new TIMTextElem();
txtElem.setText("@user1 nice to meet u");
if(msg.addElement(txtElem) != 0){
Log.e(TAG, "add text elem failed");
return;
}
try{
//填充自定义的消息协议
JSONObject remindProto = new JSONObject();
remindProto.put("type", "REMIND");
remindProto.put("target", "user1");
//根据自己定义的协议构建自定义消息元素
TIMCustomElem customElem = new TIMCustomElem();
customElem.setDesc("remind msg");
customElem.setData(remindProto.toString().getBytes("utf-8");
if(msg.addElement(customElem) != 0){
Log.e(TAG, "add custom elem failed");
return;
}
}catch(Exception e){
Log.e(TAG, "build custom elem failed");
return;
}
注: 其中
TIMTextElem
不是必须的,如果确认不需要进行脏字过滤的情况下,可以把TIMTextElem
中的消息内容填到TIMCustomElem
中的desc
属性中。
TIMCustomElem
中的消息协议是否是 @ 消息协议。如果是, 则进行下一步处理,否则跳过本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。