SyImEngine class

Properties

apiBaseUrl → String
final
appId → String
final
currentUserId → String?
no setter
hashCode → int
The hash code for this object.
no setterinherited
isLoggedIn → bool
no setter
isOpenIMReady → bool
no setter
onConnectFailed ↔ void Function(int? code, String? error)?
getter/setter pair
onConnecting ↔ void Function()?
getter/setter pair
onConnectSuccess ↔ void Function()?
getter/setter pair
onConversationUpdated ↔ void Function()?
getter/setter pair
onKickedOffline ↔ void Function()?
getter/setter pair
onMessageRevoked ↔ void Function(SyImRevokedMessage info)?
getter/setter pair
onRecvC2CReadReceipt ↔ void Function(List<SyImReadReceipt> receipts)?
getter/setter pair
onRecvGroupReadReceipt ↔ SyImGroupReadReceiptCallback?
群已读回执,与 Android onRecvGroupReadReceipt(conversationId)、 iOS onRecvGroupReadReceipt(groupId, msgIds) 对应:被关注的群消息已读人数增加或出现新已读者时回调。 flutter_openim_sdk 3.8.3 没有群回执推送,所以只覆盖 watchGroupReadReceipts 关注的消息。
getter/setter pair
onRecvNewMessage ↔ void Function(String msgId, String fromUserId, String? groupId, String? text)?
getter/setter pair
onRecvReadReceipts ↔ void Function(List<SyImReadReceipt> receipts)?
已读回执(三端统一名)。单聊来自 OpenIM 推送;群聊来自 watchGroupReadReceipts 发现的新已读者(需要控制面花名册才有成员 id)。与 onRecvC2CReadReceipt 同时回调。
getter/setter pair
onTypingChanged ↔ void Function(SyImTypingStatus status)?
getter/setter pair
onUnreadChanged ↔ void Function(SyImUnreadUpdate update)?
getter/setter pair
onUserTokenExpired ↔ void Function()?
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
totalUnread → int
最近一次未读快照里的总数,不额外请求网络。
no setter
unreadChanges → Stream<SyImUnreadUpdate>
总未读和各会话未读。由总未读回调、会话变更、新消息和 markRead 推动。
no setter

Methods

acceptFriendApplication({required String userId, String handleMsg = ''}) → Future<void>
addFriend({required String userId, String reason = ''}) → Future<void>
addToBlacklist({required String userId}) → Future<void>
configureOpenIM({required String imApiAddr, required String imWsAddr, String? dataDir}) → Future<void>
在拿到控制面 imApiAddr/imWsAddr 后初始化 OpenIM。
controlPlane({String? userJwt, String? appSecret}) → ImControlPlane
控制面 REST(getToken / friends / groups / send / history / revoke)。
createGroup({required String groupName, String groupId = '', List<String> memberUserIds = const []}) → Future<SyImGroup>
dismissGroup({required String groupId}) → Future<void>
getBlacklist() → Future<List<SyImBlacklistUser>>
getConversations() → Future<List<SyImConversation>>
getFriendApplications({bool sentByMe = false}) → Future<List<SyImFriendApplication>>
getFriends() → Future<List<SyImFriend>>
getGroupMembers({required String groupId, int count = 100}) → Future<List<SyImGroupMember>>
getGroupMessageReadInfo({required String conversationId, required String clientMsgId, ImControlPlane? controlPlane}) → Future<SyImGroupReadInfo>
群消息已读概况,三端同名同义。OpenIM Flutter 绑定只给人数;传入带 userJwt 的 controlPlane 时, 再查控制面 who-read 花名册补已读成员(SyImGroupReadInfo.source == controlPlane)。 花名册只含调用过 reportGroupMessagesRead 的成员;查询失败时退回只有人数。
getJoinedGroups() → Future<List<SyImGroup>>
getSelfProfile() → Future<SyImUserProfile>
getToken({required String userId, String? userJwt, String? appSecret}) → Future<Map<String, dynamic>>
便捷:控制面 getToken。
getTotalUnreadCount() → Future<int>
全部会话未读总数。单会话未读见 SyImConversation.unreadCount。
getUserProfiles(List<String> userIds) → Future<List<SyImUserProfile>>
inviteToGroup({required String groupId, required List<String> userIds, String reason = ''}) → Future<void>
joinGroup({required String groupId, String reason = ''}) → Future<void>
kickGroupMembers({required String groupId, required List<String> userIds, String reason = ''}) → Future<void>
login({required String userId, required String token}) → Future<void>
logout() → Future<void>
markConversationAsRead({required String conversationId}) → Future<void>
标记会话已读。单聊会向对方发送已读回执,并立刻刷新未读。
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
pinConversation({required String conversationId, required bool pinned}) → Future<void>
quitGroup({required String groupId}) → Future<void>
refuseFriendApplication({required String userId, String handleMsg = ''}) → Future<void>
removeFromBlacklist({required String userId}) → Future<void>
reportGroupMessagesRead({required ImControlPlane controlPlane, required String conversationId, required List<int> seqs}) → Future<void>
把本端已读的群消息 seq 写入控制面花名册(供其他成员的 getGroupMessageReadInfo)。
revokeMessage({required String conversationId, required String clientMsgId}) → Future<void>
searchMessages({String? conversationId, required String keyword, int count = 20}) → Future<List<SyImSearchHit>>
sendAtTextMessage({required String groupId, required String text, required List<String> atUserIds, Map<String, String> atNicknames = const {}}) → Future<String>
sendCustomMessage({String? toUserId, String? groupId, required String data, String customExtension = '', String description = ''}) → Future<String>
sendTextMessage({String? toUserId, String? groupId, required String text}) → Future<String>
sendTyping({required String conversationId, required bool focus}) → Future<void>
与 Android / iOS sendTyping(conversationId, focus) 同名,等同 setTyping。
setConversationDoNotDisturb({required String conversationId, required int status}) → Future<void>
setConversationDraft({required String conversationId, required String draft}) → Future<void>
setGroupCustomInfo({required String groupId, String? groupName, String? notification, String? ex}) → Future<void>
setGroupMemberCustomInfo({required String groupId, required String userId, String? nickname, String? ex}) → Future<void>
setSelfProfile({String? nickname, String? faceUrl, String? ex}) → Future<void>
setTyping({required String conversationId, required bool typing}) → Future<void>
发送正在输入(OpenIM changeInputStates)。对端回调 onTypingChanged。
toString() → String
A string representation of this object.
inherited
watchGroupReadReceipts({required String conversationId, required List<String> clientMsgIds, ImControlPlane? controlPlane, Duration interval = const Duration(seconds: 5)}) → SyImGroupReadWatch
关注一个群会话里的消息(通常是自己发的),已读变化时回调 onRecvGroupReadReceipt, 有新已读者时再回调 onRecvReadReceipts。会话变化时立即检查,另按 interval 兜底轮询 (Duration.zero 关闭轮询)。首次检查只记基线,不回调。不用时调用 SyImGroupReadWatch.cancel, logout 会全部取消。

Operators

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