新增功能

This commit is contained in:
Your Name
2026-03-04 15:32:30 +08:00
parent a07e844c47
commit ab77f5488d
2266 changed files with 177942 additions and 3444 deletions
+292
View File
@@ -0,0 +1,292 @@
# 最终测试清单
## ✅ 代码已完成
所有修复和优化都已完成:
- ✅ 移除了不支持的 API
- ✅ 添加了详细日志
- ✅ 添加了状态监听
- ✅ 添加了 userId 格式验证
- ✅ 优化了组件结构
## 📋 测试前准备
### 1. 清除缓存
```
微信开发者工具 → 工具 → 清除缓存 → 全部清除
```
### 2. 重新编译
```
点击"编译"按钮,确认没有错误
```
### 3. 检查后端接口
确保后端返回正确的 userId 格式(字符串)
## 🧪 测试步骤
### 测试 1:小程序端登录
**操作:**
1. 输入患者ID`2`
2. 点击"登录"
**预期日志:**
```
=== 页面已挂载 ===
=== 已设置详细日志级别 ===
获取签名成功: { userId: "patient_2", ... }
=== 小程序端登录信息 ===
sdkAppId: 1400xxxxxx
userId: patient_2
userId 类型: string
userId 长度: 9
userSig 长度: xxx
TUICallKit 初始化成功, userId: patient_2
=== TUICallKit 初始化完成,等待来电 ===
=== TUICallKit 组件已挂载 ===
当前通话状态: IDLE
完整状态信息: { ... }
```
**预期界面:**
```
当前登录: patient_2
通话状态: IDLE
```
**检查点:**
- [ ] userId 类型是 `string`
- [ ] userId 值是 `patient_2`(包含下划线)
- [ ] userId 长度是 9
- [ ] 没有警告信息
### 测试 2Web 端发起呼叫
**操作:**
1. Web 端打开患者详情页
2. 点击"视频通话"按钮
**预期日志(Web 端):**
```
=== 发起一对一通话 ===
后端返回的 patientUserId: patient_2
最终使用的 targetUserId: patient_2
通话已发起,目标用户: patient_2
```
**预期日志(小程序端):**
```
[tuikit engine wasm] onNewMessageReceived
=== 通话状态变化 === calling
可能的状态值: idle, calling, connected
=== 通话角色 === callee
=== 通话类型 === 1 或 2
=== 是否群组通话 === false
```
**预期界面(小程序端):**
```
- 通话状态从 IDLE 变为 calling
- TUICallKit 组件自动显示来电界面
- 显示"接听"和"拒绝"按钮
```
**检查点:**
- [ ] Web 端 targetUserId 是 `patient_2`(字符串)
- [ ] 小程序端收到来电信号
- [ ] 小程序端状态变为 `calling`
- [ ] 小程序端界面显示来电
### 测试 3:接听通话
**操作:**
1. 小程序端点击"接听"按钮
**预期结果:**
- [ ] 通话状态变为 `connected`
- [ ] 双方都能看到视频画面
- [ ] 双方都能听到声音
- [ ] 控制按钮正常工作
### 测试 4:小程序端发起呼叫
**操作:**
1. 小程序端输入:`1`
2. 点击"呼叫"
**预期日志(小程序端):**
```
=== 准备发起呼叫 ===
输入值: 1
目标 userId: doctor_1
目标 userId 类型: string
目标 userId 长度: 8
发起通话成功, 目标用户: doctor_1
```
**预期结果:**
- [ ] 自动转换为 `doctor_1`
- [ ] Web 端收到来电
- [ ] 可以正常接听
**检查点:**
- [ ] 目标 userId 类型是 `string`
- [ ] 目标 userId 值是 `doctor_1`(包含下划线)
- [ ] 没有警告信息
## ⚠️ 常见问题
### 问题 1userId 类型不是 string
**症状:**
```
userId 类型: number
```
**原因:** 后端返回的是数字而不是字符串
**解决:** 修改后端代码,确保返回字符串:
```php
return [
'userId' => (string)$userId, // 强制转换为字符串
// ...
];
```
### 问题 2userId 格式警告
**症状:**
```
⚠️ userId 格式可能不正确,应该包含下划线
```
**原因:** userId 不包含下划线(如:`patient2` 而不是 `patient_2`
**解决:** 修改后端代码,确保格式正确:
```php
$userId = 'patient_' . $patientId; // 使用下划线
```
### 问题 3:提示"对方不在线"
**症状:** 错误代码 60011
**原因:** userId 格式不匹配
**解决:**
1. 检查 Web 端日志中的 `targetUserId`
2. 检查小程序端日志中的 `userId`
3. 确保两者完全一致
## 📊 成功标准
### 登录成功
- ✅ userId 类型是 `string`
- ✅ userId 格式是 `prefix_number`(如:`patient_2`
- ✅ 没有格式警告
- ✅ 界面显示正确的 userId
### 接收来电成功
- ✅ 收到 `onNewMessageReceived` 事件
- ✅ 状态变为 `calling`
- ✅ 界面自动显示来电
- ✅ 可以正常接听
### 发起呼叫成功
- ✅ 目标 userId 格式正确
- ✅ 对方收到来电
- ✅ 可以正常接听
## 🎯 完整测试流程
### 流程 1Web → 小程序
```
1. 小程序端登录(patient_2
2. 检查 userId 格式(string, patient_2
3. Web 端发起呼叫(target: patient_2
4. 小程序端收到来电
5. 状态变为 calling
6. 界面显示来电
7. 点击接听
8. 通话成功
```
### 流程 2:小程序 → Web
```
1. 小程序端登录(patient_2
2. 输入医生ID1
3. 自动转换为 doctor_1
4. 检查格式(string, doctor_1
5. 发起呼叫
6. Web 端收到来电
7. 点击接听
8. 通话成功
```
## 📞 需要提供的信息
如果测试失败,请提供:
### 1. 登录日志
```
=== 小程序端登录信息 ===
sdkAppId: ???
userId: ???
userId 类型: ???
userId 长度: ???
```
### 2. 呼叫日志(如果是小程序发起)
```
=== 准备发起呼叫 ===
输入值: ???
目标 userId: ???
目标 userId 类型: ???
目标 userId 长度: ???
```
### 3. 后端响应(隐藏 userSig
```json
{
"userId": "???",
"patientUserId": "???",
"sdkAppId": "???"
}
```
### 4. 错误信息
- 错误代码
- 错误提示
- 完整的控制台日志
## 📚 相关文档
- **USERID_FORMAT_CHECK.md** - userId 格式检查指南
- **READY_TO_TEST.md** - 准备测试指南
- **DEBUG_WITH_LOGS.md** - 详细日志说明
---
**最后更新:** 2024-03-04
**版本:** 5.0(最终测试版)
**状态:** ✅ 准备测试
**祝你测试顺利!🎉**