文档导航
Flutter
SDK 版本:  5.X

消息介绍

更新时间:2024-07-15 PDF

消息基本结构

属性名 类型 说明
conversationType RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 所属会话的业务标识,长度限制 20 字符,仅在超级群下生效
messageType RCIMIWMessageType 消息的类型
messageId int 本地存储的消息的唯一值(数据库索引唯一值)
messageUId String 服务器消息唯一 ID(在同一个 Appkey 下全局唯一)
direction RCIMIWMessageDirection 消息的方向
receivedTime int 消息的接收时间(Unix 时间戳、毫秒)
sentTime int 消息的发送时间(Unix 时间戳、毫秒)
receivedStatus RCIMIWReceivedStatus 消息的接收状态
sentStatus RCIMIWSentStatus 消息的发送状态
senderUserId String 消息的发送者 ID
expansion Map 消息扩展信息列表,该属性在消息发送时确定,发送之后不能再做修改。
扩展信息只支持单聊和群组,其它会话类型不能设置扩展信息。
默认消息扩展字典 key 长度不超过 32 ,value 长度不超过 4096 ,单次设置扩展数量最大为 20,消息的扩展总数不能超过 300
offLine bool 是否是离线消息,只在接收消息的回调方法中有效,如果消息为离线消息,则为 YES ,其他情况均为 NO
groupReadReceiptInfo RCIMIWGroupReadReceiptInfo 群阅读回执状态
userInfo RCIMIWUserInfo 消息携带的用户信息
mentionedInfo RCIMIWMentionedInfo 消息的 @ 信息
pushOptions RCIMIWMessagePushOptions 消息推送配置,仅可在发送方进行配置,接收方为空
extra String 消息的附加字段,设置后接收方收到消息后也可以拿到数据。

消息类型与构造方法

IMLib 的消息类型(RCIMIWMessageType)枚举提供了预定义的文本、语音、图片等消息类型,并且支持 App 通过 RCIMIWMessageType.custom 实现自定义消息。

各类型消息默认会在客户端本地存储,计入未读消息数。以下类型除外:

  • 撤回消息类型(RCIMIWMessageType.recall):客户端本地存储,但不计入未读消息数
  • 命令消息类型(RCIMIWMessageType.command):客户端不进行本地存储,不计入未读消息数
  • 命令通知消息类型(RCIMIWMessageType.commandNotification):客户端本地存储,不计入未读消息数。
  • 自定义消息类型(RCIMIWMessageType.custom):由 App 自定义存储策略(RCIMIWCustomMessagePolicy)进行控制。

文本消息

类型:RCIMIWMessageType.text

专有可访问属性:

属性名 类型 说明
text String 文本内容

构建文本消息

RCIMIWTextMessage? message = await engine.createTextMessage(
      type,
      targetId,
      channelId,
      text,
    );
              
已复制
1
2
3
4
5
6

参数名 参数类型 描述
type RCIMIWConversationType 会话类型,
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
text String 文本内容

语音消息

类型:RCIMIWMessageType.voice

专有可访问属性:

属性名 类型 说明
duration int 语音的长度,单位:秒

构建语音消息

RCIMIWVoiceMessage? message = await engine.createVoiceMessage(
      type,
      targetId,
      channelId,
      path,
      duration,
    );
              
已复制
1
2
3
4
5
6
7

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
path String 语音消息的本地路径,必须为有效路径
duration int 语音消息的消息时长

图片消息

类型:RCIMIWMessageType.image

专有可访问属性:

属性名 类型 说明
thumbnailBase64String String 图片的缩略图数据
original bool 是否为原图

构建图片消息

RCIMIWImageMessage? message = await engine.createImageMessage(
          type,
          targetId,
          channelId,
          path,
        );
              
已复制
1
2
3
4
5
6

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
path String 图片消息的本地路径,必须为有效路径

文件消息

类型:RCIMIWMessageType.file

专有可访问属性:

属性名 类型 说明
name String 文件名
fileType String 文件类型
size int 文件大小,单位为 Byte

构建文件消息

RCIMIWFileMessage? message = await engine.createFileMessage(
      type,
      targetId,
      channelId,
      path,
    );
              
已复制
1
2
3
4
5
6

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
path String 文件消息的本地路径,必须为有效路径

小视频消息

类型:RCIMIWMessageType.sight

专有可访问属性:

属性名 类型 说明
duration int 视频时长
size int 视频大小
name String 视频的名称
thumbnailBase64String String 缩略图数据

构建小视频消息

