
基础产品
适用各种通信场景,接入灵活

融合场景
专为场景打造,接入成本低

扩展能力
核心能力延展,功能全面

更多服务
一站式服务,满足各种需求
回答:
首先按照下面链接实现下自定义消息
https://doc.rongcloud.cn/im/Android/4.X/ui/guide/private/conversation/msgsend/android#common
这里使用点击消息改变消息信息实现 使用消息扩展 可同步到远端,可参考下面链接
具体实现方式
1.发消息时要支持设置消息扩展,如下面代码块
CustomMessage messageContent = CustomMessage.obtain("自定义消息"); Message message = Message.obtain(targetId, Conversation.ConversationType.PRIVATE, messageContent); message.setCanIncludeExpansion(true);//设置是否可以包含扩展信息 RongIM.getInstance().sendMessage(message, pushContent, pushData, new IRongCallback.ISendMessageCallback(){}
2.在自定义消息provider的bindView() 方法中 使用textview点击模拟打开红包
TextView tv = view.findViewById(R.id.您的控件id); tv.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Map<String,String> map = new HashMap<>(); map.put("key","自定义value"); //更新扩展信息 RongIMClient.getInstance().updateMessageExpansion(map, uiMessage.getUId(), new RongIMClient.OperationCallback() { @Override public void onSuccess() { tv.setText("红包已经打开"); } @Override public void onError(RongIMClient.ErrorCode errorCode) { } }); } });
3.在自定义消息provider的bindview中获取消息扩展内容并修改消息样式
//获取扩展信息 if (null!=uiMessage.getMessage().getExpansion()&&!TextUtils.isEmpty(uiMessage.getMessage().getExpansion().get("key"))&&uiMessage.getMessage().getExpansion().get("key").equals("自定义value")){ viewById.setText("红包已经打开"); }else { viewById.setText("红包未打开"); }