写点什么

唠一唠融云的消息扩展功能

发布于: 2021 年 03 月 15 日

在使用融云 SDK 的过程中,由于定制化程度过高,其中有一项业务的实现是需要实现“红包”功能,但是实现的流程比较复杂:


  • 自定义红包消息 MoneyMessage ,然后 A 用户发送给 B 用户,B 用户在点击之后,同样发送一个自定义通知消息给 A ,用来修改 A 用户的界面。


上述流程看上去比较简单,但是实现起来就会比较复杂,并且并不灵活,于是跟融云技术反馈此问题之后,在从 4.0.3 版本开始支持单条消息扩展信息设置功能,用 消息扩展功能实现就会无比简单。


消息扩展功能的本质是在 Message 类中添加了扩展功能;


   /**
复制代码


     * 设置是否可以包含扩展信息
复制代码


     *
复制代码


     * @param canIncludeExpansion 是否可以包含扩展信息
复制代码


     */
复制代码


   public void setCanIncludeExpansion(boolean canIncludeExpansion);
复制代码


  
复制代码


  /**
复制代码


  * 消息扩展信息列表
复制代码


  *
复制代码


 * @return 消息扩展信息列表
复制代码


 */
复制代码


public Map<String, String> getExpansion();
复制代码


复制代码


 /**
复制代码


* 设置消息扩展信息列表
复制代码


* <p>扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息。</p>
复制代码


*
复制代码


* @param expansion 消息扩展信息列表
复制代码


*/
复制代码


 public void setExpansion(HashMap<String, String> expansion);
复制代码

可以调用 RongIMClient.getInstance().updateMessageExpansion(); 来设置消息扩展属性;可以调用 RongIMClient.getInstance().removeMessageExpansion();来删除消息扩展属性;当然监听消息属性可以设置:


        RongIMClient.getInstance().setMessageExpansionListener(new RongIMClient.MessageExpansionListener() {
复制代码


        @Override
复制代码


        public void onMessageExpansionUpdate(Map<String, String> expansion, Message message) {
复制代码


            
复制代码


        }
复制代码


复制代码


        @Override
复制代码


        public void onMessageExpansionRemove(List<String> keyArray, Message message) {
复制代码


复制代码


        }
复制代码


    });
复制代码

来实时监听消息属性的变化,这样可以动态实现红包点击接受的功能,或者礼物场景的实现


用户头像

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
唠一唠融云的消息扩展功能