|
|
|
@ -21,51 +21,155 @@ A Flutter im plugin. |
|
|
|
|
|
|
|
|
|
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart'; |
|
|
|
|
|
|
|
|
|
### Usage |
|
|
|
|
|
|
|
|
|
#### 初始化 |
|
|
|
|
|
|
|
|
|
var msgListener = AdvancedMsgListener(); |
|
|
|
|
|
|
|
|
|
/// 初始化SDK |
|
|
|
|
OpenIM.iMManager |
|
|
|
|
..initSDK( |
|
|
|
|
platform: 0, |
|
|
|
|
ipApi: 'Api接口地址', |
|
|
|
|
ipWs: 'WebSocket地址', |
|
|
|
|
dbPath: '数据库目录', |
|
|
|
|
listener: new InitSDKListener(), |
|
|
|
|
#### 3, 初始化配置 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
/// 初始化SDK |
|
|
|
|
OpenIM.iMManager |
|
|
|
|
..initSDK( |
|
|
|
|
platform: IMPlatform.ios, |
|
|
|
|
ipApi: 'Api接口地址', |
|
|
|
|
ipWs: 'WebSocket地址', |
|
|
|
|
dbPath: '数据库目录', |
|
|
|
|
listener: InitSDKListener(), |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
/// 添加消息监听(不使用的时候remove) |
|
|
|
|
..messageManager.addAdvancedMsgListener(AdvancedMsgListener()) |
|
|
|
|
|
|
|
|
|
/// 设置消息发送进度监听 |
|
|
|
|
..messageManager.setMsgSendProgressListener(MsgSendProgressListener()) |
|
|
|
|
|
|
|
|
|
/// 设置好友关系监听 |
|
|
|
|
..friendshipManager.setFriendshipListener(FriendshipListener()) |
|
|
|
|
|
|
|
|
|
/// 设置会话监听 |
|
|
|
|
..conversationManager.setConversationListener(ConversationListener()) |
|
|
|
|
|
|
|
|
|
/// 设置群监听 |
|
|
|
|
..groupManager.setGroupListener(GroupListener()); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 4, 登录 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
OpenIM.iMManager.login(uid: uid, token: token).then((value){ |
|
|
|
|
///登录成功 |
|
|
|
|
}); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 5,获取会话列表 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
OpenIM.iMManager.conversationManager.getAllConversationList().then((list) { |
|
|
|
|
/// 返回会话列表list |
|
|
|
|
}); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 6,获取联系人列表 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
OpenIM.iMManager.friendshipManager.getFriendList().then((list) { |
|
|
|
|
/// 返回好友列表list |
|
|
|
|
}); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 7,获取聊天记录 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
List<Message> chatMsgList = List.empty(growable: true); |
|
|
|
|
|
|
|
|
|
/// 自定义消息监听 |
|
|
|
|
class CustomAdvancedMsgListener extends AdvancedMsgListener { |
|
|
|
|
final ValueChanged<Message>? onNewMessage; |
|
|
|
|
|
|
|
|
|
CustomAdvancedMsgListener({ |
|
|
|
|
this.onNewMessage, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
@override |
|
|
|
|
void onRecvNewMessage(Message msg) { |
|
|
|
|
if (null != onNewMessage) onNewMessage!(msg); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
- 历史消息 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
/// 如果userID不为null,groupID为null,获取的是单聊消息 |
|
|
|
|
/// 如果userID为null,groupID不为null,获取的是群聊消息 |
|
|
|
|
OpenIM.iMManager.messageManager.getHistoryMessageList( |
|
|
|
|
userID: uid,//用户id |
|
|
|
|
startMsg: startMsg,//上一条消息,取chatMsgList[0] |
|
|
|
|
groupID: gid,//群id |
|
|
|
|
count: 12,//分页大小 |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
/// 添加消息监听(移除消息监听: OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener)) |
|
|
|
|
..messageManager.addAdvancedMsgListener(msgListener) |
|
|
|
|
|
|
|
|
|
/// 设置发送消息进度监听 |
|
|
|
|
..messageManager.setMsgSendProgressListener(MsgSendProgressListener()) |
|
|
|
|
|
|
|
|
|
/// 设置好友关系监听 |
|
|
|
|
..friendshipManager.setFriendshipListener(FriendshipListener()) |
|
|
|
|
|
|
|
|
|
/// 设置会话监听 |
|
|
|
|
..conversationManager.setConversationListener(ConversationListener()) |
|
|
|
|
|
|
|
|
|
/// 设置群监听 |
|
|
|
|
..groupManager.setGroupListener(GroupListener()); |
|
|
|
|
.then((list) => chatMsgList.addAll(list)); |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
- 新消息 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
/// 创建消息监听 |
|
|
|
|
var msgListener = CustomAdvancedMsgListener(onNewMessage: (message) { |
|
|
|
|
if (message.sendID == uid || message.groupID == gid) { |
|
|
|
|
if (!chatMsgList.contains(message)) { |
|
|
|
|
chatMsgList.add(event.message); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
/// 添加消息监听 |
|
|
|
|
OpenIM.iMManager.messageManager.addAdvancedMsgListener(msgListener); |
|
|
|
|
|
|
|
|
|
/// 移除消息监听 |
|
|
|
|
// OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 8,发送消息 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
/// 创建消息 |
|
|
|
|
var message = await OpenIM.iMManager.messageManager.createTextMessage( |
|
|
|
|
text: '我是消息内容', |
|
|
|
|
); |
|
|
|
|
/// 发送 |
|
|
|
|
OpenIM.iMManager.messageManagersendMessage( |
|
|
|
|
message: message, |
|
|
|
|
onlineUserOnly: false, |
|
|
|
|
userID: uid, |
|
|
|
|
groupID: gid, |
|
|
|
|
).then((v) { |
|
|
|
|
/// 发送成功 |
|
|
|
|
}).catchError((e){ |
|
|
|
|
/// 发送失败 |
|
|
|
|
}); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
#### 9,登出 |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
OpenIM.iMManager.logout(); |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### OpenIM.iMManager |
|
|
|
|
|
|
|
|
|
| 方法 | 描述 | |
|
|
|
|
| ---------------- | ------------------------------------------------------- | |
|
|
|
|
| initSDK | 初始化sdk,platform:iOS-1,Android-0;listener初始监听 | |
|
|
|
|
| unInitSDK | | |
|
|
|
|
| login | 登录 | |
|
|
|
|
| logout | 登出 | |
|
|
|
|
| getLoginStatus | 登录状态 | |
|
|
|
|
| getLoginUid | 当前uid | |
|
|
|
|
| getLoginUserInfo | 当前用户信息 | |
|
|
|
|
| setSelfInfo | 修改资料 | |
|
|
|
|
| getUsersInfo | 根据uid获取用户资料 | |
|
|
|
|
| forceReConn | 强制重连 | |
|
|
|
|
| 方法 | 描述 | |
|
|
|
|
| ---------------- | ------------------- | |
|
|
|
|
| initSDK | 初始化sdk | |
|
|
|
|
| unInitSDK | | |
|
|
|
|
| login | 登录 | |
|
|
|
|
| logout | 登出 | |
|
|
|
|
| getLoginStatus | 登录状态 | |
|
|
|
|
| getLoginUid | 当前uid | |
|
|
|
|
| getLoginUserInfo | 当前用户信息 | |
|
|
|
|
| setSelfInfo | 修改资料 | |
|
|
|
|
| getUsersInfo | 根据uid获取用户资料 | |
|
|
|
|
| forceReConn | 强制重连 | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -150,4 +254,3 @@ A Flutter im plugin. |
|
|
|
|
| getGroupApplicationList | 获取群申请列表 | |
|
|
|
|
| acceptGroupApplication | 接受群邀请 | |
|
|
|
|
| refuseGroupApplication | 拒绝群邀请 | |
|
|
|
|
|
|
|
|
|