Update README.md

main
hrxiang 4 years ago committed by GitHub
parent 438d82fe8e
commit aee4b6a43c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 269
      README.md

@ -2,84 +2,78 @@
A flutter IM plugin for android and ios. A flutter IM plugin for android and ios.
##### [Android体验包(密码:123456)](https://www.pgyer.com/openim)
##### [demo地址](https://github.com/hrxiang/OpenIMFlutterDemo.git)
##### [SDK文档地址](xxxx)
## Getting Started ## Getting Started
#### 1,在yaml里添加依赖 #### 1,Add dependency in yaml
flutter_openim_sdk: flutter_openim_sdk:
git: git:
url: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter.git url: https://github.com/OpenIMSDK/Open-IM-SDK-Flutter.git
#### 2,导入package #### 2,Import package
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
#### 3, 初始化配置 #### 3, Init config
``` ```
// 初始化SDK // Initialize SDK
OpenIM.iMManager OpenIM.iMManager
..initSDK( ..initSDK(
platform: IMPlatform.ios, platform: IMPlatform.ios,
ipApi: 'Api接口地址', ipApi: 'Api interface address',
ipWs: 'WebSocket地址', ipWs: 'WebSocket address',
dbPath: '数据库目录', dbPath: 'Database directory',
listener: InitSDKListener(), listener: InitSDKListener(),
) )
// 添加消息监听(不使用的时候remove) // Add message listener (remove when not in use)
..messageManager.addAdvancedMsgListener(AdvancedMsgListener()) ..messageManager.addAdvancedMsgListener(AdvancedMsgListener())
// 设置消息发送进度监听 // Set up message sending progress listener
..messageManager.setMsgSendProgressListener(MsgSendProgressListener()) ..messageManager.setMsgSendProgressListener(MsgSendProgressListener())
// 设置好友关系监听 // Set up friend relationship listener
..friendshipManager.setFriendshipListener(FriendshipListener()) ..friendshipManager.setFriendshipListener(FriendshipListener())
// 设置会话监听 // Set up conversation listener
..conversationManager.setConversationListener(ConversationListener()) ..conversationManager.setConversationListener(ConversationListener())
// 设置群监听 // Set up group listener
..groupManager.setGroupListener(GroupListener()); ..groupManager.setGroupListener(GroupListener());
``` ```
#### 4, 登录 #### 4, Log in
``` ```
OpenIM.iMManager.login(uid: uid, token: token).then((value){ OpenIM.iMManager.login(uid: uid, token: token).then((value){
// 登录成功 // login successful
}); });
``` ```
#### 5,获取会话列表 #### 5,Get a list of conversations
``` ```
OpenIM.iMManager.conversationManager.getAllConversationList().then((list) { OpenIM.iMManager.conversationManager.getAllConversationList().then((list) {
// 返回会话列表list // Return to the conversation list
}); });
``` ```
#### 6,获取联系人列表 #### 6,Get contact list
``` ```
OpenIM.iMManager.friendshipManager.getFriendList().then((list) { OpenIM.iMManager.friendshipManager.getFriendList().then((list) {
// 返回好友列表list // Return to friends list
}); });
``` ```
#### 7,获取聊天记录 #### 7,Get chat history
``` ```
List<Message> chatMsgList = List.empty(growable: true); List<Message> chatMsgList = List.empty(growable: true);
/// 自定义消息监听,新消息到达会触发onNewMessage方法回调 /// Custom message listener, the arrival of a new message will trigger the onNewMessage method callback
class CustomAdvancedMsgListener extends AdvancedMsgListener { class CustomAdvancedMsgListener extends AdvancedMsgListener {
final ValueChanged<Message>? onNewMessage; final ValueChanged<Message>? onNewMessage;
@ -94,67 +88,68 @@ class CustomAdvancedMsgListener extends AdvancedMsgListener {
} }
``` ```
- 历史消息 - History news
``` ```
// 如果userID不为null,groupID为null,获取的是单聊消息 // If userID is not null and groupID is null, get a single chat message list
// 如果userID为null,groupID不为null,获取的是群聊消息 // If the userID is null and the groupID is not null, get a group chat message list
OpenIM.iMManager.messageManager.getHistoryMessageList( OpenIM.iMManager.messageManager.getHistoryMessageList(
userID: uid,//用户id userID: uid,//User id
startMsg: startMsg,//上一条消息,取chatMsgList[0] startMsg: startMsg,//Last message, take chatMsgList[0]
groupID: gid,//id groupID: gid,//Group id
count: 12,//分页大小 count: 12,//Page Size
) )
.then((list) => chatMsgList.addAll(list)); .then((list) => chatMsgList.addAll(list));
``` ```
- 新消息 - New news
``` ```
// 创建消息监听 // Create a message listener
// 在进入聊天界面后需要监听新消息然后渲染UI // After entering the chat page, you need to listen for new messages and then render the UI
// 每个聊天窗口都有唯一的uid(用户id)或gid(群组id) // Each chat window has a unique uid (user id) or gid (group id)
// 根据uid或gid判断收到的消息是否属于当前窗口 // Determine whether the received message belongs to the current window according to uid or gid
var msgListener = CustomAdvancedMsgListener(onNewMessage: (message) { var msgListener = CustomAdvancedMsgListener(onNewMessage: (message) {
// 如果发送者id与当前聊天对象的id相等,或群组id与当前所在群id相等,则为当前窗口消息 // If the sender user id is equal to the user id of the current chat page,
// or the group id is equal to the current group id of the current chat page
if (message.sendID == uid || message.groupID == gid) { if (message.sendID == uid || message.groupID == gid) {
if (!chatMsgList.contains(message)) { if (!chatMsgList.contains(message)) {
// 当前聊天窗口新增消息 // New message in current chat page
chatMsgList.add(event.message); chatMsgList.add(event.message);
} }
} }
}); });
// 添加消息监听 // Add message listener
OpenIM.iMManager.messageManager.addAdvancedMsgListener(msgListener); OpenIM.iMManager.messageManager.addAdvancedMsgListener(msgListener);
// 移除消息监听 // Remove message monitoring
// 添加消息监听后,如果界面dispose,请移除对应的监听 // After adding a message listener, if the page disposes, please remove the listener
// OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener); // OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener);
``` ```
#### 8,发送消息 #### 8,Send a message
``` ```
// 创建消息 // Create message
var message = await OpenIM.iMManager.messageManager.createTextMessage( var message = await OpenIM.iMManager.messageManager.createTextMessage(
text: '我是消息内容', text: 'I am the content of the message',
); );
// 发送 // Send
OpenIM.iMManager.messageManager.sendMessage( OpenIM.iMManager.messageManager.sendMessage(
message: message, message: message,
onlineUserOnly: false, onlineUserOnly: false,
userID: uid,// 单聊值不为null userID: uid, // Single chat value is not null
groupID: gid,// 群聊值不为null groupID: gid, // The group chat value is not null
).then((v) { ).then((v) {
// 发送成功 // Sent successfully
}).catchError((e){ }).catchError((e){
// 发送失败 // Failed to send
}); });
``` ```
#### 9,登出 #### 9,Sign out
``` ```
OpenIM.iMManager.logout(); OpenIM.iMManager.logout();
@ -164,101 +159,101 @@ OpenIM.iMManager.logout();
#### OpenIM.iMManager #### OpenIM.iMManager
| 方法 | 描述 | 参数说明 | | method | description |
| ---------------- | ------------------- | ------------------------------------------------------------ | | ---------------- | ------------------------------- |
| initSDK | 初始化sdk | platform:平台(IMPlatform)<br />ipApi:接口地址<br />ipWs:WebSocket地址<br />dbPath:数据本地存储路径以目录结尾 | | initSDK | Initialize SDK |
| unInitSDK | | | | unInitSDK | |
| login | 登录 | uid:当前用户userID<br />token:用户的token | | login | Log in |
| logout | 登出 | | | logout | Sign out |
| getLoginStatus | 登录状态 | | | getLoginStatus | Login status |
| getLoginUid | 当前uid | | | getLoginUid | Current user id |
| getLoginUserInfo | 当前用户信息 | | | getLoginUserInfo | Current user information |
| setSelfInfo | 修改资料 | info(UserInfo):用户信息 | | setSelfInfo | Modify current user information |
| getUsersInfo | 根据uid获取用户资料 | uidList:userId列表 | | getUsersInfo | Get user information by user id |
| forceReConn | 强制重连 | | | forceReConn | Force reconnection |
#### 会话管理:OpenIM.iMManager.conversationManager #### OpenIM.iMManager.conversationManager
| 方法 | 描述 | 参数说明 | | method | description |
| ----------------------- | ------------ | ------------------------------------------------------------ | | ----------------------- | --------------------------- |
| setConversationListener | 会话监听 | | | setConversationListener | Listener |
| getAllConversationList | 获取所有会话 | | | getAllConversationList | Get all conversation |
| getSingleConversation | 获取单个会话 | sourceID:单聊值为userID,群聊值为groupID;<br />sessionType:单聊值为1,群聊值为2 | | getSingleConversation | Get a single conversation |
| getMultipleConversation | 获取多个会话 | conversationIDList:会话id列表 | | getMultipleConversation | Get multiple conversation |
| deleteConversation | 删除会话 | conversationID:会话id | | deleteConversation | Delete conversation |
| setConversationDraft | 会话草稿 | draftText:草稿 | | setConversationDraft | Set conversation draftText |
| pinConversation | 会话置顶 | isPinned:true置顶,false取消置顶 | | pinConversation | Top conversation |
#### 好友关系管理:OpenIM.iMManager.friendshipManager #### OpenIM.iMManager.friendshipManager
| 方法 | 描述 | 参数说明 | | method | description |
| ------------------------ | ---------------- | -------------------------------------------------------- | | ------------------------ | --------------------------- |
| setFriendshipListener | 关系监听 | | | setFriendshipListener | Listener |
| getFriendsInfo | 获取好友信息 | uidList:要查询的用户的userID集合 | | getFriendsInfo | Get friend information |
| addFriend | 添加朋友 | uid:对方的userID<br />reason:添加理由 | | addFriend | Add friends |
| getFriendApplicationList | 获取好友申请列表 | | | getFriendApplicationList | Get friend application list |
| getFriendList | 获取好友列表 | | | getFriendList | Get friends list |
| setFriendInfo | 修改朋友备注 | info(UserInfo):{"uid" : "userId", "comment" : "备注"} | | setFriendInfo | Edit friend notes |
| addToBlackList | 加入黑名单 | | | addToBlackList | Add to blacklist |
| getBlackList | 获取黑名单列表 | | | getBlackList | Get blacklist list |
| deleteFromBlackList | 从黑名单移除 | | | deleteFromBlackList | Remove from blacklist |
| checkFriend | 检查好友关系 | | | checkFriend | Check friendship |
| deleteFromFriendList | 移除好友 | | | deleteFromFriendList | Remove friend |
| acceptFriendApplication | 接受好友申请 | | | acceptFriendApplication | Accept friend application |
| refuseFriendApplication | 拒绝好友申请 | | | refuseFriendApplication | Reject friend application |
#### 消息管理:OpenIM.iMManager.messageManager #### 消息管理:OpenIM.iMManager.messageManager
| 方法 | 描述 | 参数说明 | | method | description |
| ------------------------------------------- | ------------------ | ------------------------------------------------------------ | | ------------------------------------------- | --------------------------------- |
| addAdvancedMsgListener | 添加消息监听 | | | addAdvancedMsgListener | Add message listener |
| removeAdvancedMsgListener | 移除消息监听 | | | removeAdvancedMsgListener | Remove message listener |
| setMsgSendProgressListener | 消息发送进度监听 | | | setMsgSendProgressListener | Message sending progress listener |
| sendMessage | 发送消息 | message:消息对象<br />userID:单聊的用户id<br />groupID:群聊的组id<br />onlineUserOnly:仅在线用户 | | sendMessage | Send a message |
| getHistoryMessageList | 获取历史消息 | startMsg:列表里的第一条消息<br />userID:单聊的用户id<br />groupID:群聊的组id<br />count:每页size | | getHistoryMessageList | Get history news |
| revokeMessage | 消息撤回 | | | revokeMessage | Revoke message |
| deleteMessageFromLocalStorage | 删除消息 | | | deleteMessageFromLocalStorage | Delete message |
| insertSingleMessageToLocalStorage | 插入消息 | | | insertSingleMessageToLocalStorage | Insert message |
| findMessages | 根据消息id查询消息 | messageIDList:消息id集合 | | findMessages | Query the message by id |
| markSingleMessageHasRead | 标记单聊消息为已读 | | | markSingleMessageHasRead | Mark single chat messages as read |
| markGroupMessageHasRead | 标记群聊消息为已读 | | | markGroupMessageHasRead | Mark group chat messages as read |
| <font color=red>markC2CMessageAsRead</font> | 标记c2c消息已读 | | | <font color=red>markC2CMessageAsRead</font> | Mark c2c message as read |
| <font color=red>typingStatusUpdate</font> | 正在输入提示 | | | <font color=red>typingStatusUpdate</font> | Typing prompt |
| createTextMessage | 创建文本消息 | text:输入的内容 | | createTextMessage | Create text message |
| createTextAtMessage | 创建at消息 | atUidList:被@的用户id集合 | | createTextAtMessage | Create @ message |
| createImageMessage | 创建图片消息 | imagePath:路径 | | createImageMessage | Create picture message |
| createSoundMessage | 创建语音消息 | soundPath:路径<br />duration:时长 | | createSoundMessage | Create voice message |
| createVideoMessage | 创建视频消息 | videoPath:路径<br />videoType:视频类型<br />duration:时长<br />snapshotPath:缩略图 | | createVideoMessage | Create video message |
| createFileMessage | 创建文件消息 | filePath:路径<br />fileName:文件名 | | createFileMessage | Create file message |
| createMergerMessage | 创建合并消息 | | | createMergerMessage | Create merge message |
| createForwardMessage | 创建转发消息 | | | createForwardMessage | Create a forwarded message |
| getTotalUnreadMsgCount | 获取消息未读数 | | | getTotalUnreadMsgCount | Get unread message count |
#### 组管理: OpenIM.iMManager.groupManager #### OpenIM.iMManager.groupManager
| 方法 | 描述 | 参数说明 | | method | description |
| ----------------------- | ------------------ | ------------------------------------------------------------ | | ----------------------- | ------------------------------- |
| setGroupListener | 设置组关系监听 | | | setGroupListener | Listener |
| inviteUserToGroup | 邀请进组 | groupId:组id<br />uidList:被邀请的用户id集合<br />reason:说明 | | inviteUserToGroup | Invite into the group |
| kickGroupMember | 剔除组成员 | uidList:被剔除的用户id集合 | | kickGroupMember | Remove group members |
| getGroupMembersInfo | 获取组成员信息 | uidList:成员id集合 | | getGroupMembersInfo | Get group member information |
| getGroupMemberList | 获取组成员 | | | getGroupMemberList | Get group members |
| getJoinedGroupList | 获取已加入的群组 | | | getJoinedGroupList | Get joined groups |
| isJoinedGroup | 判断是否已加入群组 | | | isJoinedGroup | Check you have joined the group |
| createGroup | 创建群 | groupInfo:组信息对象<br />list:组成员角色列表 | | createGroup | Create a group |
| setGroupInfo | 设置群资料 | | | setGroupInfo | Set group information |
| getGroupsInfo | 获取群信息 | | | getGroupsInfo | Get group information |
| joinGroup | 加入群 | | | joinGroup | Join group |
| quitGroup | 退出群 | | | quitGroup | Exit group |
| transferGroupOwner | 群权限转移 | | | transferGroupOwner | Group permission transfer |
| getGroupApplicationList | 获取群申请列表 | | | getGroupApplicationList | Get group application list |
| acceptGroupApplication | 接受群邀请 | | | acceptGroupApplication | Accept group invitation |
| refuseGroupApplication | 拒绝群邀请 | | | refuseGroupApplication | Decline group invitation |

Loading…
Cancel
Save