Merge remote-tracking branch 'origin/main' into android

main
hrxiang 4 years ago
commit 9f81d2227e
  1. 142
      README.md

@ -1,6 +1,6 @@
# flutter_openim_sdk
A Flutter im plugin.
A flutter IM plugin for android and ios.
##### [Android体验包(密码:123456)](https://www.pgyer.com/openim)
@ -21,42 +21,147 @@ A Flutter im plugin.
import 'package:flutter_openim_sdk/flutter_openim_sdk.dart';
### Usage
#### 3, 初始化配置
#### 初始化
var msgListener = AdvancedMsgListener();
/// 初始化SDK
```
// 初始化SDK
OpenIM.iMManager
..initSDK(
platform: 0,
platform: IMPlatform.ios,
ipApi: 'Api接口地址',
ipWs: 'WebSocket地址',
dbPath: '数据库目录',
listener: new InitSDKListener(),
listener: InitSDKListener(),
)
/// 添加消息监听(移除消息监听: OpenIM.iMManager.messageManager.removeAdvancedMsgListener(msgListener))
..messageManager.addAdvancedMsgListener(msgListener)
// 添加消息监听(不使用的时候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,//分页大小
)
.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.messageManager.sendMessage(
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初始监听 |
| ---------------- | ------------------- |
| initSDK | 初始化sdk |
| unInitSDK | |
| login | 登录 |
| logout | 登出 |
@ -146,8 +251,7 @@ A Flutter im plugin.
| getGroupsInfo | 获取群信息 |
| joinGroup | 加入群 |
| quitGroup | 退出群 |
| transferGroupOwner | 群权限交接 |
| transferGroupOwner | 群权限转移 |
| getGroupApplicationList | 获取群申请列表 |
| acceptGroupApplication | 接受群邀请 |
| refuseGroupApplication | 拒绝群邀请 |

Loading…
Cancel
Save