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("红包未打开");
}