initSDK

功能介绍

初始化 SDK

初始化 SDK 需要操作以下步骤:

准备 SDKAppID

设置 LogLevelEnum

设置 V2TimSDKListener

调用 initSDK 初始化 SDK。

在 Android 平台上,IM SDK 的日志在 4.8.50 版本之前默认存储于 /sdcard/tencenet/imsdklogs/应用包名 目录下,4.8.50 及之后的版本存储于 /sdcard/Android/data/包名/files/log/tencent/imsdk 目录下。

从 4.7.1 版本开始,IM SDK 的日志开始采用微信团队的 xlog 模块进行输出。xlog 日志默认是压缩的,需要使用 Python 脚本进行解压。

获取解压脚本:若使用 Python 2.7,则单击 Decode Log 27 获取解压脚本;若使用 Python 3.0,则单击 Decode Log 30 获取解压脚本。

在 Windows 或者 Mac 控制台输入如下命令即可对 log 文件进行解压,解压后的文件以 xlog.log 结尾,可以直接使用文本编辑器打开。

python decode_mars_nocrypt_log_file.py imsdk_yyyyMMdd.xlog

如果收到 onUserSigExpired 回调,说明您登录用的 UserSig 票据已经过期,请使用新签发的 UserSig 进行重新登录。如果继续使用过期的 UserSig,会导致 IM SDK 登录进入死循环。

参数详解

参数名称 参数类型 是否必填 描述
sdkAppID number 应用ID,可在控制台中获取
loglevel LogLevelEnum 打印日志等级
listener V2TimSDKListener SDK监听器

返回模板

V2TimValueCallback<boolean>

{
    code : number
    desc : string
    data : boolean
}

返回值详解

名称 数值类型 描述
code number 请求结果错误码
desc string 请求结果描述符
data boolean 初始化结果

代码示例

import {
    TencentImSDKPlugin,
    LogLevelEnum,
    V2TimSDKListener,
} from 'react-native-tim-js';
// 1. 从即时通信 IM 控制台获取应用 SDKAppID。
const sdkAppID = 0;
// 2. 添加 V2TimSDKListener 的事件监听器
const sdkListener: V2TimSDKListener = {
    onConnectFailed: (code, error) => {
        // 连接失败的回调函数
        // code 错误码
        // error 错误信息
    },
    onConnectSuccess: () => {
        // SDK 已经成功连接到腾讯云服务器
    },
    onConnecting: () => {
        // SDK 正在连接到腾讯云服务器
    },
    onKickedOffline: () => {
        // 当前用户被踢下线,此时可以 UI 提示用户,并再次调用 V2TIMManager 的 login() 函数重新登录。
    },
    onSelfInfoUpdated: (info) => {
        // 登录用户的资料发生了更新
        // info登录用户的资料
    },
    onUserSigExpired: () => {
        // 在线时票据过期:此时您需要生成新的 userSig 并再次调用 V2TIMManager 的 login() 函数重新登录。
    },
    onUserStatusChanged: (userStatusList) => {
        //用户状态变更通知
        //userStatusList 用户状态变化的用户列表
        //收到通知的情况:订阅过的用户发生了状态变更(包括在线状态和自定义状态),会触发该回调
        //在 IM 控制台打开了好友状态通知开关,即使未主动订阅,当好友状态发生变更时,也会触发该回调
        //同一个账号多设备登录,当其中一台设备修改了自定义状态,所有设备都会收到该回调
    },
};
// 3.初始化SDK
const initSDKRes = await TencentImSDKPlugin.v2TIMManager.initSDK(
    sdkAppID, // SDKAppID
    LogLevelEnum.V2TIM_LOG_DEBUG, // 日志登记等级
    sdkListener // 事件监听器
);
if (initSDKRes.code === 0) {
    //初始化成功
}

results matching ""

    No results matching ""