flutter_openim_sdk 1.0.8 flutter_openim_sdk: ^1.0.8 copied to clipboard
An instant messaging plug-in that supports Android and IOS. And the server is also all open source.
flutter_openim_sdk #
A flutter im plugin for android and ios.
demo #
flutter_openim_widget #
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: IMPlatform.ios,
ipApi: 'Api interface address',
ipWs: 'WebSocket address',
dbPath: 'Database directory',
listener: OnInitSDKListener(
connecting: () {},
connectFailed: (code, error) {},
connectSuccess: () {},
kickedOffline: () {},
userSigExpired: () {},
selfInfoUpdated: (user) {},
),
)
// Add message listener (remove when not in use)
..messageManager.addAdvancedMsgListener(OnAdvancedMsgListener(
recvMessageRevoked: (id) {},
recvC2CReadReceipt: (list) {},
recvNewMessage: (msg) {},
))
// Set up message sending progress listener
..messageManager.setMsgSendProgressListener(OnMsgSendProgressListener(
progressCallback: (id, progress) {},
))
// Set up friend relationship listener
..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(OnConversationListener(
conversationChanged: (list) {},
newConversation: (list) {},
totalUnreadMsgCountChanged: (count) {},
syncServerFailed: () {},
syncServerFinish: () {},
syncServerStart: () {},
))
// Set up group listener
..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, 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,
onlineUserOnly: false,
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 |
setSelfInfo | Modify current user information |
getUsersInfo | Get user information by user id |
enabledSDKLog | Setup sdk log |
OpenIM.iMManager.conversationManager
method | description |
---|---|
setConversationListener | Listener |
getAllConversationList | Get all conversation |
getSingleConversation | Get single conversation |
getMultipleConversation | Get multiple conversation |
deleteConversation | Delete conversation |
setConversationDraft | Set conversation draftText |
pinConversation | Top conversation |
markSingleMessageHasRead | Mark single chat messages as read |
markGroupMessageHasRead | Mark group chat messages as read |
getTotalUnreadMsgCount | Get the total number of unread messages |
getConversationID | Query conversation id |
setConversationRecvMessageOpt | Setup message do not disturb |
getConversationRecvMessageOpt | Message do not disturb status |
OpenIM.iMManager.friendshipManager
method | description |
---|---|
setFriendshipListener | Listener |
getFriendsInfo | Get friend information |
addFriend | Send an friend application |
getFriendApplicationList | Get all friend application, sent to you by others |
getFriendList | Find all friends including those who have been added to the blacklist |
setFriendInfo | Modify friend information, only comment can be modified |
addToBlackList | Add to blacklist |
getBlackList | Get blacklist list |
deleteFromBlackList | Remove from blacklist |
checkFriend | Check friendship |
deleteFromFriendList | Remove friend |
acceptFriendApplication | Accept friend application |
refuseFriendApplication | Reject friend application |
OpenIM.iMManager.messageManager
method | description |
---|---|
addAdvancedMsgListener | Add message listener |
setMsgSendProgressListener | Message sending progress listener |
sendMessage | Send a message |
getHistoryMessageList | Get history news |
revokeMessage | Revoke message |
deleteMessageFromLocalStorage | Delete message |
insertSingleMessageToLocalStorage | Insert message |
findMessages | Query the message by id |
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 message history |
clearGroupHistoryMessage | Clear all message history |
OpenIM.iMManager.groupManager
method | description |
---|---|
setGroupListener | Listener |
inviteUserToGroup | Invite into the group |
kickGroupMember | Remove group members |
getGroupMembersInfo | Get group member information |
getGroupMemberList | Get group members |
getJoinedGroupList | Get joined groups |
isJoinedGroup | Check you have joined the group |
createGroup | Create a group |
setGroupInfo | Edit group information |
getGroupsInfo | Get group information |
joinGroup | Join group |
quitGroup | Exit group |
transferGroupOwner | Group permission transfer |
getGroupApplicationList | Get group application list |
acceptGroupApplication | Accept group invitation |
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
static const member = 0;
static const owner = 1;
static const admin = 2;
Conversation type
static const single_chat = 1;
static const group_chat = 2;
Message status
static const sending = 1;
static const succeeded = 2;
static const failed = 3;
static const deleted = 4;