【即时通信IM】红包消息如何构建?

2020-07-29 19:33:56 浏览数 (1)

作者:腾讯云-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);

0 人点赞