MessageService class

Constructors

MessageService()
factory

Properties

allMessagesReadForIOS Stream<void>
所有消息都已读的回调,在调用MessageService.clearAllSessionUnreadCount后触发 仅iOS端有效
no setter
hashCode int
The hash code for this object.
no setterinherited
onAttachmentProgress Stream<NIMAttachmentProgress>
消息附件上传进度
no setter
onBroadcastMessage Stream<NIMBroadcastMessage>
广播消息接收
no setter
onMessage Stream<List<NIMMessage>>
消息接收
no setter
onMessagePinNotify Stream<NIMMessagePinEvent>
消息PIN事件通知
no setter
onMessageReceipt Stream<List<NIMMessageReceipt>>
消息已读回执
no setter
onMessageRevoked Stream<NIMRevokeMessage>
消息撤回内容
no setter
onMessagesDelete Stream<List<NIMMessage>>
消息删除的同步接口回调
no setter
onMessageStatus Stream<NIMMessage>
消息状态变化
no setter
onMySessionUpdate Stream<RecentSession>
会话服务-更新会话
no setter
onQuickCommentAdd Stream<NIMHandleQuickCommentOption>
增加一条快捷评论的同步回包
no setter
onQuickCommentRemove Stream<NIMHandleQuickCommentOption>
删除一条快捷评论的同步回包
no setter
onSessionDelete Stream<NIMSession?>
最近会话删除
no setter
onSessionUpdate Stream<List<NIMSession>>
最近会话更新
no setter
onStickTopSessionAdd Stream<NIMStickTopSessionInfo>
增加一条置顶会话的多端同步回包
no setter
onStickTopSessionRemove Stream<NIMStickTopSessionInfo>
移除一条置顶会话的多端同步回包
no setter
onStickTopSessionUpdate Stream<NIMStickTopSessionInfo>
更新一条置顶会话的扩展字段的多端同步回包
no setter
onSyncStickTopSession Stream<List<NIMStickTopSessionInfo>>
同步置顶会话的多端同步回包
no setter
onTeamMessageReceipt Stream<List<NIMTeamMessageReceipt>>
群消息已读回执
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

