Files
zyt/wx/TUICallKit/DEBUG_WITH_LOGS.md
T
2026-03-04 15:32:30 +08:00

6.0 KiB
Raw Blame History

详细日志调试指南

🎯 已添加的调试功能

1. 详细日志级别

TUICallKitAPI.setLogLevel(1);  // 启用详细日志

2. 多状态监听

现在会监听以下状态变化:

  • 通话状态(CALL_STATUS
  • 是否群组通话(IS_GROUP
  • 通话角色(CALL_ROLE
  • 通话类型(CALL_MEDIA_TYPE

3. 完整状态输出

登录成功后会输出完整的状态信息。

📋 测试步骤

步骤 1:清除缓存并重启

1. 微信开发者工具 → 工具 → 清除缓存 → 全部清除
2. 关闭微信开发者工具
3. 重新打开微信开发者工具
4. 重新编译项目

步骤 2:小程序端登录

  1. 输入患者ID2
  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" }
}

步骤 3Web 端发起呼叫

  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 组件应该自动显示来电界面

🔍 关键日志说明

日志 1onNewMessageReceived

[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. 检查组件样式

    .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 组件外层添加:

    <view class="call-kit-wrapper" v-if="isLogin">
      <view class="test-marker">TUICallKit 区域</view>
      <TUICallKit></TUICallKit>
    </view>
    
    <style>
    .test-marker {
      position: absolute;
      top: 0;
      left: 0;
      background: red;
      color: white;
      padding: 10px;
      z-index: 10000;
    }
    </style>
    
  4. 真机测试

    • 开发者工具可能与真机表现不同
    • 使用真机调试功能
    • 查看真机上的实际效果

📞 需要提供的信息

如果问题仍然存在,请提供:

  1. 完整的控制台日志(从登录到收到来电的全部日志)
  2. 界面截图(显示"通话状态"的值)
  3. Wxml 面板截图(显示 TUICallKit 组件)
  4. 是否有其他错误日志
  5. 真机测试结果(如果可能)

最后更新: 2024-03-04 版本: 1.0