You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
308 lines
13 KiB
308 lines
13 KiB
# flutter_openim_sdk
|
|
[](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)
|
|
|
|
A flutter im plugin for android and ios.
|
|
|
|
#### [中文文档](README.zh-cn.md)
|
|
|
|
#### [demo](https://github.com/OpenIMSDK/Open-IM-Flutter-Demo.git) | [widget](https://github.com/hrxiang/flutter_openim_widget.git)
|
|
|
|

|
|
|
|
|
|
|
|
## Getting Started
|
|
|
|
|
|
#### 1,Add dependency in yaml
|
|
|
|
flutter_openim_sdk: latest
|
|
|
|
#### 2,Import package
|
|
|
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
|
|
|
|
#### 3, Init config
|
|
|
|
```
|
|
// Initialize SDK
|
|
OpenIM.iMManager
|
|
..initSDK(
|
|
platform: Platform.isAndroid ? IMPlatform.android : IMPlatform.ios,
|
|
apiAddr: '',
|
|
wsAddr: '',
|
|
dataDir: '',
|
|
listener: OnConnectListener(),
|
|
)
|
|
// Set up current user info changed listener
|
|
..userManager.setUserListener(OnUserListener())
|
|
// Add message listener (remove when not in use)
|
|
..messageManager.setAdvancedMsgListener(OnAdvancedMsgListener())
|
|
|
|
// Set up message sending progress listener
|
|
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener())
|
|
|
|
// Set up friend relationship listener
|
|
..friendshipManager.setFriendshipListener(OnFriendshipListener())
|
|
|
|
// Set up conversation listener
|
|
..conversationManager.setConversationListener(OnConversationListener())
|
|
|
|
// Set up group listener
|
|
..groupManager.setGroupListener(OnGroupListener(
|
|
));
|
|
```
|
|
|
|
#### 4, Log in
|
|
|
|
```
|
|
OpenIM.iMManager.login(uid: uid, token: token).then((value){
|
|
// login success
|
|
});
|
|
```
|
|
|
|
#### 5,Get a list of conversations
|
|
|
|
```
|
|
OpenIM.iMManager.conversationManager.getAllConversationList().then((list) {
|
|
});
|
|
```
|
|
|
|
#### 6,Get friend list
|
|
|
|
```
|
|
OpenIM.iMManager.friendshipManager.getFriendList().then((list) {
|
|
});
|
|
```
|
|
|
|
#### 7,Get chat history
|
|
|
|
```
|
|
// If userID is not null and groupID is null, get a single chat message list
|
|
// If the userID is null and the groupID is not null, get a group chat message list
|
|
OpenIM.iMManager.messageManager.getHistoryMessageList(
|
|
userID: uid,//User id
|
|
startMsg: startMsg,//Last message, take chatMsgList[0]
|
|
groupID: gid,//Group id
|
|
count: count,//Page Size
|
|
)
|
|
.then((list){});
|
|
|
|
```
|
|
|
|
#### 8,Send a message
|
|
|
|
```
|
|
// Create message
|
|
var message = await OpenIM.iMManager.messageManager.createTextMessage(
|
|
text: 'I am the content of the message',
|
|
);
|
|
// Send
|
|
OpenIM.iMManager.messageManager.sendMessage(
|
|
message: message,
|
|
offlinePushInfo: offlinePushInfo,
|
|
userID: uid, // Single chat value is not null
|
|
groupID: gid, // The group chat value is not null
|
|
).then((v) {
|
|
}).catchError((e){
|
|
});
|
|
```
|
|
|
|
#### 9,Sign out
|
|
|
|
```
|
|
OpenIM.iMManager.logout();
|
|
```
|
|
|
|
#### OpenIM.iMManager
|
|
|
|
| method | description |
|
|
| ---------------- | ------------------------ |
|
|
| initSDK | Initialize SDK |
|
|
| unInitSDK | |
|
|
| login | Log in |
|
|
| logout | Sign out |
|
|
| getLoginStatus | Login status |
|
|
| getLoginUid | Current user id |
|
|
| getLoginUserInfo | Current user information |
|
|
|
|
#### OpenIM.userManager
|
|
|
|
| method | description |
|
|
| --------------- | --------------------------------------------------- |
|
|
| setSelfInfo | Modify current user information |
|
|
| getUsersInfo | Get user information by user id |
|
|
| getSelfUserInfo | Get the information of the currently logged in user |
|
|
|
|
#### OpenIM.iMManager.conversationManager
|
|
|
|
| method | description |
|
|
| ------------------------------ | ------------------------------------------------------------ |
|
|
| setConversationListener | Listener |
|
|
| getAllConversationList | Get all conversation |
|
|
| getConversationListSplit | Paging to get conversation |
|
|
| getOneConversation | Get a conversation, if it doesn't exist it will be created automatically |
|
|
| getMultipleConversation | Get conversation list by id list |
|
|
| deleteConversation | Delete conversation by id |
|
|
| setConversationDraft | Set conversation draftText |
|
|
| pinConversation | Pinned conversation |
|
|
| markGroupMessageHasRead | Mark group chat messages as read |
|
|
| getTotalUnreadMsgCount | Get the total number of unread messages |
|
|
| getConversationIDBySessionType | Query conversation id |
|
|
| setConversationRecvMessageOpt | Setup message do not disturb |
|
|
| getConversationRecvMessageOpt | Message do not disturb status |
|
|
|
|
#### OpenIM.iMManager.friendshipManager
|
|
|
|
| method | description |
|
|
| ---------------------------- | ------------------------------------------------------------ |
|
|
| setFriendshipListener | Set up a friend relationship listener |
|
|
| getFriendsInfo | Get friend info by user id |
|
|
| addFriend | Send an friend application |
|
|
| getRecvFriendApplicationList | Get someone's request to add me as a friend |
|
|
| getSendFriendApplicationList | Get friend requests from me |
|
|
| getFriendList | Find all friends including those who have been added to the blacklist |
|
|
| setFriendRemark | Modify friend remark name |
|
|
| addBlacklist | Add friends to blacklist |
|
|
| getBlacklist | Get blacklist list |
|
|
| removeBlacklist | Remove from blacklist |
|
|
| checkFriend | Determine if there is a friendship by userId |
|
|
| deleteFriend | Dissolve friendship from friend list |
|
|
| acceptFriendApplication | Accept application of be friend |
|
|
| refuseFriendApplication | Refuse application of be friend |
|
|
|
|
#### OpenIM.iMManager.messageManager
|
|
|
|
| method | description |
|
|
| --------------------------------- | ------------------------------------------ |
|
|
| setAdvancedMsgListener | Set a message listener |
|
|
| setMsgSendProgressListener | Set up message sending progress monitoring |
|
|
| sendMessage | Send a message to user or to group |
|
|
| getHistoryMessageList | Find all history message |
|
|
| revokeMessage | Revoke the sent information |
|
|
| deleteMessageFromLocalStorage | Delete message |
|
|
| insertSingleMessageToLocalStorage | Insert message |
|
|
| markC2CMessageAsRead | Mark c2c message as read |
|
|
| typingStatusUpdate | Typing prompt |
|
|
| createTextMessage | Create text message |
|
|
| createTextAtMessage | Create @ message |
|
|
| createImageMessage | Create picture message |
|
|
| createImageMessageFromFullPath | Create picture message |
|
|
| createSoundMessage | Create voice message |
|
|
| createSoundMessageFromFullPath | Create voice message |
|
|
| createVideoMessage | Create video message |
|
|
| createVideoMessageFromFullPath | Create video message |
|
|
| createFileMessage | Create file message |
|
|
| createFileMessageFromFullPath | Create file message |
|
|
| createMergerMessage | Create merge message |
|
|
| createForwardMessage | Create a forwarded message |
|
|
| createLocationMessage | Create location message |
|
|
| createCustomMessage | Create custom message |
|
|
| createQuoteMessage | Create quote message |
|
|
| createCardMessage | Create card message |
|
|
| clearC2CHistoryMessage | Clear all c2c history message |
|
|
| clearGroupHistoryMessage | Clear all group history |
|
|
|
|
#### OpenIM.iMManager.groupManager
|
|
|
|
| method | description |
|
|
| --------------------------- | ------------------------------------------------------------ |
|
|
| setGroupListener | Set up group relationship monitoring |
|
|
| inviteUserToGroup | Invite friends into the group |
|
|
| kickGroupMember | Remove member from group |
|
|
| getGroupMembersInfo | Get group member information |
|
|
| getGroupMemberList | Get the list of group members |
|
|
| getJoinedGroupList | Find all groups you have joined |
|
|
| isJoinedGroup | Check if you are a member of the group |
|
|
| createGroup | Create a group |
|
|
| setGroupInfo | Edit group information |
|
|
| getGroupsInfo | Find group information by group id |
|
|
| joinGroup | Apply to join the group |
|
|
| quitGroup | Leave group |
|
|
| transferGroupOwner | Give group permissions to others |
|
|
| getRecvGroupApplicationList | As the group owner or administrator, get the list of received group members' applications to join the group. |
|
|
| getSendGroupApplicationList | Get the record of the group membership application issued by yourself |
|
|
| acceptGroupApplication | Accept group application |
|
|
| refuseGroupApplication | Refuse group application |
|
|
|
|
#### Other
|
|
|
|
Message type
|
|
|
|
```
|
|
static const text = 101;
|
|
static const picture = 102;
|
|
static const voice = 103;
|
|
static const video = 104;
|
|
static const file = 105;
|
|
static const at_text = 106;
|
|
static const merger = 107;
|
|
static const card = 108;
|
|
static const location = 109;
|
|
static const custom = 110;
|
|
static const revoke = 111;
|
|
static const has_read_receipt = 112;
|
|
static const typing = 113;
|
|
static const quote = 114;
|
|
|
|
///
|
|
static const accept_friend = 201;
|
|
static const add_friend = 202;
|
|
static const refuse_friend_application = 203;
|
|
static const set_self_info = 204;
|
|
static const revoke_message = 205;
|
|
static const c2c_message_as_read = 206;
|
|
|
|
static const kick_online = 303;
|
|
|
|
|
|
static const transfer_group_owner = 501;
|
|
static const create_group = 502;
|
|
// static const create_group = 503;
|
|
static const join_group = 504;
|
|
static const quit_group = 505;
|
|
static const set_group_info = 506;
|
|
static const accept_group_application = 507;
|
|
static const refuse_group_application = 508;
|
|
static const kick_group_member = 509;
|
|
static const invited_user_to_group = 510;
|
|
```
|
|
|
|
Platform
|
|
|
|
```
|
|
static const ios = 1;
|
|
static const android = 2;
|
|
static const windows = 3;
|
|
static const xos = 4;
|
|
static const web = 5;
|
|
static const mini_web = 6;
|
|
static const linux = 7;
|
|
```
|
|
|
|
Group member role level
|
|
|
|
```
|
|
static const member = 1;
|
|
static const owner = 2;
|
|
static const admin = 3;
|
|
```
|
|
|
|
Conversation type
|
|
|
|
```
|
|
static const single = 1;
|
|
static const group = 2;
|
|
```
|
|
|
|
Message status
|
|
|
|
```
|
|
static const sending = 1;
|
|
static const succeeded = 2;
|
|
static const failed = 3;
|
|
static const deleted = 4;
|
|
```
|
|
|
|
|