sendMessage method

Future<V2TimValueCallback<V2TimMessage>> sendMessage({
  1. @Deprecated("创建消息的 id 参数,待废弃") String? id,
  2. V2TimMessage? message,
  3. void onSyncMsgID(
    1. String msgID
    )?,
  4. required String receiver,
  5. required String groupID,
  6. MessagePriorityEnum? priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL,
  7. bool onlineUserOnly = false,
  8. OfflinePushInfo? offlinePushInfo,
  9. bool isExcludedFromUnreadCount = false,
  10. bool isExcludedFromLastMessage = false,
  11. bool? isSupportMessageExtension = false,
  12. bool? isExcludedFromContentModeration = false,
  13. bool needReadReceipt = false,
  14. String? cloudCustomData,
  15. String? localCustomData,
  16. bool? isDisableCloudMessagePreHook = false,
  17. bool? isDisableCloudMessagePostHook = false,
})

发送消息

message 消息对象,请传入通过 createXXXMessage 返回结果中的消息对象。并且可以设置 message 中的 isExcludedFromUnreadCount/isExcludedFromLastMessage/isSupportMessageExtension/isExcludedFromContentModeration/needReadReceipt/cloudCustomData/localCustomData/isDisableCloudMessagePreHook/isDisableCloudMessagePostHook 等参数,接口中的这些参数无效。

onSyncMsgID 调用接口后会立即生成 msgID 并同步触发该回调(早于 Future 完成),可用于提前展示消息到界面。该 msgID 作为消息唯一标识。

id 待废弃 创建消息 id。请直接传入通过 createXXXMessage 返回的消息对象给 message 参数。

receiver 消息接收者的 userID, 如果是发送 C2C 单聊消息,只需要指定 receiver 即可。

groupID 目标群组 ID,如果是发送群聊消息,只需要指定 groupID 即可。

priority 消息优先级,仅针对群聊消息有效。请把重要消息设置为高优先级(比如红包、礼物消息),高频且不重要的消息设置为低优先级(比如点赞消息)。

onlineUserOnly 是否只有在线用户才能收到,如果设置为 true ,接收方历史消息拉取不到,常被用于实现“对方正在输入”或群组里的非重要提示等弱提示功能,该字段不支持 AVChatRoom。

offlinePushInfo 离线推送时携带的标题和内容。

Implementation

Future<V2TimValueCallback<V2TimMessage>> sendMessage({
  @Deprecated("创建消息的 id 参数,待废弃")
  String? id, // 创建消息的 id,待废弃。请直接传入通过 createXXXMessage 返回的消息对象给 [message] 参数。
  V2TimMessage? message,
  void Function(String msgID)? onSyncMsgID,
  required String receiver,
  required String groupID,
  MessagePriorityEnum? priority = MessagePriorityEnum.V2TIM_PRIORITY_NORMAL,
  bool onlineUserOnly = false,
  OfflinePushInfo? offlinePushInfo,
  bool isExcludedFromUnreadCount = false,
  bool isExcludedFromLastMessage = false,
  bool? isSupportMessageExtension = false,
  bool? isExcludedFromContentModeration = false,
  bool needReadReceipt = false,
  String? cloudCustomData, // 云自定义消息字段,只能在消息发送前添加
  String? localCustomData,
  bool? isDisableCloudMessagePreHook = false,
  bool? isDisableCloudMessagePostHook = false,
}) async {
  if (kIsWeb) {
    return TencentCloudChatSdkPlatform.instance.sendMessage(
      id: id,
      receiver: receiver,
      groupID: groupID,
      priority: priority!.index,
      onlineUserOnly: onlineUserOnly,
      isExcludedFromUnreadCount: isExcludedFromUnreadCount,
      isExcludedFromLastMessage: isExcludedFromLastMessage,
      isSupportMessageExtension: isSupportMessageExtension,
      isExcludedFromContentModeration: isExcludedFromContentModeration,
      offlinePushInfo: offlinePushInfo?.toJson(),
      localCustomData: localCustomData,
      needReadReceipt: needReadReceipt,
      cloudCustomData: cloudCustomData,
      // isDisableCloudMessagePreHook: isDisableCloudMessagePreHook,
      // isDisableCloudMessagePostHook: isDisableCloudMessagePostHook,
    );
  }

  return TIMMessageManager.instance.sendMessage(
    id: id,
    message: message,
    onSyncMsgID: onSyncMsgID,
    receiver: receiver,
    groupID: groupID,
    priority: priority!.index,
    onlineUserOnly: onlineUserOnly,
    isExcludedFromUnreadCount: isExcludedFromUnreadCount,
    isExcludedFromLastMessage: isExcludedFromLastMessage,
    isSupportMessageExtension: isSupportMessageExtension,
    isExcludedFromContentModeration: isExcludedFromContentModeration,
    offlinePushInfo: offlinePushInfo,
    localCustomData: localCustomData,
    needReadReceipt: needReadReceipt,
    cloudCustomData: cloudCustomData,
    isDisableCloudMessagePreHook: isDisableCloudMessagePreHook,
    isDisableCloudMessagePostHook: isDisableCloudMessagePostHook,
  );
}