# 详细日志调试指南
## 🎯 已添加的调试功能
### 1. 详细日志级别
```javascript
TUICallKitAPI.setLogLevel(1); // 启用详细日志
```
### 2. 多状态监听
现在会监听以下状态变化:
- 通话状态(CALL_STATUS)
- 是否群组通话(IS_GROUP)
- 通话角色(CALL_ROLE)
- 通话类型(CALL_MEDIA_TYPE)
### 3. 完整状态输出
登录成功后会输出完整的状态信息。
## 📋 测试步骤
### 步骤 1:清除缓存并重启
```
1. 微信开发者工具 → 工具 → 清除缓存 → 全部清除
2. 关闭微信开发者工具
3. 重新打开微信开发者工具
4. 重新编译项目
```
### 步骤 2:小程序端登录
1. 输入患者ID:`2`
2. 点击"登录"
3. 等待登录成功
**预期日志(按顺序):**
```
=== 页面已挂载 ===
=== 已设置详细日志级别 ===
获取签名成功: { userId: "patient_2", sdkAppId: "1400xxxxxx", ... }
=== 小程序端登录信息 ===
sdkAppId: 1400xxxxxx
userId: patient_2
userSig 长度: xxx
TUICallKit 初始化成功, userId: patient_2
=== TUICallKit 初始化完成,等待来电 ===
=== TUICallKit 组件已挂载 ===
当前通话状态: IDLE
完整状态信息: {
callStatus: "idle",
isGroup: false,
callRole: null,
callMediaType: null,
localUserInfo: { userId: "patient_2" }
}
```
### 步骤 3:Web 端发起呼叫
1. Web 端打开患者详情页
2. 点击"视频通话"按钮
**预期日志(小程序端):**
```
[tuikit engine wasm] [im_event_channel_wasm.cc:71] js notify Native OnJSEvent, [event_id:onNewMessageReceived]
=== 通话状态变化 === waiting (或其他状态)
CallStatus.IDLE: idle
CallStatus.WAITING: waiting
CallStatus.CONNECTED: connected
=== 通话角色 === callee
=== 通话类型 === video
=== 是否群组通话 === false
```
### 步骤 4:观察界面变化
- 界面上的"通话状态"应该从 `IDLE` 变为其他状态
- TUICallKit 组件应该自动显示来电界面
## 🔍 关键日志说明
### 日志 1:onNewMessageReceived
```
[tuikit engine wasm] [im_event_channel_wasm.cc:71] js notify Native OnJSEvent, [event_id:onNewMessageReceived]
```
**含义:** 收到了新消息(来电信号)
**状态:** ✅ 正常
### 日志 2:通话状态变化
```
=== 通话状态变化 === waiting
```
**含义:** 通话状态从 IDLE 变为 WAITING(等待接听)
**状态:** ✅ 正常
### 日志 3:通话角色
```
=== 通话角色 === callee
```
**含义:** 当前角色是被叫方(接听方)
**状态:** ✅ 正常
### 日志 4:通话类型
```
=== 通话类型 === video
```
**含义:** 视频通话
**状态:** ✅ 正常
## ⚠️ 可能的问题
### 问题 1:收到消息但状态不变化
**症状:**
```
[tuikit engine wasm] onNewMessageReceived ✅
=== 通话状态变化 === ❌ 没有这条日志
```
**原因:** 消息处理失败或状态更新失败
**解决:**
1. 查看是否有其他错误日志
2. 检查 userId 格式是否正确
3. 尝试重新登录
### 问题 2:状态变化但界面不显示
**症状:**
```
=== 通话状态变化 === waiting ✅
界面没有变化 ❌
```
**原因:** TUICallKit 组件显示问题
**解决:**
1. 检查 Wxml 面板中是否有 TUICallKit 组件
2. 检查组件的样式和位置
3. 尝试真机测试
### 问题 3:完全没有日志
**症状:**
```
登录成功后没有任何日志输出
```
**原因:** 代码未正确更新或缓存问题
**解决:**
1. 确认代码已保存
2. 清除缓存
3. 重新编译
4. 重启微信开发者工具
## 📊 日志分析表
| 日志内容 | 状态 | 说明 |
|---------|------|------|
| `=== 页面已挂载 ===` | ✅ | 页面初始化成功 |
| `=== 已设置详细日志级别 ===` | ✅ | 日志级别设置成功 |
| `TUICallKit 初始化成功` | ✅ | SDK 初始化成功 |
| `=== TUICallKit 组件已挂载 ===` | ✅ | 组件挂载成功 |
| `onNewMessageReceived` | ✅ | 收到来电信号 |
| `=== 通话状态变化 ===` | ✅ | 状态正确更新 |
| `=== 通话角色 === callee` | ✅ | 角色识别正确 |
| `=== 通话类型 === video` | ✅ | 类型识别正确 |
## 🎯 成功标准
当你看到以下完整的日志序列时,说明一切正常:
```
1. === 页面已挂载 ===
2. === 已设置详细日志级别 ===
3. 获取签名成功
4. TUICallKit 初始化成功
5. === TUICallKit 组件已挂载 ===
6. 当前通话状态: IDLE
[Web 端发起呼叫后]
7. onNewMessageReceived
8. === 通话状态变化 === waiting
9. === 通话角色 === callee
10. === 通话类型 === video
11. === 是否群组通话 === false
```
如果看到这些日志,但界面仍然没有显示,那就是 TUICallKit 组件的显示问题,需要进一步调试组件样式。
## 🔧 下一步调试
### 如果状态正确变化但界面不显示
1. **检查组件是否存在**
- 微信开发者工具 → 调试器 → Wxml
- 查找 `TUICallKit` 组件
- 查看其样式和位置
2. **检查组件样式**
```css
.call-kit-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 9999;
background-color: rgba(0, 0, 0, 0.8); /* 添加背景色便于查看 */
}
```
3. **添加可见性测试**
在 TUICallKit 组件外层添加:
```vue
TUICallKit 区域
```
4. **真机测试**
- 开发者工具可能与真机表现不同
- 使用真机调试功能
- 查看真机上的实际效果
## 📞 需要提供的信息
如果问题仍然存在,请提供:
1. **完整的控制台日志**(从登录到收到来电的全部日志)
2. **界面截图**(显示"通话状态"的值)
3. **Wxml 面板截图**(显示 TUICallKit 组件)
4. **是否有其他错误日志**
5. **真机测试结果**(如果可能)
---
**最后更新:** 2024-03-04
**版本:** 1.0