2022-02-19 14:03:45 +08:00

309 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# flutter_openim_sdk
[![pub package](https://img.shields.io/pub/v/flutter_openim_sdk.svg)](https://pub.flutter-io.cn/packages/flutter_openim_sdk)
[![Generic badge](https://img.shields.io/badge/platform-android%20|%20ios%20-blue.svg)](https://pub.dev/packages/flutter_openim_sdk)
[![GitHub license](https://img.shields.io/github/license/OpenIMSDK/Open-IM-SDK-Flutter)](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)
![Android](https://www.pgyer.com/app/qrcode/OpenIM)
## Getting Started
#### 1Add dependency in yaml
flutter_openim_sdk: latest
#### 2Import 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
});
```
#### 5Get a list of conversations
```
OpenIM.iMManager.conversationManager.getAllConversationList().then((list) {
});
```
#### 6Get friend list
```
OpenIM.iMManager.friendshipManager.getFriendList().then((list) {
});
```
#### 7Get 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){});
```
#### 8Send 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){
});
```
#### 9Sign 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;
```