在环信官方下载demo,具体环境配置可根据文档调试
本地flutter实现
添加依赖:
im_flutter_sdk:
git:
url: https://github.com/easemob/im_flutter_sdk.git
ref: dev
在main.dart中添加注册环信
注意添加证书后才可以im消息推送
class _MyAppState extends State<MyApp> implements EMConnectionListener {
@override
void initState() {
//TODO: init sdk;
EMOptions options = new EMOptions(appKey: "1184170826115380#hximyin");
// EMPushConfig config = new EMPushConfig();
// config.enableAPNS('证书名称');
// options.setPushConfig(config);
EMClient.getInstance().init(options);
EMClient.getInstance().setDebugMode(true);
EMClient.getInstance().addConnectionListener(this);
super.initState();
}.....}
接下来就是环信的通讯方法
->登录(传入用户名密码)
static void login(String username, String password) {
print(username + ':' + password);
/// 账号密码登录[id]/[password].
/// 如果登录成功,请调用[onSuccess],如果出现错误,请调用[onError]。
EMClient.getInstance().login(username, password, onSuccess: (username) {
print('登录成功 --- $username');
}, onError: (code, desc) {
print('登录错误 --- $desc');
});
}
->退出
static void logOut() {
EMClient.getInstance().logout(true, onSuccess: () {
print('退出登录成功 --- ');
}, onError: (int code, String desc) {
print('退出登录失败 --- $desc');
});
}
->消息发送(文字,语音,图片,视频),
EMMessageType.TXT 设置发送消息类型
EMTextMessageBody 设置发送消息body,根据类型变换
文字,语音,图片,视频根据类型不同设置不同Type,body就好
这里就不一一赘述,以文字发送为例
static void sendText<T>({
String text,
String nameid,
Function(EMMessage) onSuccess,
Function(String error) onError,
}) async {
EMMessage message = EMMessage.createSendMessage(EMMessageType.TXT);
message.to = nameid; //对方id
message.chatType = fromChatType(0); //聊天类型
EMTextMessageBody body = EMTextMessageBody(text);
message.body = body;
print('-----------MsgId---------->' + message.msgId);
EMClient.getInstance().chatManager().sendMessage(message, onSuccess: () {
onSuccess(message);
print('-----------MsgId---------->' + message.msgId);
print('-----------MessageStatus---------->' + message.status.toString());
});
}
以上就是一个简单的集成环信通信,至于存储可以使用环信提供的DB,为了灵活我是自己写了一套Sql去存储聊天记录,好友列表,聊天列表等信息,这样只需一套本地逻辑就可以集成任何通讯协议。
下期提供群聊,音视频通话,以及demo,欢迎评论点赞
有需要(完整版)移动端即使通讯的老板 欢迎下方留言
网友评论