作者:腾讯云-ahqzhang
红包消息的话,与@消息类似,可以通过 TIMCustomElem
来实现。需要应用在UI上做相应的特殊处理,比如检查到当前消息为红包消息后,消息展示为红包的样式。
另外,红包消息作为重要消息,最好在发送消息的时候将其设置为高优先级消息,以最大程序保证消息在触达频率限制的情况下仍可以送达(目前群内消息默认限制频率为40条/s, 单聊消息默认限制频率为10条/s)。
关于消息优先级相关的内容可以参考 消息优先级。
注:红包消息的支付部分功能,需要应用自行集成相应的支付SDK,ImSDK暂不提供这部分功能。
一个简单的红包消息的构建过程如下:
代码语言:javascript复制//构建一条新的消息
TIMMessage msg = new TIMMessage();
try{
//填充自定义的消息协议
JSONObject redPacket= new JSONObject();
redPacket.put("type", "RED_PACKET");
redPacket.put("amount", 2018);
redPacket.put("msg", "Happy new year!");
//根据自己定义的协议构建自定义消息元素
TIMCustomElem customElem = new TIMCustomElem();
customElem.setDesc("red packet");
customElem.setData(redPacket.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;
}
//设置消息优先级为高优先级
msg.setPriority(TIMMessagePriority.High);