上云无忧 > 文档中心 > 环信IM即时通讯使用教程(Flutter) - SDK 集成概述
IM即时通讯
环信IM即时通讯使用教程(Flutter) - SDK 集成概述

文档简介:
介绍 flutter 集成相关内容。 前提条件: 开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 环信即时通讯云管理后台 (opens new window)。 集成环境: 具体见 开发环境要求。
*此产品及展示信息均由环信官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

介绍 flutter 集成相关内容。

前提条件

开始前,请注册有效的环信即时通讯 IM 开发者账号和取得 App key,见 环信即时通讯云管理后台 (opens new window)

集成环境

具体见 开发环境要求。

SDK 初始化

初始化是使用 SDK 必要的、执行在所有接口方法调用之前的步骤。 如果进行多次初始化操作,只有第一次初始化以及相关的参数生效。

初始化示例代码:

await EMClient.getInstance.init(EMOptions( appKey: "<#your app key#>", )); // 通知 SDK UI 已准备好。
该方法执行后才会收到 `EMChatRoomEventHandler`、`EMContactEventHandler` 和 `EMGroupEventHandler` 
回调。 await EMClient.getInstance.startCallback(); 
 

注册用户

可以使用如下代码创建账号:

try { await EMClient.getInstance.createAccount(userId, password); } on EMError catch (e) {} 
 

注意

  • 以上注册模式为在客户端注册,主要用于测试,简单方便,但不推荐在正式环境中使用;
  • 正式环境应调用 REST API 接口注册用户。

用户登录

目前登录服务器支持手动和自动登录。手动登录有两种方式:

  • 用户 ID + 密码
  • 用户 ID + token

手动登录时传入的用户 ID 必须为 String 类型,支持的字符集详见用户注册的 RESTful 接口。

调用登录接口后,收到 onConnected 回调表明 SDK 与环信服务器连接成功。

手动登录

用户 ID + 密码 登录是传统的登录方式。用户名和密码都是你的终端用户自行决定,密码需要符合密码规则要求。

try { await EMClient.getInstance.login(userId, password); } on EMError catch (e) {} 
 

用户 ID + token 是更加安全的登录方式。token 可以通过调用 REST API 获取。 详见 环信用户 token 的获取。

注意

使用 token 登录时需要处理 token 过期的问题,比如在每次登录时更新 token 等机制。

try { await EMClient.getInstance.login(userId, token, false); } on EMError catch (e) {} 
 

自动登录

在初始化的时候,可以设置是否自动登录。如果设置为自动登录,则登录成功之后,后续启动初始化的时候会自动登录。

退出登录

try { await EMClient.getInstance.logout(true); } on EMError catch (e) {} 
 

连接状态相关

你可以通过注册连接监听来确认连接状态。

// 注册连接状态监听 EMClient.getInstance.addConnectionEventHandler( "UNIQUE_HANDLER_ID",
 EMConnectionEventHandler( // sdk 连接成功; onConnected: () => {}, // 由于网络问题导致的断开,
sdk会尝试自动重连,连接成功后会回调 "onConnected"; onDisconnected: () => {}, // 用户 token 鉴权失败;
 onUserAuthenticationFailed: () => {}, // 由于密码变更被踢下线; onUserDidChangePassword: () => {},
 // 用户被连接被服务器禁止; onUserDidForbidByServer: () => {}, // 用户已经在其他设备登录;
 onUserDidLoginFromOtherDevice: () => {}, // 用户登录设备超出数量限制; onUserDidLoginTooManyDevice:
 () => {}, // 用户从服务器删除; onUserDidRemoveFromServer: () => {}, // 由于其他设备登录被踢下线;
 onUserKickedByOtherDevice: () => {}, // Token 过期; onTokenDidExpire: () => {}, // Token 即将过期,
需要调用 renewToken; onTokenWillExpire: () => {}, ), ); // 解注册连接状态监听 EMClient.getInstance.
removeConnectionEventHandler( "UNIQUE_HANDLER_ID", );

相似文档
  • 4.0.0+4 修复: 安卓构建视频消息崩溃的问题。 4.0.0+3 修复: 安卓 onRemovedFromChatRoom 不回调。 4.0.0+2 修复: 修复List。 修复图片消息和视频消息转换失败;
  • 功能描述: 环信即时通讯 IM 支持多种消息类型,开发者可以方便地对本地会话、消息进行管理,可以从服务端获取历史会话和消息,提供送达回执和已读回执能力。
  • 登录即时通讯服务后,用户可以在单聊、群聊、聊天室中发送如下类型的消息: 文字消息,包含超链接和表情消息。 附件消息,包含图片、语音、视频及文件消息。 位置消息。 透传消息。 自定义消息。
  • 本文介绍环信即时通讯 IM Flutter SDK 如何管理本地消息数据。 除了发送和接收消息外,环信即时通讯 IM Flutter SDK 还支持以会话为单位对本地的消息数据进行管理,如获取与管理未读消息、搜索和删除历史消息等。其中,会话是一个单聊、群聊或者聊天室所有消息的集合。用户需在会话中发送消息以及查看或清空历史消息。
  • 环信即时通讯 IM 提供消息漫游功能,即将用户的所有会话的历史消息保存在消息服务器,用户在任何一个终端设备上都能获取到历史信息,使用户在多个设备切换使用的情况下也能保持一致的会话场景。本文介绍用户如何从消息服务器获取会话和消息。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部