新增功能
This commit is contained in:
@@ -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
|
||||
- [ ] 没有警告信息
|
||||
|
||||
### 测试 2:Web 端发起呼叫
|
||||
|
||||
**操作:**
|
||||
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`(包含下划线)
|
||||
- [ ] 没有警告信息
|
||||
|
||||
## ⚠️ 常见问题
|
||||
|
||||
### 问题 1:userId 类型不是 string
|
||||
|
||||
**症状:**
|
||||
```
|
||||
userId 类型: number
|
||||
```
|
||||
|
||||
**原因:** 后端返回的是数字而不是字符串
|
||||
|
||||
**解决:** 修改后端代码,确保返回字符串:
|
||||
```php
|
||||
return [
|
||||
'userId' => (string)$userId, // 强制转换为字符串
|
||||
// ...
|
||||
];
|
||||
```
|
||||
|
||||
### 问题 2:userId 格式警告
|
||||
|
||||
**症状:**
|
||||
```
|
||||
⚠️ 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 格式正确
|
||||
- ✅ 对方收到来电
|
||||
- ✅ 可以正常接听
|
||||
|
||||
## 🎯 完整测试流程
|
||||
|
||||
### 流程 1:Web → 小程序
|
||||
|
||||
```
|
||||
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. 输入医生ID(1)
|
||||
↓
|
||||
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(最终测试版)
|
||||
**状态:** ✅ 准备测试
|
||||
|
||||
**祝你测试顺利!🎉**
|
||||
Reference in New Issue
Block a user