
IM即时通讯
安全可靠、全球互通

实时音视频
流畅稳定、省钱省力
回答:
1. 首先按照下面链接实现下自定义消息
4.xsdk
https://doc.rongcloud.cn/im/Android/4.X/ui/guide/private/conversation/msgsend/android#common
5.xsdk
https://doc.rongcloud.cn/im/Android/5.X/noui/message/customize
2. 这里使用点击消息改变消息信息实现 使用消息扩展 可同步到远端,可参考下面链接
4.xsdk
5.xsdk
https://doc.rongcloud.cn/im/Android/5.X/noui/message/expansion
具体实现方式
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("红包未打开"); }