初始化
更新时间: 2023/07/17 10:57:26
初始化SDK
在使用SDK提供的功能之前 必须 调用 NIM.ClientAPI.Init
函数进行初始化,函数声明如下:
csharppublic static bool Init(string appDataDir, string appInstallDir = "", NimUtility.NimConfig config = null)
- appDataDir: 用户数据缓存目录, 必须具有读写权限,SDK数据都存储在这个目录中
- appInstallDir: 程序安装目录,暂时未使用
- config: SDK配置,通过设置这个参数可以自定义sdk的一些行为,不需要修改默认行为保持
null
即可
函数执行成功且返回true
才能执行登录等操作。
数据缓存目录
数据缓存目录可以使用单独目录名或者完整路径,SDK会自动生成目录。使用目录名在Windows下最终目录位于当前用户C:\Users\XXX\AppData\Local目录中,Android和iOS平台推荐使用完整路径,方便查看数据。
Unity demo AppData 目录设置:
csharppublic static string AppDataPath
{
get
{
if (string.IsNullOrEmpty(_appDataPath))
{
_appDataPath = Application.persistentDataPath + "/NimUnityDemo";
Debug.Log("AppDataPath:" + _appDataPath);
}
return _appDataPath;
}
}
- appInstallDir 程序安装目录,暂时未使用
- config sdk配置,通过设置这个参数可以自定义sdk的一些行为,不需要修改默认行为保持
null
即可
NimConfig 参数说明
SDK通用配置项
SdkCommonSetting
类包含SDK通用配置项,如下所示:
参数 | 说明 |
---|---|
DataBaseEncryptKey | 数据库秘钥,加密用户本地缓存数据,目前只支持最多32个字符的加密密钥!建议使用32个字符 |
PredownloadAttachmentThumbnail | 是否需要预下载附件缩略图,默认为true |
PreloadImageQuality | 预下载图片质量,范围:0-100 |
PreloadImageResize | 预下载图片基于长宽做内缩略,选填,比如宽100高50,则赋值为100x50,中间为字母小写x |
LogLevel | 设置SDK log级别,级别越高log越详细,SDK默认级别为Pro |
CustomTimeout | 设置登录超时时间,单位秒,默认30秒 |
MaxLoginRetry | 由于网络原因导致登录失败时最大重试次数 |
SyncSessionAck | 设置是否已读未读状态多端同步,默认true |
NotNeedSaveCustomMsg | 设置是否不保存自定义(kNIMMessageTypeCustom )消息,默认false |
UsePriviteServer | 是否使用私有服务器,默认false |
私有服务器配置
SdkPrivateServerSetting
类提供使用私有服务器时需要提供的配置项,在使用云信公共服务器时不需要配置该项,参数说明如下:
参数 | 说明 |
---|---|
LbsAddress | 服务器LBS地址 |
NOSLbsAddress | 私有化NOS LBS地址 |
LinkServerList | 默认云信Link服务器地址列表 |
UploadServerList | 默认NOS上服务器地址列表 |
DownloadServerList | 默认NOS下载服务器地址列表 |
AccessServerList | 默认NOS Access 服务器地址 |
RSAPublicKey | RSA公共秘钥 |
RsaVersion | RSA秘钥版本 |
SDK清理
在程序退出时需要调用Cleanup
清理SDK释放资源,Cleanup
需要与Init
配对使用。
C#private void OnApplicationQuit()
{
//You Must call `logout` and `cleanup` to release resources.
//In this,you should call synchronous method.
// `Cleanup` should be called once only
NIM.ClientAPI.Logout(NIMLogoutType.kNIMLogoutAppExit);
NIM.ClientAPI.Cleanup();
}
此文档是否对你有帮助?