跳到主要内容

图片和 GIF 消息

用户可以通过 IMKit 内置的图片插件发送图片消息和 GIF 消息。消息将出现在会话页面的消息列表组件中。SDK 默认发送消息包含以下消息内容对象:

  • 图片消息内容类为 RCImageMessage(类型标识:RC:ImgMsg
  • GIF 消息内容类为 RCGIFMessage(类型标识:RC:GIFMsg

(width=220) (width=220) (width=220)

局限

  • 仅支持发送本地图片和 GIF。
  • GIF 文件大小上限为 2 MB。
  • 图片消息和 GIF 消息中的文件默认会上传到融云的服务器。如需上传到自己的服务器,您需要拦截消息,自行上传。详见拦截消息

用法

扩展面板里默认带有发送图片消息入口,由 IMKit 内置的 Photo 实现。用户点击输入栏右侧 + 号按钮可展开扩展面板,点击图片图标,即可打开本地相册,选择图片、GIF 文件进行发送。

extension(width=250)

定制化

调整图片压缩质量

在发送前,图片会被压缩质量,以及生成缩略图,在聊天界面中展示。GIF 无缩略图,也不会被压缩。

  • 图片消息的缩略图:SDK 会以原图 30% 质量生成符合标准大小要求的大图后再上传和发送。压缩后最长边不超过 240 px。缩略图用于在聊天界面中展示。
  • 图片:发送消息时如未选择发送原图,SDK 会以原图 85% 质量生成符合标准大小要求的大图后再上传和发送。压缩后最长边不超过 1080 px。

一般情况下不建议修改 SDK 默认压缩配置。如需调整 SDK 压缩质量,详见知识库文档如何修改 SDK 默认的图片与视频压缩配置

自定义图片、GIF 消息的 UI

图片消息与 GIF 消息默认使用以下模板展示在消息列表中。

  • RCImageMessageCell
  • RCGIFMessageCell

如果需要调整内置消息样式,建议自定义消息 Cell,并将该自定义 Cell 提供给 SDK。IMKit 中所有消息模板都继承自 RCMessageCell,自定义消息 Cell 也需要继承 RCMessageCell。详见修改消息的展示样式

您也可以直接替换 RongCloud.bundle 中消息展示模板中引用的样式资源、字符串资源和图标资源。详见 IMKit 源码 RCImageMessageCell.mRCGIFMessageCell.m

自定义相册列表页 UI

资源修改方法
左上/右上按钮可设置 UIBarButtonItem 的全局 tintColor 来更改。
图片右上角点击选中按钮可替换图片资源中的 photopicker_state_normalphotopicker_state_selected 来更改。
其他按钮可通过 color.plist中 photoPicker 字典里的相关字段来更改。文件路径:IMKit/Resources/RCColor.plist

自定义相册预览页 UI

资源修改方法
左上角返回按钮可替换图片资源中的 navigator_btn_back 来更改。
右上角选择按钮可替换图片资源中的 photo_preview_unselectedphoto_preview_selected 来更改。
其它按钮可通过 color.plistphotoPreview 字典里的相关字段来更改。
选中发送原图时文字前面的选中状态可替换图片资源中的 selected_fullunselected_full 来更改。

隐藏扩展面板中的图片入口

IMKit 默认在扩展面板中启用了图片入口。如需动态修改,可创建自定义的扩展面板配置类 MyExtensionConfig,继承自 DefaultExtensionConfig,重写其中的 getPluginModules() 方法。详见输入区域