From 29b66de9bf407e5f818934dc6cdfa13d1b84e7f2 Mon Sep 17 00:00:00 2001
From: std-s <99468005+std-s@users.noreply.github.com>
Date: Tue, 12 Sep 2023 17:36:34 +0800
Subject: [PATCH] Update README.zh-cn.md
---
README.zh-cn.md | 1777 +----------------------------------------------
1 file changed, 10 insertions(+), 1767 deletions(-)
diff --git a/README.zh-cn.md b/README.zh-cn.md
index 17b8d65..67b79e3 100644
--- a/README.zh-cn.md
+++ b/README.zh-cn.md
@@ -1,1775 +1,18 @@
-## SDK使用步骤
+# flutter_openim_sdk
+
-#### 1,[初始化](#initsdk%E5%88%9D%E5%A7%8B%E5%8C%96sdk)
+[](https://pub.flutter-io.cn/packages/flutter_openim_sdk)
+[](https://pub.dev/packages/flutter_openim_sdk)
+[](https://github.com/OpenIMSDK/Open-IM-SDK-Flutter/blob/main/LICENSE)
-#### 2,[设置监听器](#%E7%9B%91%E5%90%AC%E5%99%A8%E8%AE%BE%E7%BD%AE)
+A flutter im plugin for android and ios.
-#### 3,[登录](#login%E7%99%BB%E5%BD%95)
+#### [demo open source code](https://github.com/OpenIMSDK/Open-IM-Flutter-Demo.git) | [UI library source code](https://github.com/hrxiang/flutter_openim_widget.git)
+Scan the QR code below to experience the SDK call example Demo
+
-## 类方法说明
+# [SDK Documents](https://doc.rentsoft.cn/sdks/quickstart/flutter)
-#### IMManager(初始化管理)
-
-| 方法 | 描述 |
-| ---------------- | --------------------------------------------- |
-| initSDK | 初始化SDK |
-| unInitSDK | 反初始化SDK |
-| login | 登录 |
-| logout | 登出 |
-| getLoginStatus | 获取登录状态 |
-| getLoginUserID | 登录者用户ID |
-| getLoginUserInfo | 登录者用户资料 |
-| wakeUp | 唤醒socket通信(当app从后台回到前台恢复通信) |
-| uploadImage | 上传图片到服务器 |
-
-
-
-#### UserManager(用户信息管理)
-
-| 方法 | 描述 |
-| --------------- | ------------------------ |
-| setUserListener | 当前登录用户信息变更监听 |
-| getUsersInfo | 根据userID获取用户资料 |
-| getSelfUserInfo | 获取当前登录用户资料 |
-| setSelfInfo | 修改当前登录用户资料 |
-
-
-
-#### ConversationManager(会话管理)
-
-| 方法 | 描述 |
-| --------------------------------- | -------------------------------------- |
-| setConversationListener | 会话监听 |
-| getAllConversationList | 获取所有会话 |
-| getConversationListSplit | 分页获取会话 |
-| getOneConversation | 查询会话,如果会话不存在会自动生成一个 |
-| getMultipleConversation | 根据会话id获取多个会话 |
-| deleteConversation | 通过会话id删除指定会话 |
-| setConversationDraft | 设置会话草稿 |
-| pinConversation | 置顶会话 |
-| markGroupMessageHasRead | 标记群聊会话已读 |
-| getTotalUnreadMsgCount | 获取未读消息总数 |
-| getConversationIDBySessionType | 查询会话id |
-| setConversationRecvMessageOpt | 消息免打扰设置 |
-| getConversationRecvMessageOpt | 查询免打扰状态 |
-| setOneConversationPrivateChat | 阅后即焚 |
-| deleteConversationFromLocalAndSvr | 删除本地以及服务器的会话 |
-| deleteAllConversationFromLocal | 删除所有本地会话 |
-| resetConversationGroupAtType | 重置强提醒标识 |
-| getAtAllTag | 查询@所有人标识 |
-| setGlobalRecvMessageOpt | 全局免打扰设置 |
-
-
-
-#### FriendshipManager(好友关系管理)
-
-| 方法 | 描述 |
-| ---------------------------- | -------------------------------------------------- |
-| setFriendshipListener | 好友关系监听 |
-| getFriendsInfo | 查询好友信息 |
-| addFriend | 发送一个好友请求,需要对方调用同意申请才能成为好友 |
-| getRecvFriendApplicationList | 获取别人加我为好友的申请 |
-| getSendFriendApplicationList | 获取我发出的好友申请 |
-| getFriendList | 获取好友列表,返回的列表包含了已拉入黑名单的好友 |
-| setFriendRemark | 设置好友备注 |
-| addBlacklist | 加入黑名单 |
-| getBlacklist | 获取黑名单列表 |
-| removeBlacklist | 从黑名单移除 |
-| checkFriend | 检查友好关系 |
-| deleteFriend | 删除好友 |
-| acceptFriendApplication | 接受好友请求 |
-| refuseFriendApplication | 拒绝好友请求 |
-| searchFriends | 查好友 |
-
-
-
-#### GroupManager(组/群关系管理)
-
-| 方法 | 描述 |
-| ---------------------------- | ---------------------------------------- |
-| setGroupListener | 组关系监听 |
-| inviteUserToGroup | 邀请进组,直接进组无需同意 |
-| kickGroupMember | 移除组成员 |
-| getGroupMembersInfo | 查询组成员资料 |
-| getGroupMemberList | 分页获取组成员列表 |
-| getJoinedGroupList | 查询已加入的组列表 |
-| isJoinedGroup | 检查是否已加入组 |
-| createGroup | 创建一个组 |
-| setGroupInfo | 编辑组资料 |
-| getGroupsInfo | 查询组信息 |
-| joinGroup | 申请加入组,需要通过管理员/群组同意。 |
-| quitGroup | 退出组 |
-| transferGroupOwner | 转移组拥有者权限 |
-| getRecvGroupApplicationList | 作为群主或者管理员,收到的群成员入群申请 |
-| getSendGroupApplicationList | 获取自己发出的入群申请记录 |
-| acceptGroupApplication | 管理员或者群主同意某人进入某群 |
-| refuseGroupApplication | 管理员或者群主拒绝某人进入某群 |
-| dismissGroup | 解散群 |
-| changeGroupMute | 开启群禁言,所有群成员禁止发言 |
-| changeGroupMemberMute | 禁言群成员 |
-| setGroupMemberNickname | 设置群成员昵称 |
-| searchGroups | 查询群 |
-| setGroupMemberRoleLevel | 设置群成员权限 |
-| getGroupMemberListByJoinTime | 根据加入时间分页获取组成员列表 |
-
-
-
-#### MessageManager(消息管理)
-
-| 方法 | 描述 |
-| --------------------------------------- | ------------------------------------------------------------ |
-| setAdvancedMsgListener | 消息监听 |
-| setMsgSendProgressListener | 消息发送进度监听 |
-| sendMessage | 发送消息 |
-| getHistoryMessageList | 获取聊天记录(以startMsg为节点,以前的聊天记录) |
-| revokeMessage | 撤回消息 |
-| deleteMessageFromLocalStorage | 删除本地消息 |
-| insertSingleMessageToLocalStorage | 插入单聊消息到本地 |
-| insertGroupMessageToLocalStorage | 插入群聊消息到本地 |
-| markC2CMessageAsRead | 标记c2c单条消息已读 |
-| markGroupMessageAsRead | 标记群聊消息已读 |
-| typingStatusUpdate | 正在输入提示 |
-| createTextMessage | 创建文本消息 |
-| createTextAtMessage | 创建@消息 |
-| createImageMessage | 创建图片消息 |
-| createImageMessageFromFullPath | 创建图片消息 |
-| createSoundMessage | 创建语音消息 |
-| createSoundMessageFromFullPath | 创建语音消息 |
-| createVideoMessage | 创建视频消息 |
-| createVideoMessageFromFullPath | 创建视频消息 |
-| createFileMessage | 创建文件消息 |
-| createFileMessageFromFullPath | 创建文件消息 |
-| createMergerMessage | 创建合并消息 |
-| createForwardMessage | 创建转发消息 |
-| createLocationMessage | 创建位置消息 |
-| createCustomMessage | 创建自定义消息 |
-| createQuoteMessage | 创建引用消息 |
-| createCardMessage | 创建卡片消息 |
-| createFaceMessage | 创建自定义表情消息 |
-| clearC2CHistoryMessage | 清空单聊消息记录 |
-| clearGroupHistoryMessage | 清空组消息记录 |
-| searchLocalMessages | 搜索消息 |
-| deleteMessageFromLocalAndSvr | 删除本地跟服务器的指定的消息 |
-| deleteAllMsgFromLocal | 删除本地所有聊天记录 |
-| deleteAllMsgFromLocalAndSvr | 删除本地跟服务器所有聊天记录 |
-| markMessageAsReadByConID | 标记消息已读 |
-| clearC2CHistoryMessageFromLocalAndSvr | 删除本地跟服务器的单聊聊天记录 |
-| clearGroupHistoryMessageFromLocalAndSvr | 删除本地跟服务器的群聊天记录 |
-| getHistoryMessageListReverse | 获取聊天记录(以startMsg为节点,新收到的聊天记录),用在全局搜索定位某一条消息,然后此条消息后新增的消息 |
-
-
-
-#### OrganizationManager(组织架构管理)
-
-| 方法 | 描述 |
-| ----------------------- | ---------------------------------------------- |
-| setOrganizationListener | 组织架构发生变化回调 |
-| getSubDept | 获取子部门列表,返回当前部门下的一级子部门 |
-| getDeptMember | 获取部门下的成员列表,返回当前部门下的一级成员 |
-| getUserInDept | 获取成员所在的部门 |
-| getDeptMemberAndSubDept | 获取部门下的子部门跟员工 |
-| getDeptInfo | 查询部门信息 |
-| searchOrganization | 搜索组织人员 |
-
-
-
-#### SignalingManager(信令管理)
-
-| 方法 | 描述 |
-| ---------------------- | ------------------------ |
-| setSignalingListener | 信令监听 |
-| signalingInvite | 邀请个人加入音视频 |
-| signalingInviteInGroup | 邀请群里某些人加入音视频 |
-| signalingAccept | 同意某人音视频邀请 |
-| signalingReject | 拒绝某人音视频邀请 |
-| signalingCancel | 邀请者取消音视频通话 |
-| signalingHungUp | 挂断 |
-
-
-
-#### WorkMomentsManager(朋友圈管理)
-
-| 方法 | 描述 |
-| ---------------------------- | ---------------------- |
-| setWorkMomentsListener | 朋友圈信息发送变化通知 |
-| getWorkMomentsUnReadCount | 获取朋友圈未读消息总数 |
-| getWorkMomentsNotification | 获取通知列表 |
-| clearWorkMomentsNotification | 清除通知列表 |
-
-
-
-## 方法名、参数、返回值说明
-
-- ##### initSDK(初始化SDK)
-
-```
-OpenIM.iMManager.initSDK(
- platform: 0, // 平台,参照IMPlatform类,
- apiAddr: "", // SDK的API接口地址。如:http://xxx:10000
- wsAddr: "", // SDK的web socket地址。如: ws://xxx:17778
- dataDir: "", // 数据存储路径。如:var apath =(await getApplicationDocumentsDirectory()).path
- objectStorage: 'cos', // 图片服务器默认'cos'
- logLevel: 6, // 日志等级,默认值6
- listener: OnConnectListener(
- onConnectSuccess: () {
- // 已经成功连接到服务器
- },
- onConnecting: () {
- // 正在连接到服务器,适合在 UI 上展示“正在连接”状态。
- },
- onConnectFailed: (code, errorMsg) {
- // 连接服务器失败,可以提示用户当前网络连接不可用
- },
- onUserSigExpired: () {
- // 登录票据已经过期,请使用新签发的 UserSig 进行登录。
- },
- onKickedOffline: () {
- // 当前用户被踢下线,此时可以 UI 提示用户“您已经在其他端登录了当前账号,是否重新登录?”
- },
- ),
- ).then((value){
- if(value == true){
- // 初始化成功
- }
- });
-```
-
-
-
-- ##### login(登录)
-
-```
-OpenIM.iMManager.login(
- uid: "", // uid来自于自身业务服务器
- token: "", // token需要业务服务器根据secret向OpenIM服务端交换获取
- ).then((userInfo) {
- // 返回当前登录用户的资料
- });
-```
-
-
-
-- ##### logout( 登出)
-
-```
- OpenIM.iMManager.logout().then((_){
- // 退出成功
- });
-```
-
-
-
-- ##### getLoginUserInfo(获取当前登录用户的资料)
-
-```
-OpenIM.iMManager.getLoginUserInfo().then((userInfo){
- // 当前登录用户的信息
- });
-```
-
-
-
-- ##### getLoginUserID(获取当前登录用户的ID)
-
-```
- OpenIM.iMManager.getLoginUserID().then((userID){
- // 当前登录用户的ID
- });
-```
-
-
-
-- ##### getUsersInfo(根据用户ID批量获取用户信息)
-
-```
- OpenIM.iMManager.userManager.getUsersInfo(
- uidList: [], // 用户ID集合
- ).then((userInfoList) {
- // 用户信息列表
- });
-```
-
-
-
-- ##### getSelfUserInfo(获取当前登录用户的资料)
-
-```
- OpenIM.iMManager.userManager.getSelfUserInfo().then((userInfo){
- // 返回当前登录用户的资料
- });
-```
-
-
-
-- ##### setSelfInfo(修改当前用登录户资料)
-
-会触发当用户的onSelfInfoUpdated回调,以及好友的onFriendInfoChanged、onConversationChanged回调。
-
-```
- OpenIM.iMManager.userManager.setSelfInfo(
- nickname: '', // 昵称
- faceURL: '', // 头像
- gender: 0, // 性别: 男1,女0
- phoneNumber: '', // 手机号
- email: '', //邮箱
- birth: 0, //生日
- ex: '', // 其他信息
- );
-```
-
-
-
-- ##### getAllConversationList(获取所有会话)
-
-```
- OpenIM.iMManager.conversationManager.getAllConversationList().then((list) {
- // List 会话列表
- });
-```
-
-
-
-- ##### getConversationListSplit(分页获取会话)
-
-```
-OpenIM.iMManager.conversationManager.getConversationListSplit(
- offset: 0, // 偏移量,如:第1页,offet:0,count:20;第2页:offset:20;
- count: 0, // 每页数量
- ).then((list) {
- // List 会话列表
- });
-```
-
-
-
-- ##### getOneConversation(获取一个会话,如果不存在会自动创建)
-
-```
-OpenIM.iMManager.conversationManager.getOneConversation(
- sourceID: "", // 如果是单聊值传userID,如果是群聊groupID
- sessionType: 1, // 如果是单聊值传1,如果是群聊值传2
- ).then((info) {
- // 会话信息
- });
-```
-
-
-
-- ##### getMultipleConversation(根据会话id查询会话)
-
-```
- OpenIM.iMManager.conversationManager.getMultipleConversation(
- conversationIDList: [], // 会话ID集合
- ).then((list) {
- // 返回与id匹配的会话列表
- });
-```
-
-
-
-- ##### deleteConversation(根据会话id删除指定会话)
-
-会触onTotalUnreadMessageCountChanged回调
-
-```
-OpenIM.iMManager.conversationManager.deleteConversation(
- conversationID: "", // 会话id
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### setConversationDraft(设置会话草稿)
-
-会触onConversationChanged回调
-
-```
-OpenIM.iMManager.conversationManager.setConversationDraft(
- conversationID: "", // 会话id
- draftText: "", // 草稿
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### pinConversation(置顶会话)
-
-会触onConversationChanged回调
-
-```
-OpenIM.iMManager.conversationManager.pinConversation(
- conversationID: "", // 会话id
- isPinned: true, // true:置顶;false:取消置顶
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### markGroupMessageHasRead(标记群会话已读,清除未读数)
-
-会触onConversationChanged、onTotalUnreadMessageCountChanged回调
-
-```
-OpenIM.iMManager.conversationManager.markGroupMessageHasRead(
- groupID: "", // 组id
- );
-```
-
-
-
-- ##### getTotalUnreadMsgCount(获取未读消息总数)
-
-```
-OpenIM.iMManager.conversationManager.getTotalUnreadMsgCount().then((count){
- // 总数
-});
-```
-
-
-
-- ##### getConversationIDBySessionType(查询会话id)
-
-```
- OpenIM.iMManager.conversationManager.getConversationIDBySessionType(
- sourceID: "", // 如果是单聊值传userID,如果是群聊groupID
- sessionType: 1, // 如果是单聊值传1,如果是群聊值传2
- ).then((conversationID){
- // 会话ID
- });
-```
-
-
-
-- ##### setConversationRecvMessageOpt(设置免打扰模式)
-
-```
-OpenIM.iMManager.conversationManager.setConversationRecvMessageOpt(
- conversationIDList: [], // 会话id列表
- status: 1, // 1:不接受消息;2:接受在线消息不接受离线消息;0:正常
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getConversationRecvMessageOpt(查询免打扰状态)
-
-```
-/// 此方法已废弃,使用getOneConversation/getMultipleConversation方法替代
-OpenIM.iMManager.conversationManager.getConversationRecvMessageOpt(
- conversationIDList: [], // 会话id列表
- ).then((list) {
- // 返回列表 [{"conversationId":"single_13922222222","result":0}]
- // result: 1:不接受消息;2:接受在线消息不接受离线消息;0:正常
- });
-```
-
-
-
-- ##### setOneConversationPrivateChat(开启阅后即焚)
-
-```
-OpenIM.iMManager.conversationManager.setOneConversationPrivateChat(
- conversationID:"", // 会话id
- isPrivate:true,//true开启
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### deleteConversationFromLocalAndSvr(删除本地跟服务器端会话记录)
-
-```
-OpenIM.iMManager.conversationManager.deleteConversationFromLocalAndSvr(
- conversationID:"", // 会话id
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### deleteAllConversationFromLocal(清空本地所有会话)
-
-```
-OpenIM.iMManager.conversationManager.deleteAllConversationFromLocal(
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### resetConversationGroupAtType(重置会话强提示标识位)
-
-```
-OpenIM.iMManager.conversationManager.resetConversationGroupAtType(
- conversationID:"", // 会话id
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getAtAllTag(@所有标识)
-
-```
-OpenIM.iMManager.conversationManager.getAtAllTag();
-```
-
-
-
-- ##### setGlobalRecvMessageOpt(设置全局免打扰状态)
-
-```
-OpenIM.iMManager.conversationManager.setGlobalRecvMessageOpt(
- status: status,// 0:正常;1:不接受消息;2:接受在线消息不接受离线消息;
-);
-```
-
-
-
-- ##### simpleSort(自定义会话排序规则)
-
-```
-var list = OpenIM.iMManager.conversationManager.simpleSort([]);// 返回排序好的列表
-```
-
-
-
-- ##### getFriendsInfo(根据userID查询好友资料)
-
-```
- OpenIM.iMManager.friendshipManager.getFriendsInfo(
- uidList: [], // userId列表
- ).then((list) {
- // List
- });
-```
-
-
-
-- ##### addFriend(发起好友申请)
-
-主动申请者收到OnFriendApplicationAdded
-
-被添加者收到OnFriendApplicationAdded
-
-```
- OpenIM.iMManager.friendshipManager.addFriend(
- uid: "", // 用户id
- reason: '', // 发起好友申请的描述信息
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### checkFriend(检查是否是好友)
-
-```
-OpenIM.iMManager.friendshipManager.checkFriend(
- uidList: [], // userID 列表
- ).then((list) {
- // List
- });
-```
-
-
-
-- ##### deleteFriend(删除好友)
-
-操作者收到OnFriendDeleted
-
-```
-OpenIM.iMManager.friendshipManager.deleteFriend(
- uid: '', // userID
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### setFriendRemark(好友备注设置)
-
-操作者收到OnFriendInfoChanged
-
-```
- OpenIM.iMManager.friendshipManager.setFriendRemark(
- uid: '', // 好友userID
- remark: '', // 备注名
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getFriendList(好友列表)
-
-返回的数据里包含已拉入黑名单的好友,可以根据isBlacklist字段筛选。
-
-```
-OpenIM.iMManager.friendshipManager.getFriendList().then((list){
- // List 好友信息列表
-});
-```
-
-
-
-- ##### getRecvFriendApplicationList(收到的好友申请)
-
-```
- OpenIM.iMManager.friendshipManager.getRecvFriendApplicationList().then((list) {
- // List 申请列表
- });
-```
-
-
-
-- ##### getSendFriendApplicationList(发出的好友申请)
-
-```
-OpenIM.iMManager.friendshipManager.getSendFriendApplicationList().then((list){
- // List 申请列表
- });
-```
-
-
-
-- ##### addBlacklist(拉黑好友)
-
-操作者收到OnBlackAdded
-
-```
- OpenIM.iMManager.friendshipManager.addBlacklist(
- uid: "", // 好友userID
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getBlacklist(黑名单)
-
-```
-OpenIM.iMManager.friendshipManager.getBlacklist().then((list){
- // List
- });
-```
-
-
-
-- ##### removeBlacklist(移除黑名单)
-
-操作者收到OnBlackDeleted
-
-```
-OpenIM.iMManager.friendshipManager.removeBlacklist(
- uid: "", // userID
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### acceptFriendApplication(接受好友申请)
-
-操作者收到OnFriendApplicationAccepted、OnFriendAdded
-
-申请者收到OnFriendApplicationAccepted、OnFriendAdded
-
-```
-OpenIM.iMManager.friendshipManager.acceptFriendApplication(
- uid: "", // userID
- handleMsg: '', // 备注信息
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### refuseFriendApplication(拒绝好友申请)
-
-操作者收到OnFriendApplicationRejected
-
-申请者收到OnFriendApplicationRejected
-
-```
- OpenIM.iMManager.friendshipManager.refuseFriendApplication(
- uid: "", // userID
- handleMsg: '', // 备注信息
- ).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### searchFriends(搜索好友)
-
-```
-var list = await OpenIM.iMManager.friendshipManager.searchFriends(
- keywordList: [searchCtrl.text.trim()],//关键词
- isSearchNickname: true,//按昵称查找
- isSearchRemark: true,//按备注查找
- );
-```
-
-
-
-- ##### inviteUserToGroup(邀请进组)
-
-直接进组无需同意。
-
-被邀请者收到OnJoinedGroupAdded
-
-群成员(不包括被邀请者)收到OnGroupMemberAdded
-
-```
- OpenIM.iMManager.groupManager.inviteUserToGroup(
- groupId: '', // 组ID
- uidList: [], // 成员 userID 列表
- reason: '', // 备注信息
- ).then((list){
- // List
- });
-}
-```
-
-
-
-- ##### kickGroupMember(移除组成员)
-
-被踢者收到OnJoinedGroupDeleted
-
-群成员收到OnGroupMemberDeleted
-
-```
-OpenIM.iMManager.groupManager.kickGroupMember(
- groupId: '', // 组ID
- uidList: [], // 成员 userID 列表
- reason: '', // 备注信息
-).then((list){
- // List
- });
-```
-
-
-
-- ##### getGroupMembersInfo(查询组成员信息)
-
-```
-OpenIM.iMManager.groupManager.getGroupMembersInfo(
- groupId: '', // 组ID
- uidList: [], // 成员 userID 列表
-).then((list){
- // List
-});
-```
-
-
-
-- ##### getGroupMemberList(组成员列表)
-
-```
-OpenIM.iMManager.groupManager.getGroupMemberList(
- groupId: '', // 组ID
- filter: 0, // 1普通成员, 2群主,3管理员
- offset: 0, // 偏移量,每次开始的index值
- count: 0, // 每次拉取的数量
-).then((list){
- // List
-});
-```
-
-
-
-- ##### getJoinedGroupList(获取已加入的群组)
-
-```
-OpenIM.iMManager.groupManager.getJoinedGroupList().then((list){
- // List
-});
-```
-
-
-
-- ##### isJoinedGroup(检查是否已入群)
-
-```
-OpenIM.iMManager.groupManager.isJoinedGroup(
- gid: '', // 组ID
-).then((joned) {
- // true已加入;false未加入
-});
-```
-
-
-
-- ##### createGroup(创建组)
-
-初始成员收到OnJoinedGroupAdded
-
-```
-OpenIM.iMManager.groupManager.createGroup(
- groupName: '', // 组名
- faceUrl: '', // 头像
- notification: '', // 群公告
- introduction: '', // 群简介
- groupType: 0, // 类型
- ex: '', // 扩展信息
- list: [], // 成员角色集合 List
-).then((groupInfo){
- // 返回组信息 GroupInfo
-});
-```
-
-
-
-- ##### setGroupInfo(修改组信息)
-
-群成员收到OnGroupInfoChanged
-
-```
-OpenIM.iMManager.groupManager.setGroupInfo(
- groupID: '',
- groupName: '', // 组名
- faceUrl: '', // 头像
- notification: '', // 群公告
- introduction: '', // 群简介
- ex: '', // 扩展信息
- needVerification: '',// 进群验证设置
-);
-```
-
-
-
-- ##### getGroupsInfo(根据id查询组信息)
-
-```
-OpenIM.iMManager.groupManager.getGroupsInfo(
- gidList: [], // 组id集合
-).then((list){
- // List
-});
-```
-
-
-
-- ##### joinGroup(申请入群组)
-
-需要通过管理员同意。
-
-申请者收到OnGroupApplicationAdded
-
-群主+管理员收到OnGroupApplicationAdded
-
-```
-OpenIM.iMManager.groupManager.joinGroup(
- gid: '', // 组id
- reason: '', // 入群备注信息
-);
-```
-
-
-
-- ##### quitGroup(退出组)
-
-退出者收到OnJoinedGroupDeleted
-
-群成员收到OnGroupMemberDeleted
-
-```
-OpenIM.iMManager.groupManager.quitGroup(
- gid: '', // 组id
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### transferGroupOwner(群转让)
-
-```
-OpenIM.iMManager.groupManager.transferGroupOwner(
- gid: '', // 组ID
- uid: '', // 新 owner userID
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getRecvGroupApplicationList(收到的入群申请)
-
-作为群主或者管理员,获取收到的群成员申请进群列表。
-
-```
-OpenIM.iMManager.groupManager.getRecvGroupApplicationList().then((list){
- // List
-});
-```
-
-
-
-- ##### getSendGroupApplicationList(发出的入群申请)
-
-```
-OpenIM.iMManager.groupManager.getSendGroupApplicationList().then((list){
- // List
-});
-```
-
-
-
-- ##### acceptGroupApplication(接受入群申请)
-
-申请者收到OnJoinedGroupAdded OnGroupApplicationAccepted
-
-群成员(不包括申请者)收到OnGroupMemberAdded
-
-审批者(群主或者管理员)收到OnGroupMemberAdded OnGroupApplicationAccepted
-
-```
-OpenIM.iMManager.groupManager.acceptGroupApplication(
- gid: '', // 组ID
- uid: '', // 申请人userID
- handleMsg: '', // 备注信息
-);
-```
-
-
-
-- ##### refuseGroupApplication(拒绝入群申请)
-
-申请者收到OnGroupApplicationRejected
-
-审批者(群主或者管理员)收到OnGroupApplicationRejected
-
-```
-OpenIM.iMManager.groupManager.refuseGroupApplication(
- gid: '', // 组ID
- uid: '', // 申请人userID
- handleMsg: '', // 备注信息
-);
-```
-
-
-
-- ##### dismissGroup(解散群)
-
-```
-OpenIM.iMManager.groupManager.dismissGroup(
- groupID: '', // 组ID
-);
-```
-
-
-
-- ##### changeGroupMute(开启群禁言)
-
-```
-OpenIM.iMManager.groupManager.changeGroupMute(
- groupID: '', // 组ID
- mute:true, // 禁言
-);
-```
-
-
-
-- ##### changeGroupMemberMute(对群成员禁言)
-
-```
-OpenIM.iMManager.groupManager.changeGroupMemberMute(
- groupID: '', // 组ID
- userID:'', // 群成员userID
- seconds:0, // 禁言时长s
-);
-```
-
-
-
-- ##### setGroupMemberNickname(修改成员组昵称)
-
-```
-OpenIM.iMManager.groupManager.setGroupMemberNickname(
- groupID: '', // 组ID
- userID:'', // 群成员userID
- groupNickname:'', // 群昵称
-);
-```
-
-
-
-- ##### searchGroups(搜索群)
-
-```
-List list = await OpenIM.iMManager.groupManager.searchGroups(
- keywordList: [], // 关键词
- isSearchGroupID: true, // 以id搜索
- isSearchGroupName: false, // 以群名搜索
-);
-```
-
-
-
-- ##### setGroupMemberRoleLevel(设置群成员角色)
-
-```
-OpenIM.iMManager.groupManager.setGroupMemberRoleLevel(
- groupID: groupID,
- userID: userID,
- roleLevel: GroupRoleLevel.member,
-)
-```
-
-
-
-- ##### getGroupMemberListByJoinTime(根据加入时间分页获取组成员列表)
-
-```
-// 如:获取消息发送前入群的成员,用于查看消息未读列表
-var list = await OpenIM.iMManager.groupManager.getGroupMemberListByJoinTime(
- groupID: message.groupID!,
- joinTimeEnd: message.sendTime! ~/ 1000,
- offset: 0,
- count: 40,
- excludeUserIDList: [...hasReadIDList, OpenIM.iMManager.uid],// 排除的人员
-);
-```
-
-
-
-- ##### sendMessage(发送消息)
-
-```
-OpenIM.iMManager.messageManager.sendMessage(
- message: Message(), // 消息体
- userID: '', // 接受消息的userID
- groupID: '', // 接受消息的群ID
- offlinePushInfo: OfflinePushInfo(), // 离线推送的消息备注
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### getHistoryMessageList(获取聊天记录)
-
-```
-OpenIM.iMManager.messageManager.getHistoryMessageList(
- userID: '', // 单聊对象的userID
- groupID: '', // 群聊的组id
- startMsg: null, // 消息体
- count: 0, // 每次拉取的数量
-).then((list){
- // List
-});
-```
-
-注:消息列表list,index == list.length -1 是最新的一条消息。 index == 0 是从最新的这条记录后的第19条。所以startMsg首次传null,
-
-下次就是list.first(index == 0),以此类推。
-
-
-
-- ##### revokeMessage(撤回消息)
-
-撤回成功需要当前用户从列表里移除Message然后更新ui,而另外一方通过撤回监听(onRecvMessageRevoked)移除。
-
-```
-OpenIM.iMManager.messageManager.revokeMessage(
- message: Message(), // 消息体
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### deleteMessageFromLocalStorage(删除单条消息)
-
-```
-OpenIM.iMManager.messageManager.deleteMessageFromLocalStorage(
- message: Message(),
-).then((_) {
- // 成功,从列表里移除Message,然后更新ui
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### insertSingleMessageToLocalStorage(向本地插入一条消息)
-
-```
-OpenIM.iMManager.messageManager.insertSingleMessageToLocalStorage(
- receiverID: '', // 接收者userID
- senderID: '', // 发送者userID
- message: Message(), // 消息体
-);
-```
-
-
-
-- ##### markC2CMessageAsRead(标记c2c消息已读)
-
-当调用此方法后,已读的消息会通过已读回执(onRecvC2CReadReceipt)告诉对方。
-
-```
-OpenIM.iMManager.messageManager.markC2CMessageAsRead(
- userID: '', // 接收者 userID
- messageIDList: [], // 已读的消息id列表
-);
-```
-
-
-
-- ##### typingStatusUpdate(正在输入提示)
-
-会通过onRecvNewMessage回调
-
-```
-OpenIM.iMManager.messageManager.typingStatusUpdate(
- userID: '', // 接收者 userID
- msgTip: '', // 自定义提示内容
-);
-```
-
-
-
-- ##### clearC2CHistoryMessage(清空c2c聊天记录)
-
-```
-OpenIM.iMManager.messageManager.clearC2CHistoryMessage(
- uid: "", // userID
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### clearGroupHistoryMessage(清空群聊天记录)
-
-```
-OpenIM.iMManager.messageManager.clearGroupHistoryMessage(
- gid: '', // 群ID
-).then((_) {
- // 成功
- }).catchError((_){
- // 失败
- });
-```
-
-
-
-- ##### createTextMessage(文本消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createTextMessage(
- text: '', // 发送的内容
-);
-```
-
-
-
-- ##### createTextAtMessage(@消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createTextAtMessage(
- text: '', // 发送的内容
- atUserIDList: [], // 被@到的用户ID集合
- atUserInfoList: [], // 被@到的用户Info集合
- quoteMessage: null, //被引用的消息体
- );
-```
-
-
-
-- ##### createImageMessage(图片消息,相对路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createImageMessage(
- imagePath: '', // 相对路径
-);
-```
-
-注:initSDK时传入了数据缓存(dataDir)路径,如路径:A,这时需要你将图片复制到A路径下后,如 A/pic/a.png路径,imagePath的值:“/pic/a.png”。同以下其他消息的相对路径。
-
-
-
-- ##### createImageMessageFromFullPath(图片消息全路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createImageMessageFromFullPath(
- imagePath: '', // 绝对路径
-);
-```
-
-
-
-- ##### createSoundMessage(语音消息,相对路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createSoundMessage(
- soundPath: '', // 相对路径
- duration: 0, // 时长s
-);
-```
-
-
-
-- ##### createSoundMessageFromFullPath(语音消息全路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createSoundMessageFromFullPath(
- soundPath: '', // 绝对路径
- duration: 0, // 时长s
-);
-```
-
-
-
-- ##### createVideoMessage(视频消息,相对路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createVideoMessage(
- videoPath: '', // 相对路径
- videoType: '', // minetype
- duration: 0, // 时长s
- snapshotPath: '', // 站位缩略图
-);
-```
-
-
-
-- ##### createVideoMessageFromFullPath(视频消息全路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createVideoMessageFromFullPath(
- videoPath: '', // 绝对路径
- videoType: '', // minetype
- duration: 0, // 时长s
- snapshotPath: '', // 站位缩略图
-);
-```
-
-
-
-- ##### createFileMessage(文件消息,相对路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createFileMessage(
- filePath: '', // 相对路径
- fileName: '', // 文件名
-);
-```
-
-
-
-- ##### createFileMessageFromFullPath(文件消息全路径)
-
-```
-var message = await OpenIM.iMManager.messageManager.createFileMessageFromFullPath(
- filePath: '', // 绝对路径
- fileName: '', // 文件名
-);
-```
-
-
-
-- ##### createForwardMessage(转发消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createForwardMessage(
- message: Message(), // 被转发的消息体
-);
-```
-
-
-
-- ##### createMergerMessage(合并消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createMergerMessage(
- messageList: [], // 被转发的消息列表
- title: '', // 标题
- summaryList: [], // 每一条消息摘要
-);
-```
-
-
-
-- ##### createLocationMessage(位置消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createLocationMessage(
- latitude: 0,// 纬度
- longitude: 0, // 经度
- description: '', // 位置描述信息
-);
-```
-
-
-
-- ##### createCustomMessage(自定义消息)
-
-```
-var message = await OpenIM.iMManager.messageManager.createCustomMessage(
- data: '', // 自定义内容
- extension: '', // 扩展信息
- description: '', // 描述消息
-);
-```
-
-
-
-- ##### createQuoteMessage(引用消息/消息回复)
-
-```
-var message = await OpenIM.iMManager.messageManager.createQuoteMessage(
- text: '', // 回复内容
- quoteMsg: Message(), // 被回复的消息体
-);
-```
-
-
-
-- ##### createCardMessage(名片消息)
-
-```
-OpenIM.iMManager.messageManager.createCardMessage(
- data: {}, // 自定义内容
-);
-```
-
-
-
-- ##### searchLocalMessages(全局搜索)
-
-```
-SearchResult result = await OpenIM.iMManager.messageManager.searchLocalMessages(
- conversationID: null, // 根据会话查询,如果是全局搜索传null
- keywordList: [], // 搜索关键词列表,目前仅支持一个关键词搜索
- keywordListMatchType: 0, // 关键词匹配模式,1代表与,2代表或,暂时未用
- senderUserIDList: [], // 指定消息发送的uid列表 暂时未用
- messageTypeList: [], // 消息类型列表
- searchTimePosition: 0, // 搜索的起始时间点。默认为0即代表从现在开始搜索。UTC 时间戳,单位:秒
- searchTimePeriod: 0, // 从起始时间点开始的过去时间范围,单位秒。默认为0即代表不限制时间范围,传24x60x60代表过去一天
- pageIndex: 1, // 当前页数
- count: 10, // 每页数量
-);
-```
-
-
-
-- ##### deleteMessageFromLocalAndSvr(删除本地跟服务器聊天记录)
-
-```
-OpenIM.iMManager.messageManager.createCardMessage(
- message: null, // 消息体
-);
-```
-
-
-
-- ##### deleteAllMsgFromLocal(清空所有本地聊天记录)
-
-```
-OpenIM.iMManager.messageManager.deleteAllMsgFromLocal(
-);
-```
-
-
-
-- ##### deleteAllMsgFromLocalAndSvr(清空本地跟服务器所有聊天记录)
-
-```
-OpenIM.iMManager.messageManager.deleteAllMsgFromLocalAndSvr(
-);
-```
-
-
-
-- ##### markMessageAsReadByConID(标记会话里某些消息为已读)
-
-```
-OpenIM.iMManager.messageManager.markMessageAsReadByConID(
- conversationID: null, // 会话ID
- messageIDList: [], // 消息id列表
-);
-```
-
-
-
-- ##### clearC2CHistoryMessageFromLocalAndSvr(清空单聊本地跟服务端聊天记录)
-
-```
-OpenIM.iMManager.messageManager.clearC2CHistoryMessageFromLocalAndSvr(
- uid: null, // 用户id
-);
-```
-
-
-
-- ##### clearGroupHistoryMessageFromLocalAndSvr(清空群聊本地跟服务端聊天记录)
-
-```
-OpenIM.iMManager.messageManager.clearGroupHistoryMessageFromLocalAndSvr(
- gid: null, // 群组id
-);
-```
-
-
-
-- ##### getHistoryMessageListReverse(获取新的聊天记录)
-
-```
-// 获取聊天记录(以startMsg为节点,新收到的聊天记录),用在全局搜索定位某一条消息,然后此条消息后新增的消息
-OpenIM.iMManager.messageManager.getHistoryMessageListReverse(
- userID: '', // 单聊对象的userID
- groupID: '', // 群聊的组id
- startMsg: null, // 消息体
- count: 0, // 每次拉取的数量
-).then((list){
- // List
-});
-```
-
-
-
-- ##### signalingInvite(邀请个人加入音视频通话)
-
-```
-SignalingCertificate sc = await OpenIM.iMManager.signalingManager.signalingInvite(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### signalingInviteInGroup(邀请群成员加入音视频通话)
-
-```
-SignalingCertificate sc = await OpenIM.iMManager.signalingManager.signalingInviteInGroup(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### signalingAccept(接受邀请)
-
-```
-SignalingCertificate sc = await OpenIM.iMManager.signalingManager.signalingAccept(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### signalingReject(拒绝邀请)
-
-```
-OpenIM.iMManager.signalingManager.signalingReject(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### signalingCancel(取消)
-
-```
-OpenIM.iMManager.signalingManager.signalingCancel(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### signalingHungUp(挂断)
-
-```
-OpenIM.iMManager.signalingManager.signalingHungUp(
- info: null, // 信令对象SignalingInfo
-);
-```
-
-
-
-- ##### getSubDept(获取子部门列表,返回当前部门下的一级子部门)
-
-```
-var list = await OpenIM.iMManager.organizationManager.getSubDept(
- departmentID: '', // 部门id
- offset: 0, // 开始下标
- count: 40, // 每页大小
-);
-```
-
-
-
-- ##### getDeptMember(获取部门下的成员列表,返回当前部门下的一级成员)
-
-```
-var list = await OpenIM.iMManager.organizationManager.getDeptMember(
- departmentID: '', // 部门id
- offset: 0, // 开始下标
- count: 40, // 每页大小
-);
-```
-
-
-
-- ##### getUserInDept(获取成员所在的部门)
-
-```
-var list = await OpenIM.iMManager.organizationManager.getUserInDept(
- userID: '', // 成员id
-);
-```
-
-
-
-- ##### getDeptMemberAndSubDept(获取部门下的子部门跟员工)
-
-```
-var detail = await OpenIM.iMManager.organizationManager.getDeptMemberAndSubDept(
- departmentID: '', // 部门id
-);
-```
-
-
-
-- ##### getDeptInfo(查询部门信息)
-
-```
-var info = await OpenIM.iMManager.organizationManager.getDeptInfo(
- departmentID: '', // 部门id
-);
-```
-
-
-
-- ##### searchOrganization(搜索组织人员)
-
-```
-var result = await OpenIM.iMManager.organizationManager.searchOrganization(
- keyWord: searchCtrl.text.trim(),
- isSearchUserName: true,
- isSearchEnglishName: true,
- isSearchPosition: true,
- offset: offset,
- count: count,
-);
-```
-
-
-
-- ##### getWorkMomentsUnReadCount(获取朋友圈未读消息总数)
-
-```
-var count = await OpenIM.iMManager.workMomentsManager.getWorkMomentsUnReadCount();
-```
-
-
-
-- ##### getWorkMomentsNotification(获取朋友圈通知列表)
-
-```
-var list = await OpenIM.iMManager.workMomentsManager.getWorkMomentsNotification(
- offset:0,//开始下标
- count:40,//每页大小
-);
-```
-
-
-
-- ##### clearWorkMomentsNotification(清除朋友圈通知列表)
-
-```
-OpenIM.iMManager.workMomentsManager.clearWorkMomentsNotification();
-```
-
-
-
-- ##### 监听器设置
-
-```
-OpenIM.iMManager
- ..userManager.setUserListener(OnUserListener(
- onSelfInfoUpdated: (userInfo) {
- // 当前登录用户资料变更回调
- },
- ))
- ..messageManager.setAdvancedMsgListener(OnAdvancedMsgListener(
- onRecvNewMessage: (message) {
- // 收到新消息,界面添加新消息
- },
- onRecvMessageRevoked: (messageID) {
- // 消息成功撤回,从界面移除消息
- },
- onRecvC2CReadReceipt: (list) {
- // 消息被阅读回执,将消息标记为已读
- },
- ))
- ..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
- onProgress: (messageID, progress) {
- // 消息发送进度回调
- },
- ))
- ..friendshipManager.setFriendshipListener(OnFriendshipListener(
- onFriendApplicationRejected: (applicationInfo) {
- // 发出或收到的好友申请被拒绝
- },
- onFriendApplicationDeleted: (applicationInfo) {
- // 发出或收到的好友申请被删除
- },
- onFriendApplicationAdded: (applicationInfo) {
- // 发出或收到的好友申请被添加
- },
- onFriendApplicationAccepted: (applicationInfo) {
- // 发出或收到的好友申请已同意
- },
- onFriendAdded: (frinedInfo) {
- // 好友被添加
- },
- onFriendDeleted: (frinedInfo) {
- // 好友被删除
- },
- onFriendInfoChanged: (frinedInfo) {
- // 朋友的资料发生变化
- },
- onBlacklistDeleted: (blackInfo) {
- // 从黑名单删除
- },
- onBlacklistAdded: (blackInfo) {
- // 拉入黑名单
- },
- ))
- ..conversationManager.setConversationListener(OnConversationListener(
- onNewConversation: (list) {
- // 新增会话
- },
- onConversationChanged: (list) {
- // 已添加的会话发送改变
- },
- onTotalUnreadMessageCountChanged: (count) {
- // 未读消息数发送变化
- },
- ))
- ..groupManager.setGroupListener(OnGroupListener(
- onGroupMemberInfoChanged: (memberInfo) {
- // 组成员信息发生变化
- },
- onGroupMemberDeleted: (memberInfo) {
- // 组成员退出
- },
- onGroupMemberAdded: (memberInfo) {
- // 组成员进入
- },
- onGroupApplicationRejected: (applicationInfo) {
- // 发出或收到的组申请被拒绝
- },
- onGroupApplicationDeleted: (applicationInfo) {
- // 发出或收到的组申请被删除
- },
- onGroupApplicationAdded: (applicationInfo) {
- // 发出或收到的组申请有新增
- },
- onGroupApplicationAccepted: (applicationInfo) {
- // 发出或收到的组申请被接受
- },
- onJoinedGroupDeleted: (groupInfo) {
- // 退出群:退出者收到;踢出群:被踢者收到
- },
- onJoinedGroupAdded: (groupInfo) {
- // 创建群: 初始成员收到;邀请进群:被邀请者收到
- },
- onGroupInfoChanged: (groupInfo) {
- // 组资料变更
- },
- ))
- ..signalingManager.setSignalingListener(OnSignalingListener(
- onReceiveNewInvitation: (info) {
- // 被邀请者收到:音视频通话邀请
- },
- onInviteeRejected: (info) {
- // 邀请者收到:被邀请者拒绝音视频通话
- },
- onInviteeAccepted: (info) {
- // 邀请者收到:被邀请者同意音视频通话
- },
- onInvitationTimeout: (info) {
- // 邀请者收到:被邀请者超时未接通
- },
- onInvitationCancelled: (info) {
- // 被邀请者收到:邀请者取消音视频通话
- },
- ));
-```