RCIMIWSightMessage? message = await engine.createSightMessage(
      type,
      targetId,
      channelId,
      path,
      duration,
    );
              
已复制
1
2
3
4
5
6
7

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
path String 小视频消息的本地路径,必须为有效路径
duration int 小视频消息的视频时长

GIF 图消息

类型:RCIMIWMessageType.gif

专有可访问属性:

属性名 类型 说明
dataSize int GIF 图的大小,单位字节
width int GIF 图的宽
height int GIF 图的高

构建 GIF 消息

RCIMIWGIFMessage? message = await engine.createGIFMessage(
      type,
      targetId,
      channelId,
      path
    );
              
已复制
1
2
3
4
5
6

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
path String GIF 消息的本地路径

撤回消息

撤回消息不可以主动构建发送,需要撤回消息请调用撤回消息接口

类型:RCIMIWMessageType.recall

专有可访问属性:

属性名 类型 说明
admin bool 是否是管理员操作
deleted bool 是否删除
recallTime int 被撤回的原始消息的发送时间(毫秒)
recallActionTime int 撤回动作的时间(毫秒)
originalMessage RCIMIWMessage 被撤回的原消息

引用消息

类型:RCIMIWMessageType.reference

专有可访问属性:

属性名 类型 说明
text String 引用文本
referenceMessage RCIMIWMessage 被引用的消息

构建引用消息

RCIMIWReferenceMessage? message = await engine.createReferenceMessage(
      type,
      targetId,
      channelId,
      message,
      text,
    );
              
已复制
1
2
3
4
5
6
7

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
referenceMessage RCIMIWMessage 引用的消息
text String 引用的文本内容

位置消息

类型:RCIMIWMessageType.location

专有可访问属性:

属性名 类型 说明
longitude double 经度信息
latitude double 纬度信息
poiName String POI 信息
thumbnailPath String 缩略图地址

构建位置消息

RCIMIWLocationMessage? message = await engine?.createLocationMessage(
      type,
      targetId,
      channelId,
      double.parse(longitude),
      double.parse(latitude),
      poiName,
      path,
    );
              
已复制
1
2
3
4
5
6
7
8
9

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
longitude double 经度
latitude double 纬度
poiName String POI 信息
thumbnailPath String 缩略图本地路径,必须为有效路径

命令消息

类型:RCIMIWMessageType.command

专有可访问属性:

属性名 类型 说明
name String 命令的名称
data String 命令的扩展数据,可以为任意字符串,如存放您定义的json数据。

Flutter SDK 目前不提供 RCIMIWCommandMessage 命令消息的 create 方法,仅支持接收该类型消息。如需要在客户端发送此消息,需要在 Flutter 层先定义此消息的包装类。详见知识库文档Flutter SDK 如何发送命令消息和命令通知消息?

命令通知消息

类型:RCIMIWMessageType.commandNotification

专有可访问属性:

属性名 类型 说明
name String 命令提醒的名称
data String 命令提醒消息的扩展数据,可以为任意字符串,如存放您定义的 json 数据。

Flutter SDK 目前不提供 RCIMIWCommandNotificationMessage 命令通知消息的 create 方法,仅支持接收该类型消息。如需要在客户端发送此消息,需要在 Flutter 层先定义此消息的包装类。详见知识库文档Flutter SDK 如何发送命令消息和命令通知消息?

自定义消息

类型:RCIMIWMessageType.custom

专有可访问属性:

属性名 类型 说明
identifier String 自定义消息的标识符
policy RCIMIWCustomMessagePolicy 自定义的消息存储策略
fields Ma<String, String> 自定义消息的键值对

构建自定义消息

RCIMIWCustomMessage? message = await engine.createCustomMessage(
      type,
      targetId,
      channelId,
      policy,
      messageIdentifier,
      fields,
    );
              
已复制
1
2
3
4
5
6
7
8

参数名 参数类型 描述
type RCIMIWConversationType 会话类型
targetId String 会话 ID
channelId String 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
policy RCIMIWCustomMessagePolicy 消息的存储策略
messageIdentifier String 消息的标识符,需唯一
fields Ma<String, String> 消息的内容键值对

无效类型

当接收到无法识别的消息时,会变为无效类型的消息,此消息不可主动构建发送

类型:RCIMIWMessageType.unknown

专有可访问属性:

属性名 类型 描述
rawData String 消息数据
objectName String 消息的标识
文档反馈
意见反馈

您的改进建议

意见反馈

问题类型

联系我们

提交工单

技术支持|集成使用|产品方案


商务咨询

7 x 24 小时

为您解答方案与报价问题

131 6185 6839

文档反馈