跳到主要内容

文件消息

用户可以通过 IMKit 内置的文件插件发送文件消息。消息将出现在会话页面的消息列表组件中。文件插件默认发送的消息包含文件消息内容对象 [FileMessage](类型标识:RC:FileMsg

message-file-unread(width=250) (width=250)

局限

  • 仅支持发送本地文件。
  • 文件消息中的文件默认会上传到融云的服务器。如需上传到自己的服务器,详见发送消息
  • 不支持在 IMKit 中预览文件,请在 UI 中选择用其他应用打开。

用法

IMKit 内置的 FilePlugin 实现了扩展面板中的文件消息功能。

发送文件消息

扩展面板里默认带有发送文件消息入口。用户点击输入栏右侧 + 号按钮可展开扩展面板,点击文件图标,即可发送文件消息。

extension(width=250)

定制化

修改默认文件保存位置

IMKit 目前不支持修改。

替换文件消息默认的文件图标

文件消息(FileMessage)在会话界面中显示时,会根据消息携带的文件类型展示匹配的图标。SDK 默认为以下类型的文件提供了匹配的图标,如果为其他类型文件,则默认显示统一的默认图标。

  • 图片类:jpg、png、gif、jpeg
  • 文本类:txt
  • 视频类:rmvb、mp4
  • 音频类:mp3
  • Word 类:doc、docx
  • PPT 类:ppt、pptx
  • Excel 类:xls、xlsx
  • PDF 类:pdf
  • Apk 类:apk
  • Numbers 类:numbers
  • Pages 类:pages

SDK 支持 App 修改文件类型(扩展名)对应显示的图标。App 可以按需更新指定图标,替换全部图标,或增加文件类型(扩展名)及图标。详见设置文件类型图标

自定义文件消息的 UI

文件消息使用 FileMessageItemProvider 模板展示在消息列表中。 如果需要调整内置消息样式,需继承 BaseMessageItemProvider<FileMessage> 自行实现消息展示模板类,详见自定义Provider

调用下面的接口将该自定义模板提供给 SDK,objectNameFileMessageObjectName

import { FileMessageObjectName, RongIM } from "@rongcloud/imkit";

// 注册自定义文件消息 provider 给 IMKit
RongIM.getInstance().conversationService().addMessageItemProvider(FileMessageObjectName, new CustomFileMessageItemProvider())

替换文件消息插件

IMKit 默认在扩展面板中启用了文件消息入口。如需动态修改,需要实现 IBoardPlugin 进行自定义插件,详见自定义插件

let plugin = new CustomFilePlugin()
let filePluginIndex = 2
RongIM.getInstance().conversationService().replaceBoardPlugin(filePluginIndex, plugin)

隐藏文件消息插件

IMKit 目前暂不支持隐藏。