V2TIMSDKConfig
对象。initSDK
初始化 SDK。Create Applicaion
按钮,创建新的 SDKAppID。V2TIMSDKConfig
(Android / iOS & Mac / Windows) 对象。该对象用于对 SDK 进行初始化配置,例如设置日志级别、设置日志监听回调。日志级别 | LOG 输出量 |
V2TIM_LOG_NONE | 不输出任何 log |
V2TIM_LOG_DEBUG | 输出 DEBUG,INFO,WARNING,ERROR 级别的 log (默认的日志级别) |
V2TIM_LOG_INFO | 输出 INFO,WARNING,ERROR 级别的 log |
V2TIM_LOG_WARN | 输出 WARNING,ERROR 级别的 log |
V2TIM_LOG_ERROR | 输出 ERROR 级别的 log |
/sdcard/tencenet/imsdklogs/应用包名
目录下,4.8.50 及之后的版本存储于 /sdcard/Android/data/包名/files/log/tencent/imsdk
目录下。/Library/Caches/com_tencent_imsdk_log
目录下。C:\\App\\
目录下时,SDK 会将日志存储在 C:\\App\\com_tencent_imsdk_log\\
目录下。python decode_mars_nocrypt_log_file.py imsdk_yyyyMMdd.xlog
setLogListener
(Android / iOS & Mac / Windows) 设置日志监听器。
设置成功后,SDK 会实时将日志信息通过此回调抛出。V2TIMSDKConfig
示例代码如下:// 初始化 config 对象V2TIMSDKConfig config = new V2TIMSDKConfig();// 指定 log 输出级别config.setLogLevel(V2TIMSDKConfig.V2TIM_LOG_INFO);// 指定 log 监听器config.setLogListener(new V2TIMLogListener() {@Overridepublic void onLog(int logLevel, String logContent) {// logContent 为 SDK 日志内容}});
// 初始化 config 对象V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init];// 指定 log 输出级别config.logLevel = V2TIM_LOG_INFO;// 设置 log 监听器config.logListener = ^(V2TIMLogLevel logLevel, NSString *logContent) {// logContent 为 SDK 日志内容};
class LogListener final : public V2TIMLogListener {public:LogListener() = default;~LogListener() override = default;void OnLog(V2TIMLogLevel logLevel, const V2TIMString& logContent) override {// logContent 为 SDK 日志内容}};// 注意 logListener 不能在 SDK 反初始化前释放,否则监听不到日志回调LogListener logListener;// 初始化 config 对象V2TIMSDKConfig config;// 指定 log 输出级别config.logLevel = V2TIMLogLevel::V2TIM_LOG_INFO;// 设置 log 监听器config.logListener = &logListener;
V2TIMSDKListener
抛出一些事件,例如连接状态、登录票据过期等。
我们建议您调用 addIMSDKListener
(Android / iOS & Mac/ Windows) 接口添加 SDK 事件监听器,在对应回调中做一些逻辑处理。V2TIMSDKListener
相关回调如下表所示:事件回调 | 事件描述 | 推荐操作 |
onConnecting | 正在连接到腾讯云服务器 | 适合在 UI 上展示 “正在连接” 状态。 |
onConnectSuccess | 已经成功连接到腾讯云服务器 | - |
onConnectFailed | 连接腾讯云服务器失败 | 提示用户当前网络连接不可用。 |
onKickedOffline | 当前用户被踢下线 | 此时可以 UI 提示用户 “您已经在其他端登录了当前账号,是否重新登录?” |
onUserSigExpired | 登录票据已经过期 | 请使用新签发的 UserSig 进行登录。 |
onSelfInfoUpdated | 当前用户的资料发生了更新 | 可以在 UI 上更新自己的头像和昵称。 |
onUserSigExpired
回调,说明您登录用的 UserSig 票据已经过期,请使用新签发的 UserSig 进行重新登录。如果继续使用过期的 UserSig,会导致 SDK 登录进入死循环。// sdkListener 类型为 V2TIMSDKListenerV2TIMManager.getInstance().addIMSDKListener(sdkListener);
// self 类型为 id<V2TIMSDKListener>[[V2TIMManager sharedInstance] addIMSDKListener:self];
// sdkListener 是 V2TIMSDKListener 类的实例V2TIMManager::GetInstance()->AddSDKListener(&sdkListener);
// 1. 从控制台获取应用 SDKAppID。// 2. 初始化 config 对象。V2TIMSDKConfig config = new V2TIMSDKConfig();// 3. 指定 log 输出级别。config.setLogLevel(V2TIMSDKConfig.V2TIM_LOG_INFO);// 4. 添加 V2TIMSDKListener 的事件监听器,sdkListener 是 V2TIMSDKListener 的实现类,如果您不需要监听 SDK 的事件,这个步骤可以忽略。V2TIMManager.getInstance().addIMSDKListener(sdkListener);// 5. 初始化 SDK,调用这个接口后,可以立即调用登录接口。int sdkAppID = 1400000000; // 请设置自己应用的 sdkAppIDV2TIMManager.getInstance().initSDK(context, sdkAppID, config);
// 1. 从即时通信 IM 控制台获取应用 SDKAppID。// 2. 初始化 config 对象V2TIMSDKConfig *config = [[V2TIMSDKConfig alloc] init];// 3. 指定 log 输出级别。config.logLevel = V2TIM_LOG_INFO;// 4. 添加 V2TIMSDKListener 的事件监听器,self 是 id<V2TIMSDKListener> 的实现类,如果您不需要监听 SDK 的事件,这个步骤可以忽略。[[V2TIMManager sharedInstance] addIMSDKListener:self];// 5. 初始化 SDK,调用这个接口后,可以立即调用登录接口。int sdkAppID = 1400000000; // 请设置自己应用的 sdkAppID[[V2TIMManager sharedInstance] initSDK:sdkAppID config:config];
// 1. 从即时通信 IM 控制台获取应用 SDKAppID。// 2. 初始化 config 对象。V2TIMSDKConfig config;// 3. 指定 log 输出级别。config.logLevel = V2TIMLogLevel::V2TIM_LOG_INFO;// 4. 添加 V2TIMSDKListener 的事件监听器,sdkListener 是 V2TIMSDKListener 类的实例,如果您不需要监听 SDK 的事件,这个步骤可以忽略。V2TIMManager::GetInstance()->AddSDKListener(&sdkListener);// 5. 初始化 SDK,调用这个接口后,可以立即调用登录接口。int sdkAppID = 1400000000; // 请设置自己应用的 sdkAppIDV2TIMManager::GetInstance()->InitSDK(sdkAppID, config);
addIMSDKListener
添加了 SDK 监听器,此时请调用 removeIMSDKListener
(Android / iOS & Mac/ Windows) 移除 SDK 监听器。// 移除 V2TIMSDKListener 的事件监听器,sdkListener 是 V2TIMSDKListener 的实现类V2TIMManager.getInstance().removeIMSDKListener(sdkListener);// 反初始化 SDKV2TIMManager.getInstance().unInitSDK();
// self 是 id<V2TIMSDKListener> 的实现类[[V2TIMManager sharedInstance] removeIMSDKListener:self];// 反初始化 SDK[[V2TIMManager sharedInstance] unInitSDK];
// 移除 V2TIMSDKListener 的事件监听器,sdkListener 是 V2TIMSDKListener 类的实例V2TIMManager::GetInstance()->RemoveSDKListener(&sdkListener);// 反初始化 SDKV2TIMManager::GetInstance()->UnInitSDK();
本页内容是否解决了您的问题?