addCollect({required int type, required String data, String? ext, String? uniqueId}) Future<NIMResult<NIMCollectInfo>>
添加一条收藏
addMessagePin(NIMMessage message, String? ext) Future<NIMResult<void>>
PIN一条消息
addQuickComment(NIMMessage msg, int replyType, String ext, bool needPush, bool needBadge, String pushTitle, String pushContent, Map<String, Object> pushPayload) Future<NIMResult<int>>
增加一条快捷评论
addStickTopSession(String sessionId, NIMSessionType sessionType, String ext) Future<NIMResult<NIMStickTopSessionInfo>>
添加一个置顶会话
cancelUploadAttachment(NIMMessage message) Future<NIMResult<void>>
取消上传消息附件
checkLocalAntiSpam(String content, String replacement) Future<NIMResult<NIMLocalAntiSpamResult>>
检验本地反垃圾词库,支持单聊、群聊和聊天室的文本消息反垃圾
clearAllSessionUnreadCount() Future<NIMResult<void>>
清空所有会话的未读计数
clearChattingHistory(String account, NIMSessionType sessionType, bool? ignore) Future<void>
清除与指定用户的所有本地消息记录 account用户账号 sessionType会话类型 ignore true: 本地不记录清除操作; false: 本地记录清除操作,默认false, web端无效 如果为true则pullMessageHistory接口参数persist为true时会重新保存到数据库 不推荐设置成true
clearMsgDatabase(bool clearRecent) Future<void>
清空消息数据库的所有消息记录。 可选择是否要同时清空最近联系人列表数据库。 若最近联系人列表也被清空,会触发onSessionDelete通知
clearServerHistory(String sessionId, NIMSessionType sessionType, bool sync) Future<void>
删除单会话云端历史消息
clearSessionUnreadCount(List<NIMSessionInfo> sessionInfoList) Future<NIMResult<List<NIMSessionInfo>>>
清除未读数
createSession({required String sessionId, required NIMSessionType sessionType, int tag = 0, required int time, bool linkToLastMessage = false}) Future<NIMResult<NIMSession>>
创建一条空的联系人会话,并保存到数据库中
sessionId - 会话id ,对方帐号或群组id。
sessionType - 会话类型
tag - 会话tag , eg:置顶标签(UIKit中的实现: RECENT_TAG_STICKY) ,用户参照自己的tag 实现即可, 如不需要,传 0 即可
time - 会话时间 ,单位为ms。
linkToLastMessage - 是否放入最后一条消息的相关信息
deleteChattingHistory(NIMMessage anchor, bool ignore) Future<void>
删除一条消息记录
deleteChattingHistoryList(List<NIMMessage> msgList, bool ignore) Future<void>
指定多条消息进行本地删除
deleteMsgListSelf(List<NIMMessage> msgList, String ext) Future<NIMResult<int>>
单向删除多条云端历史消息
deleteMsgSelf(NIMMessage msg, String ext) Future<NIMResult<int>>
单向删除单条云端历史消息
deleteMySession(List<NIMMySessionKey> sessionList) Future<NIMResult<void>>
【会话服务】删除会话
deleteSession({required NIMSessionInfo sessionInfo, required NIMSessionDeleteType deleteType, required bool sendAck}) Future<NIMResult<void>>
删除最近联系人记录。 调用该接口后,会触发MessageService.onSessionDelete通知
downloadAttachment({required NIMMessage message, required bool thumb}) Future<NIMResult<void>>
正常情况收到消息后附件会自动下载。如果下载失败,可调用该接口重新下载 message 附件所在的消息, thumb 下载缩略图还是原文件, 为true时仅下载缩略图。 缩略图参数仅对图片和视频类消息有效
fetchTeamMessageReceiptDetail({required NIMMessage message, List<String>? accountList}) Future<NIMResult<NIMTeamMessageAckInfo>>
(群消息发送方)远程查询单条群组消息在指定用户中的已读、未读账号列表
forwardMessage(NIMMessage message, String sessionId, NIMSessionType sessionType) Future<NIMResult<void>>
消息转发 支持更新客户端数据库内的消息的客户端扩展字段。
getMessagesDynamically(GetMessagesDynamicallyParam param) Future<NIMResult<GetMessagesDynamicallyResult>>
动态途径获取消息,默认从本地获取,动态能力需要开通功能,并在同步完成后生效
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pullHistoryById(List<NIMMessageKey> msgKeyList, bool persist) Future<NIMResult<List<NIMMessage>>>
根据消息关键信息批量查询服务端历史消息。 msgKeyList 消息关键信息列表 persist 查询的漫游消息是否同步到本地数据库。
pullMessageHistory(NIMMessage anchor, int limit, bool persist) Future<NIMResult<List<NIMMessage>>>
从服务器拉取消息历史记录,结果不存本地消息数据库。
pullMessageHistoryExType(NIMMessage anchor, int toTime, int limit, QueryDirection direction, List<NIMMessageType> messageTypeList, bool persist) Future<NIMResult<List<NIMMessage>>>
从服务器拉取消息历史记录,可以指定查询的消息类型,结果不存本地消息数据库。 anchor 起始时间点的消息 toTime – 结束时间点单位毫秒 limit – 本次查询的消息条数上限(最多100条) direction – 查询方向,QUERY_OLD按结束时间点逆序查询,逆序排列;QUERY_NEW按起始时间点正序起查,正序排列 messageTypeList – 消息类型,数组。 persist – 通过该接口获取的漫游消息记录,要不要保存到本地消息数据库。
queryCollect({NIMCollectInfo? anchor, int toTime = 0, int? type, int limit = 100, QueryDirection direction = QueryDirection.QUERY_OLD}) Future<NIMResult<NIMCollectInfoQueryResult>>
从服务端分页查询收藏列表
queryLastMessage(String account, NIMSessionType sessionType) Future<NIMResult<NIMMessage>>
查询最近一条消息
queryMessageList(String account, NIMSessionType sessionType, int limit) Future<NIMResult<List<NIMMessage>>>
查询消息
queryMessageListByUuid(List<String> uuids, String sessionId, NIMSessionType sessionType) Future<NIMResult<List<NIMMessage>>>
按消息uuid查询
queryMessageListEx(NIMMessage anchor, QueryDirection direction, int limit) Future<NIMResult<List<NIMMessage>>>
查询消息
queryMessagePinForSession(String sessionId, NIMSessionType sessionType) Future<NIMResult<List<NIMMessagePin>>>
查询会话所有的 PIN
queryMySession(String sessionId, NIMSessionType sessionType) Future<NIMResult<RecentSession>>
【会话服务】获取某一个会话
queryMySessionList(int minTimestamp, int maxTimestamp, int needLastMsg, int limit, int hasMore) Future<NIMResult<RecentSessionList>>
【会话服务】增量获取会话列表,增量+翻页
queryQuickComment(List<NIMMessage> msgList) Future<NIMResult<List<NIMQuickCommentOptionWrapper>>>
获取快捷评论列表
queryReplyCountInThreadTalkBlock(NIMMessage msg) Future<NIMResult<int>>
本地获取某thread消息的回复消息的条数,thread消息不被计入总数
queryRoamMsgHasMoreTime(String sessionId, NIMSessionType sessionType) Future<NIMResult<int>>
获取是否有更多漫游消息标记的时间戳,如果没有,回调0
querySession(NIMSessionInfo sessionInfo) Future<NIMResult<NIMSession>>
查询最近联系人会话列表数据(同步接口),可以设置limit, 防止本地会话过多时,导致第一次加载慢 sessionInfo - 会话信息
querySessionList([int? limit]) Future<NIMResult<List<NIMSession>>>
获取最近会话列表
querySessionListFiltered(List<NIMMessageType> filterMessageTypeList) Future<NIMResult<List<NIMSession>>>
当希望返回的会话的最近一条消息不是某一类消息时,可以使用以下过滤接口。
queryStickTopSession() Future<NIMResult<List<NIMStickTopSessionInfo>>>
获取置顶会话信息的列表
queryTeamMessageReceiptDetail({required NIMMessage message, List<String>? accountList}) Future<NIMResult<NIMTeamMessageAckInfo>>
从本地数据库查询单条群组消息已读、未读账号列表(同步接口) /// 注意!!!:这里获取的数据通常比离线前的列表信息更陈旧
queryThreadTalkHistory({required NIMMessage anchor, required int fromTime, required int toTime, required int limit, required QueryDirection direction, required bool persist}) Future<NIMResult<NIMThreadTalkHistory>>
查询thread聊天云端历史(支持p2p、群、超大群)
queryTotalUnreadCount({NIMUnreadCountQueryType queryType = NIMUnreadCountQueryType.all}) Future<NIMResult<int>>
获取未读数总数
refreshTeamMessageReceipt(List<NIMMessage> messageList) Future<NIMResult<void>>
(群消息发送方)批量刷新群组消息已读、未读的数量信息,没有异步回调 如果已读、未读数有变更,请监听 onTeamMessageReceipt 来批量通知,没有变更则不会通知
removeCollect(List<NIMCollectInfo> collects) Future<NIMResult<int>>
批量移除收藏
removeMessagePin(NIMMessage message, String? ext) Future<NIMResult<void>>
删除一条消息的PIN
removeQuickComment(NIMMessage msg, int replyType, String ext, bool needPush, bool needBadge, String pushTitle, String pushContent, Map<String, Object> pushPayload) Future<NIMResult<void>>
删除一条快捷评论
removeStickTopSession(String sessionId, NIMSessionType sessionType, String ext) Future<NIMResult<void>>
删除一个置顶会话
replyMessage({required NIMMessage msg, required NIMMessage replyMsg, required bool resend}) Future<NIMResult<void>>
回复消息。
msg 待发送的消息体,由{@link MessageBuilder}构造 replyMsg 被回复的消息 resend 如果是发送失败后重发,标记为true,否则填false
revokeMessage({required NIMMessage message, String? customApnsText, Map<String, Object>? pushPayload, bool? shouldNotifyBeCount, String? postscript, String? attach}) Future<NIMResult<void>>
撤回消息 message - 要撤回的消息 customApnsText – 第三方透传消息推送文本,不填则不推送 pushPayload – 第三方自定义的推送属性,限制json类型,长度2048 shouldNotifyBeCount – 撤回通知是否更新未读数 postscript – 附言 attach – 扩展字段
saveMessage({required NIMMessage message, required String fromAccount}) Future<NIMResult<NIMMessage>>
保存消息
saveMessageToLocalEx({required NIMMessage message, required int time}) Future<NIMResult<NIMMessage>>
保存消息到本地
searchAllMessage(MessageSearchOption searchOption) Future<NIMResult<List<NIMMessage>>>
全局检索(新)
searchCloudMessageHistory(MessageKeywordSearchConfig config) Future<NIMResult<List<NIMMessage>>>
全文云端消息检索
searchMessage(NIMSessionType sessionType, String sessionId, MessageSearchOption searchOption) Future<NIMResult<List<NIMMessage>>>
单会话检索(新)
searchRoamingMsg(String otherAccid, int fromTime, int endTime, String keyword, int limit, bool reverse) Future<NIMResult<List<NIMMessage>>>
单聊云端消息检索
sendAudioMessage({required String sessionId, required NIMSessionType sessionType, required String filePath, required int fileSize, required int duration, String? displayName, String? base64, NIMNosScene nosScene = NIMNosScenes.defaultIm, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送音频消息 displayName 字段无效,不建议使用 base64 字段为web端专用,web端filePath 可传空字符串
sendCustomMessage({required String sessionId, required NIMSessionType sessionType, String? content, NIMMessageAttachment? attachment, NIMCustomMessageConfig? config, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送自定义消息
sendFileMessage({required String sessionId, required NIMSessionType sessionType, required String filePath, String? base64, int? fileSize, required String displayName, NIMNosScene nosScene = NIMNosScenes.defaultIm, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送文件消息 base64 字段为web端专用,web端filePath 可传空字符串
sendImageMessage({required String sessionId, required NIMSessionType sessionType, required String filePath, required int fileSize, String? displayName, String? base64, NIMNosScene nosScene = NIMNosScenes.defaultIm, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送图片消息 base64 字段为web端专用,web端filePath 可传空字符串
sendLocationMessage({required String sessionId, required NIMSessionType sessionType, required double latitude, required double longitude, required String address, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送地理位置消息
sendMessage({required NIMMessage message, bool resend = false}) Future<NIMResult<NIMMessage>>
发送消息 如果需要更新发送进度,请监听 onMessageStatus。 如果需要监听附件进度,请监听 onAttachmentProgress。 如果消息发送失败后需要重发,请使用resend 参数。
sendMessageReceipt({required String sessionId, required NIMMessage message}) Future<NIMResult<void>>
发送单聊已读回执 如果需要监听消息已读回执,请监听 onMessageReceipt
sendTeamMessageReceipt(NIMMessage message) Future<NIMResult<void>>
发送群消息已读回执 如果需要监听群消息已读回执,请监听 onTeamMessageReceipt
sendTextMessage({required String sessionId, required NIMSessionType sessionType, required String text, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送文本消息
sendTipMessage({required String sessionId, required NIMSessionType sessionType, MessageAction? action, String? content}) Future<NIMResult<NIMMessage>>
发送Tip消息 content web端tip内容传这个字段
sendVideoMessage({required String sessionId, required NIMSessionType sessionType, required String filePath, int? fileSize, required int duration, required int width, required int height, required String displayName, String? base64, NIMNosScene nosScene = NIMNosScenes.defaultIm, MessageAction? action}) Future<NIMResult<NIMMessage>>
发送视频消息 base64 字段为web端专用,web端filePath 可传空字符串
setChattingAccount({required String sessionId, required NIMSessionType sessionType}) Future<NIMResult<void>>
设置当前会话,Android iOS 平台可用 调用以下接口重置当前会话,SDK会自动管理消息的未读数。 该接口会自动调用clearUnreadCount(String, SessionTypeEnum)将正在聊天对象的未读数清零。 如果有新消息到达,且消息来源是正在聊天的对象,其未读数也不会递增。
toString() String
A string representation of this object.
inherited
updateCollect(NIMCollectInfo info) Future<NIMResult<NIMCollectInfo>>
更新一个收藏的扩展字段
updateMessage(NIMMessage message) Future<NIMResult<void>>
消息更新 支持更新客户端数据库内的消息的客户端扩展字段。
updateMessagePin(NIMMessage message, String? ext) Future<NIMResult<void>>
更新一条消息的PIN
updateMySession(String sessionId, NIMSessionType sessionType, String ext) Future<NIMResult<void>>
【会话服务】更新某一个会话,主要是设置会话的ext字段,如果会话不存在,则会创建出来,此时会话没有lastMsg
updateRoamMsgHasMoreTag(NIMMessage newTag) Future<NIMResult<void>>
更新是否有更多漫游消息的标记
updateSession({required NIMSession session, bool needNotify = false}) Future<NIMResult<void>>
更新会话对象
updateSessionWithMessage({required NIMMessage message, bool needNotify = false}) Future<NIMResult<void>>
使用消息更新会话对象
updateStickTopSession(String sessionId, NIMSessionType sessionType, String ext) Future<NIMResult<void>>
更新一个会话在置顶上的扩展字段
voiceToText({required NIMMessage message, String? scene, String? mimeType = 'aac', String? sampleRate = '16000'}) Future<NIMResult<String>>
语音转文字 mimeType PC 端使用,指定语音类型 aac, wav, mp3, amr,默认 aac sampleRate PC 端使用,指定语音采样率 8000kHz, 16000kHz,默认 16000

Operators

operator ==(Object other) bool
The equality operator.
inherited