文章目录
🎈 环信IM SDK🔸 简介🔸 接入流程🎈 注册与登录功能实现🔸 SDK初始化🔸 注册接口🔸 登录接口🎈 环信IM SDK
🔸 简介
环信IM SDK可以帮助用户快速开发
IM
相关的应用,被称业界最全SDK矩阵,支持Android、iOS、macOS、Windows、Linux、Web、Flutter、Unity
、Electron、React Native、Uni-App、ApiCloud等12大SDK,提供了泛娱乐社交、教育行业、智能硬件、社交电商、游戏娱乐等行业解决方案,核心功能包括用户管理
、单聊
、群聊
等聊天模型、短信服务等等。官网地址:环信
本文介绍如何接入环信IM Unity SDK来实现用户的登录
与注册
功能。
🔸 接入流程
登录环信即时通讯云控制台
,没有账号的话就先注册一下 创建项目应用 查看应用详情,获取AppKey
下载Unity SDK
并导入到项目中🎈 注册与登录功能实现
🔸 SDK初始化
在调用环信IM SDK中的注册与登录接口前,需要先进行初始化
,如下所示,其中appkey在控制台应用详情中获取:
// 设置 AppkeyOptions options = new Options(appKey: "easemob-demo#easeim");// 初始化 sdkSDKClient.Instance.InitWithOptions(options);
🔸 注册接口
SDKClient.Instance.CreateAccount("username", "password", new CallBack(onSuccess: () => {Debug.Log("执行成功");},onError: (code, desc) => {Debug.Log($"错误码 -- {code}");Debug.Log($"错误描述 -- {desc}");}));
username
:用户名password
:密码handle
:回调函数onSuccess
:注册成功事件onError
:注册失败事件code
:错误码desc
:错误描述
代码示例:
using UnityEngine;using UnityEngine.UI;using ChatSDK;using SK.Framework;namespace Metaverse{/// <summary>/// 登录视图/// </summary>public class LoginView : UIView{//用户名输入框[SerializeField] private InputField usernameInput;//密码输入框[SerializeField] private InputField passwordInput;//注册按钮点击事件public void OnSignUpButtonClick(){if (string.IsNullOrEmpty(usernameInput.text)){Load<PopupView>(new PopupData("提示", "请输入用户名"));return;}if (string.IsNullOrEmpty(passwordInput.text)){Load<PopupView>(new PopupData("提示", "请输入密码"));return;}if (usernameInput.text.Length < 6 || passwordInput.text.Length < 6){Load<PopupView>(new PopupData("提示", "用户名或密码长度不小于6"));return;}//注册SDKClient.Instance.CreateAccount(username: usernameInput.text, password: passwordInput.text,handle: new CallBack(onSuccess: () =>{Log.Info("注册成功");Load<PopupView>(new PopupData("提示", "注册成功"));//清空输入框usernameInput.text = string.Empty;passwordInput.text = string.Empty;},onError: (code, desc) =>{Log.Info("错误码:{0}", code);Log.Info("错误描述:{0}", desc);Load<PopupView>(new PopupData("错误", desc));}));}}}
🔸 登录接口
SDKClient.Instance.Login("username", "pwdOrToken", handle: new CallBack(onSuccess: () => {Debug.Log("执行成功");},onError: (code, desc) =>{Debug.Log($"错误码 -- {code}");Debug.Log($"错误描述 -- {desc}");}));}
username
:用户名pwdOrToken
:密码或tokenhandle
:回调函数onSuccess
:登录成功事件onError
:登录失败事件code
:错误码desc
:错误描述
代码示例:
using UnityEngine;using UnityEngine.UI;using ChatSDK;using SK.Framework;namespace Metaverse{/// <summary>/// 登录视图/// </summary>public class LoginView : UIView{//用户名输入框[SerializeField] private InputField usernameInput;//密码输入框[SerializeField] private InputField passwordInput;//登录按钮点击事件public void OnSignInButtonClick(){if (string.IsNullOrEmpty(usernameInput.text)){Load<PopupView>(new PopupData("提示", "请输入用户名"));return;}if (string.IsNullOrEmpty(passwordInput.text)){Load<PopupView>(new PopupData("提示", "请输入密码"));return;}if (usernameInput.text.Length < 6 || passwordInput.text.Length < 6){Load<PopupView>(new PopupData("提示", "用户名或密码长度不小于6"));return;}//登录SDKClient.Instance.Login(username: usernameInput.text, pwdOrToken: passwordInput.text,handle: new CallBack(onSuccess: () =>{Log.Info("登录成功");//切换到大厅流程StateMachine.Get(StateMachineName.GameProcedure).Switch(typeof(ProcedureHall).Name);},onError: (code, desc) =>{Log.Info("错误码:{0}", code);Log.Info("错误描述:{0}", desc);Load<PopupView>(new PopupData("错误", desc));}));}}}
在控制台中进行用户管理
: