init
This commit is contained in:
parent
e3e46092d9
commit
6b534b2fb0
329
README.md
329
README.md
@ -1,85 +1,127 @@
|
|||||||
# flutter_openim_sdk
|
# flutter_openim_sdk
|
||||||
|
|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## [Download demo](https://github.com/OpenIMSDK/Open-IM-Flutter-Demo.git)
|
||||||
|
|
||||||
|
## [OpenIM-Flutter-Widget](https://github.com/hrxiang/OpenIM-Flutter-Widget.git)
|
||||||
|
|
||||||
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: OnInitSDKListener(
|
||||||
)
|
connecting: () {},
|
||||||
|
connectFailed: (code, error) {},
|
||||||
|
connectSuccess: () {},
|
||||||
|
kickedOffline: () {},
|
||||||
|
userSigExpired: () {},
|
||||||
|
selfInfoUpdated: (user) {},
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
// 添加消息监听(不使用的时候remove)
|
// Add message listener (remove when not in use)
|
||||||
..messageManager.addAdvancedMsgListener(AdvancedMsgListener())
|
..messageManager.addAdvancedMsgListener(OnAdvancedMsgListener(
|
||||||
|
recvMessageRevoked: (id) {},
|
||||||
|
recvC2CReadReceipt: (list) {},
|
||||||
|
recvNewMessage: (msg) {},
|
||||||
|
))
|
||||||
|
|
||||||
// 设置消息发送进度监听
|
// Set up message sending progress listener
|
||||||
..messageManager.setMsgSendProgressListener(MsgSendProgressListener())
|
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
|
||||||
|
progressCallback: (id, progress) {},
|
||||||
|
))
|
||||||
|
|
||||||
// 设置好友关系监听
|
// Set up friend relationship listener
|
||||||
..friendshipManager.setFriendshipListener(FriendshipListener())
|
..friendshipManager.setFriendshipListener(OnFriendshipListener(
|
||||||
|
blackListAdd: (u) {},
|
||||||
|
blackListDeleted: (u) {},
|
||||||
|
friendApplicationListAccept: (u) {},
|
||||||
|
friendApplicationListAdded: (u) {},
|
||||||
|
friendApplicationListDeleted: (u) {},
|
||||||
|
friendApplicationListReject: (u) {},
|
||||||
|
friendInfoChanged: (u) {},
|
||||||
|
friendListAdded: (u) {},
|
||||||
|
friendListDeleted: (u) {},
|
||||||
|
))
|
||||||
|
|
||||||
// 设置会话监听
|
// Set up conversation listener
|
||||||
..conversationManager.setConversationListener(ConversationListener())
|
..conversationManager.setConversationListener(OnConversationListener(
|
||||||
|
conversationChanged: (list) {},
|
||||||
|
newConversation: (list) {},
|
||||||
|
totalUnreadMsgCountChanged: (count) {},
|
||||||
|
syncServerFailed: () {},
|
||||||
|
syncServerFinish: () {},
|
||||||
|
syncServerStart: () {},
|
||||||
|
))
|
||||||
|
|
||||||
// 设置群监听
|
// Set up group listener
|
||||||
..groupManager.setGroupListener(GroupListener());
|
..groupManager.setGroupListener(OnGroupListener(
|
||||||
|
applicationProcessed: (groupId, opUser, agreeOrReject, opReason) {},
|
||||||
|
groupCreated: (groupId) {},
|
||||||
|
groupInfoChanged: (groupId, info) {},
|
||||||
|
memberEnter: (groupId, list) {},
|
||||||
|
memberInvited: (groupId, opUser, list) {},
|
||||||
|
memberKicked: (groupId, opUser, list) {},
|
||||||
|
memberLeave: (groupId, info) {},
|
||||||
|
receiveJoinApplication: (groupId, info, opReason) {},
|
||||||
|
));
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 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 +136,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,99 +207,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 |
|
||||||
| createTextMessage | 创建文本消息 | text:输入的内容 |
|
| <font color=red>markC2CMessageAsRead</font> | Mark c2c message as read |
|
||||||
| createTextAtMessage | 创建at消息 | atUidList:被@的用户id集合 |
|
| <font color=red>typingStatusUpdate</font> | Typing prompt |
|
||||||
| createImageMessage | 创建图片消息 | imagePath:路径 |
|
| createTextMessage | Create text message |
|
||||||
| createSoundMessage | 创建语音消息 | soundPath:路径<br />duration:时长 |
|
| createTextAtMessage | Create @ message |
|
||||||
| createVideoMessage | 创建视频消息 | videoPath:路径<br />videoType:视频类型<br />duration:时长<br />snapshotPath:缩略图 |
|
| createImageMessage | Create picture message |
|
||||||
| createFileMessage | 创建文件消息 | filePath:路径<br />fileName:文件名 |
|
| createSoundMessage | Create voice message |
|
||||||
| createMergerMessage | 创建合并消息 | |
|
| createVideoMessage | Create video message |
|
||||||
| createForwardMessage | 创建转发消息 | |
|
| createFileMessage | Create file message |
|
||||||
| getTotalUnreadMsgCount | 获取消息未读数 | |
|
| createMergerMessage | Create merge message |
|
||||||
|
| createForwardMessage | Create a forwarded message |
|
||||||
|
| 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 |
|
||||||
|
@ -3,7 +3,7 @@ description: Demonstrates how to use the flutter_openim_sdk plugin.
|
|||||||
|
|
||||||
# The following line prevents the package from being accidentally published to
|
# The following line prevents the package from being accidentally published to
|
||||||
# pub.dev using `pub publish`. This is preferred for private packages.
|
# pub.dev using `pub publish`. This is preferred for private packages.
|
||||||
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
#publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ">=2.12.0 <3.0.0"
|
sdk: ">=2.12.0 <3.0.0"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user