diff --git a/README.md b/README.md index 315197c..013b1c8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # flutter_openim_sdk -A Flutter im plugin. +A flutter IM plugin for android and ios. ##### [Android体验包(密码:123456)](https://www.pgyer.com/openim) @@ -21,51 +21,156 @@ A Flutter im plugin. import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; -### Usage +#### 3, 初始化配置 + +``` +// 初始化SDK +OpenIM.iMManager + ..initSDK( + platform: IMPlatform.ios, + ipApi: 'Api接口地址', + ipWs: 'WebSocket地址', + dbPath: '数据库目录', + listener: InitSDKListener(), + ) + + // 添加消息监听(不使用的时候remove) + ..messageManager.addAdvancedMsgListener(AdvancedMsgListener()) + + // 设置消息发送进度监听 + ..messageManager.setMsgSendProgressListener(MsgSendProgressListener()) + + // 设置好友关系监听 + ..friendshipManager.setFriendshipListener(FriendshipListener()) + + // 设置会话监听 + ..conversationManager.setConversationListener(ConversationListener()) + + // 设置群监听 + ..groupManager.setGroupListener(GroupListener()); +``` + +#### 4, 登录 + +``` + OpenIM.iMManager.login(uid: uid, token: token).then((value){ + // 登录成功 + }); +``` + +#### 5,获取会话列表 + +``` + OpenIM.iMManager.conversationManager.getAllConversationList().then((list) { + // 返回会话列表list + }); +``` + +#### 6,获取联系人列表 + +``` + OpenIM.iMManager.friendshipManager.getFriendList().then((list) { + // 返回好友列表list + }); +``` + +#### 7,获取聊天记录 + +``` +List chatMsgList = List.empty(growable: true); + +/// 自定义消息监听 +class CustomAdvancedMsgListener extends AdvancedMsgListener { + final ValueChanged? onNewMessage; + + CustomAdvancedMsgListener({ + this.onNewMessage, + }); + + @override + void onRecvNewMessage(Message msg) { + if (null != onNewMessage) onNewMessage!(msg); + } +} +``` + +- 历史消息 + +``` + // 如果userID不为null,groupID为null,获取的是单聊消息 + // 如果userID为null,groupID不为null,获取的是群聊消息 + OpenIM.iMManager.messageManager.getHistoryMessageList( + userID: uid,//用户id + startMsg: startMsg,//上一条消息,取chatMsgList[0] + groupID: gid,//群id + count: 12,//分页大小 + ) + .then((list) => chatMsgList.addAll(list)); + +``` + +- 新消息 + +``` +// 创建消息监听 +var msgListener = CustomAdvancedMsgListener(onNewMessage: (message) { + if (message.sendID == uid || message.groupID == gid) { + if (!chatMsgList.contains(message)) { + // 当前聊天窗口新增消息 + chatMsgList.add(event.message); + } + } +}); + +// 添加消息监听 +OpenIM.iMManager.messageManager.addAdvancedMsgListener(msgListener); + +// 移除消息监听 +// OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener); +``` + +#### 8,发送消息 + +``` +// 创建消息 +var message = await OpenIM.iMManager.messageManager.createTextMessage( + text: '我是消息内容', + ); +// 发送 +OpenIM.iMManager.messageManager.sendMessage( + message: message, + onlineUserOnly: false, + userID: uid, + groupID: gid, + ).then((v) { + // 发送成功 + }).catchError((e){ + // 发送失败 + }); +``` + +#### 9,登出 + +``` +OpenIM.iMManager.logout(); +``` -#### 初始化 - var msgListener = AdvancedMsgListener(); - - /// 初始化SDK - OpenIM.iMManager - ..initSDK( - platform: 0, - ipApi: 'Api接口地址', - ipWs: 'WebSocket地址', - dbPath: '数据库目录', - listener: new InitSDKListener(), - ) - - /// 添加消息监听(移除消息监听: OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener)) - ..messageManager.addAdvancedMsgListener(msgListener) - - /// 设置发送消息进度监听 - ..messageManager.setMsgSendProgressListener(MsgSendProgressListener()) - - /// 设置好友关系监听 - ..friendshipManager.setFriendshipListener(FriendshipListener()) - - /// 设置会话监听 - ..conversationManager.setConversationListener(ConversationListener()) - - /// 设置群监听 - ..groupManager.setGroupListener(GroupListener()); #### OpenIM.iMManager -| 方法 | 描述 | -| ---------------- | ------------------------------------------------------- | -| initSDK | 初始化sdk,platform:iOS-1,Android-0;listener初始监听 | -| unInitSDK | | -| login | 登录 | -| logout | 登出 | -| getLoginStatus | 登录状态 | -| getLoginUid | 当前uid | -| getLoginUserInfo | 当前用户信息 | -| setSelfInfo | 修改资料 | -| getUsersInfo | 根据uid获取用户资料 | -| forceReConn | 强制重连 | +| 方法 | 描述 | +| ---------------- | ------------------- | +| initSDK | 初始化sdk | +| unInitSDK | | +| login | 登录 | +| logout | 登出 | +| getLoginStatus | 登录状态 | +| getLoginUid | 当前uid | +| getLoginUserInfo | 当前用户信息 | +| setSelfInfo | 修改资料 | +| getUsersInfo | 根据uid获取用户资料 | +| forceReConn | 强制重连 | @@ -146,8 +251,7 @@ A Flutter im plugin. | getGroupsInfo | 获取群信息 | | joinGroup | 加入群 | | quitGroup | 退出群 | -| transferGroupOwner | 群权限交接 | +| transferGroupOwner | 群权限转移 | | getGroupApplicationList | 获取群申请列表 | | acceptGroupApplication | 接受群邀请 | | refuseGroupApplication | 拒绝群邀请 | -