转发消息
IMKit 默认没有实现对单条、多条消息的转发以及合并转发,下面提供了可以实现单条或多条消息的转发的代码示例进行参考。
局限
- 并非所有消息类型均支持合并转发。
- 支持的消息类型:文本、图片、图文、GIF、动态表情(
RC:StkMsg)、名片、位置、小视频、文件、普通语音、高清语音、音视频通话(RC:VCSummary)。 - 不支持的情况:未在支持列表中的消息类型,例如引用消息,以及未发送成功的消息等特殊情况不支持转发。自定义消息均不支持合并转发。
- 支持的消息类型:文本、图片、图文、GIF、动态表情(
- 合并转发支持合并不能超过 100 条消息。
单条转发
可以增加消息气泡的长按事件来实现转发。在 onClick 中发消息使用 示例代码 的 sendForwardMessage 方法。
TypeScript
let msgForwardLongClickAction :ItemLongClickAction<Message> = {
obtainTitle: (context: Context, data: Message): string | Resource => {
return "转发消息"
},
onClick: (context: Context, data: Message): void => {
// 转发消息
},
onFilter: (data: Message): boolean => {
// 是否显示该长按事件?true 显示;false 不显示
// 开发者可以根据 Message 对象的会话类型或者消息类型决定是否显示
return true;
},
// 自定义的消息长按事件 Id,相同的 Id 的长按事件只会增加一次
actionId: 'CustomMessageActionId'
}
RongIM.getInstance().conversationService().addMessageItemLongClickAction(msgForwardLongClickAction);
合并转发(1.4.3 支持)
SDK 会将选中的消息合并为一条合并转发消息,包含消息内容对象 CombineMessage(类型标识:RC:CombineMsg)。合并转发的消息默认折叠显示,可点击展开。
预览页面事件监听
您可以通过 addCombineMessageEventListener 方法自定义合并转发预览界面的事件监听: