@tencentcloud/sdk-mcp 1.7.2 → 1.7.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +25 -17
- package/knowledge/bm25.js +20 -11
- package/knowledge/path-meta.js +23 -1
- package/knowledge/search/generic-rerank.js +123 -0
- package/knowledge/search/search-pass.js +8 -1
- package/package.json +1 -1
- package/resource/_schema/query-normalization.yaml +6 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +4 -0
- package/resource/integration/callkit/preset/flutter/integration.md +4 -0
- package/resource/integration/callkit/preset/ios/integration.md +14 -13
- package/resource/integration/callkit/preset/vue/integration.md +0 -3
- package/resource/integration/chat/preset/android/integration.md +35 -173
- package/resource/integration/chat/preset/flutter/integration.md +113 -220
- package/resource/integration/chat/preset/ios/integration.md +2 -269
- package/resource/integration/chat/preset/react/integration.md +27 -1
- package/resource/integration/chat/preset/uni-app/integration.md +5 -1
- package/resource/integration/chat/preset/vue/integration.md +21 -31
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
- package/resource/integration/roomkit/preset/vue/integration.md +0 -213
- package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
- package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
- package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +9 -7
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +10 -7
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -84
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -102
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
- package/resource/knowledge/callkit/faq/error-code.md +62 -36
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
- package/resource/knowledge/callkit/preset/android/api.md +10 -10
- package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
- package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
- package/resource/knowledge/callkit/preset/ios/api.md +9 -9
- package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
- package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
- package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
- package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
- package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
- package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
- package/resource/knowledge/chat/best-practice/common/web-sdk-log-level.md +76 -0
- package/resource/knowledge/chat/best-practice/miniprogram/desktop-wechat-miniprogram-error.md +79 -0
- package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +1 -1
- package/resource/knowledge/chat/preset/android-view/integration.md +84 -124
- package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +184 -923
- package/resource/knowledge/chat/preset/react/features/search.md +9 -214
- package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
- package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
- package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +0 -167
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +1 -66
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +1 -66
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +2 -2
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
- package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
- package/resource/knowledge/push/api-reference/unity.md +10 -10
- package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
- package/resource/knowledge/push/config/android/fcm.md +2 -6
- package/resource/knowledge/push/integration/android.md +824 -428
- package/resource/knowledge/push/integration/donut.md +57 -74
- package/resource/knowledge/push/integration/flutter.md +208 -63
- package/resource/knowledge/push/integration/harmonyos.md +6 -11
- package/resource/knowledge/push/integration/ios.md +44 -99
- package/resource/knowledge/push/integration/react-native.md +3 -2
- package/resource/knowledge/push/integration/uni-app.md +29 -107
- package/resource/knowledge/push/integration/unity.md +3 -2
- package/resource/knowledge/push/integration/unreal-engine.md +4 -3
- package/resource/knowledge/roomkit/best-practice/vue/screen-share-auto-stop-on-leave.md +62 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/react/network-proxy.md +84 -0
- package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/network-proxy.md +84 -0
- package/resource/knowledge/roomkit/core-sdk/vue/recording.md +245 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +181 -0
- package/resource/knowledge/roomkit/faq/error-code.md +103 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +1 -202
- package/resource/knowledge/roomkit/preset/flutter/integration.md +13 -13
- package/resource/knowledge/roomkit/preset/harmonyos/integration.md +465 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +0 -201
- package/resource/knowledge/roomkit/preset/react/features/network-proxy.md +80 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
- package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +279 -0
- package/resource/knowledge/roomkit/preset/vue/features/ai-caption-translation.md +69 -0
- package/resource/knowledge/roomkit/preset/vue/features/ai-denoiser.md +67 -0
- package/resource/knowledge/roomkit/preset/vue/features/network-proxy.md +80 -0
- package/resource/knowledge/roomkit/preset/vue/features/recording.md +85 -0
- package/resource/knowledge/roomkit/preset/vue/features/whiteboard-annotation.md +86 -0
- package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
- package/server.js +1 -1
- package/utils/preflight-route.js +18 -6
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
本文将介绍如何快速接入 TUICallKit 组件。您可以在 10 分钟内完成以下关键步骤,最终获得一个功能完备的音视频通话界面。
|
|
2
|
+
|
|
3
|
+
> **说明:**
|
|
4
|
+
> 自 2025 年 5 月 1 日起,由于 uni-app 官方限制,CallKit 原生语言插件已终止迭代,为保障业务持续稳定运行,现提供 CallKit UTS 插件方案。
|
|
5
|
+
>
|
|
6
|
+
> CallKit UTS 插件核心优势:
|
|
7
|
+
>
|
|
8
|
+
> - 支持自定义 UI、深度界面定制。
|
|
9
|
+
> - 支持 uni-app 项目。
|
|
10
|
+
> - 提供插件版本锁定功能,避免因更新导致兼容性问题。
|
|
11
|
+
|
|
12
|
+
## 准备工作
|
|
13
|
+
|
|
14
|
+
### 环境要求
|
|
15
|
+
|
|
16
|
+
> **说明:**
|
|
17
|
+
> HBuilderX 4.64 和 4.65 版本对 UTS 插件打包存在已知兼容性问题,建议使用 4.66 或更高版本。
|
|
18
|
+
>
|
|
19
|
+
|
|
20
|
+
- [HBuilderX](https://www.dcloud.io/hbuilderx.html):HBuilderX 是 **uni-app 官方**的集成开发环境(IDE),我们需要用它来导入、配置和运行我们的 Demo。
|
|
21
|
+
|
|
22
|
+
- 2个移动设备: Android 5.0 以上的设备 / iOS 13.0 及以上设备。
|
|
23
|
+
|
|
24
|
+
### 开通服务
|
|
25
|
+
|
|
26
|
+
您需要开通腾讯云服务,以获取应用所需的唯一身份标识和密钥。 。
|
|
27
|
+
|
|
28
|
+
## 代码集成
|
|
29
|
+
|
|
30
|
+
### **步骤 1:下载 TUICallKit 源码**
|
|
31
|
+
|
|
32
|
+
【Vue3】
|
|
33
|
+
1. **克隆项目源码。**
|
|
34
|
+
|
|
35
|
+
``` bash
|
|
36
|
+
git clone https://github.com/Tencent-RTC/TUIKit_uni-app.git
|
|
37
|
+
```
|
|
38
|
+
2. **导入 atomic-x 组件。**
|
|
39
|
+
|
|
40
|
+
- 将源码中 `TUIKit_uni-app/App/uni_modules` 目录下的 `tuikit-atomic-x` 文件夹,完整拷贝到您项目根目录下的 `uni_modules` 文件夹中。
|
|
41
|
+
|
|
42
|
+
- 将源码中 `TUIKit_uni-app/App/components` 下的文件,完整地拷贝到您项目的 `components` 文件夹中。
|
|
43
|
+
|
|
44
|
+
- 将源码中 `TUIKit_uni-app/App/static` 目录下的文件,完整拷贝到您项目根目录下的同名文件夹下。
|
|
45
|
+
|
|
46
|
+
- 将源码中 `TUIKit_uni-app/App/debug` 文件夹拷贝到您项目的根目录下,这个目录提供可以方便您在客户端快速生成的 **UserSig** 的快捷函数。
|
|
47
|
+
|
|
48
|
+
3. **合并 App.vue 配置。**
|
|
49
|
+
|
|
50
|
+
**TUIKit_uni-app/App/App.vue** 文件中包含通话能力的初始化逻辑,因此您需要将 **TUIKit_uni-app/App/App.vue** 文件和您项目下的 **App.vue** 文件进行合并。
|
|
51
|
+
|
|
52
|
+
> **注意:**
|
|
53
|
+
>
|
|
54
|
+
> 不要直接覆盖 **App.vue** 文件! 打开源码中的 **TUIKit_uni-app/App/App.vue**, 将其 `<script>` 部分的 ts 内容追加到您自己项目的 **App.vue** 的 `<script>` 标签内。
|
|
55
|
+
>
|
|
56
|
+
|
|
57
|
+
【Vue2】
|
|
58
|
+
1. **安装 TUIKit 插件。**
|
|
59
|
+
|
|
60
|
+
进入[【官方】腾讯云聊天+通话+直播响应式 SDK](https://ext.dcloud.net.cn/plugin)。点击【下载插件并导入 HBuilderX】,将插件导入您的项目中。
|
|
61
|
+
|
|
62
|
+
2. **导入 atomic-x 组件。**
|
|
63
|
+
|
|
64
|
+
1. **转化兼容模式**:仅 Vue2 项目,Vue3 项目可忽略。
|
|
65
|
+
|
|
66
|
+
> **说明:**
|
|
67
|
+
>
|
|
68
|
+
> 该脚本用于将插件源码中 Vue3 的 Composition API 写法自动转换为 Vue2 的 Options API 写法,以确保在 Vue2 项目中正常运行。
|
|
69
|
+
>
|
|
70
|
+
|
|
71
|
+
``` bash
|
|
72
|
+
node ./uni_modules/tuikit-atomic-x/scripts/switch-to-compatible-mode.js
|
|
73
|
+
```
|
|
74
|
+
2. **拷贝静态资源**:将 `uni_modules/tuikit-atomic-x/quickstart/` 下的 `static/*` 拷贝到项目 `static` 目录下。
|
|
75
|
+
|
|
76
|
+
【Mac 端】
|
|
77
|
+
``` java
|
|
78
|
+
cp -r uni_modules/tuikit-atomic-x/quickstart/static/* static/
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
【Windows 端】
|
|
82
|
+
``` bash
|
|
83
|
+
xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart\static\*" "static\"
|
|
84
|
+
```
|
|
85
|
+
3. **合并 App.vue 配置。**
|
|
86
|
+
|
|
87
|
+
通话能力的初始化需要在应用唤醒的时候进行,因此需要您将以下代码和您项目中的 `App.vue` 中的逻辑进行合并处理。
|
|
88
|
+
``` typescript
|
|
89
|
+
import { initCallService } from '@/uni_modules/tuikit-atomic-x/server/callService';
|
|
90
|
+
export default {
|
|
91
|
+
onLaunch: function() {
|
|
92
|
+
initCallService()
|
|
93
|
+
console.log('App Launch')
|
|
94
|
+
},
|
|
95
|
+
onShow: function() {
|
|
96
|
+
console.log('App Show')
|
|
97
|
+
},
|
|
98
|
+
onHide: function() {
|
|
99
|
+
console.log('App Hide')
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 步骤 2:工程配置
|
|
105
|
+
1. 配置 `manifest.json`。
|
|
106
|
+
|
|
107
|
+
打开您项目的 **manifest.json** 文件,在 **app-plus** > **distribute** 节点下,确保添加了以下必要的权限:
|
|
108
|
+
|
|
109
|
+
- Android 平台(`Android` 节点):在 `permissions` 数组中,请确保包含以下权限:
|
|
110
|
+
|
|
111
|
+
``` json
|
|
112
|
+
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
|
113
|
+
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\" />",
|
|
114
|
+
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
|
|
115
|
+
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
|
116
|
+
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
|
|
117
|
+
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
|
|
118
|
+
"<uses-permission android:name=\"android.permission.VIBRATE\"/>"
|
|
119
|
+
```
|
|
120
|
+
- iOS 平台(`iOS` 节点):在 `privacyDescription` 对象中,请确保包含以下描述:
|
|
121
|
+
|
|
122
|
+
``` json
|
|
123
|
+
"NSCameraUsageDescription" : "应用需要访问您的相机以进行通话",
|
|
124
|
+
"NSMicrophoneUsageDescription" : "应用需要访问您的麦克风以进行通话"
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
在 `UIBackgroundModes` 数组中,添加 `audio` 以支持后台播放音频。
|
|
128
|
+
|
|
129
|
+
``` json
|
|
130
|
+
"UIBackgroundModes" : [ "audio" ]
|
|
131
|
+
```
|
|
132
|
+
2. 制作自定义基座。
|
|
133
|
+
|
|
134
|
+
> **说明:**
|
|
135
|
+
>
|
|
136
|
+
> 由于 TUICallKit 包含原生代码(UTS 插件),您**必须**制作自定义调试基座才能在真机上运行。
|
|
137
|
+
>
|
|
138
|
+
|
|
139
|
+
1. 在 HBuilderX 顶部菜单选择**运行** > **运行到手机或模拟器** > **制作自定义调试基座**。
|
|
140
|
+
|
|
141
|
+
2. 制作成功后,再次选择**运行** > **运行到手机或模拟器**,在弹窗中勾选**使用自定义调试基座**后运行到您的手机。
|
|
142
|
+
|
|
143
|
+
具体操作指引参见 跑通 Demo 的步骤3。
|
|
144
|
+
|
|
145
|
+
### 步骤 3:完成登录
|
|
146
|
+
|
|
147
|
+
集成完成后,您需要完成登录。在您项目中需要使用到通话能力的地方进行登录,这是**使用 TUICallKit 的关键步骤**,因为只有在登录成功后才能正常使用 TUICallKit 的各项功能,故请您耐心检查相关参数是否配置正确:
|
|
148
|
+
|
|
149
|
+
【Vue3】
|
|
150
|
+
``` typescript
|
|
151
|
+
import { onMounted } from 'vue';
|
|
152
|
+
import { useLoginState } from "@/uni_modules/tuikit-atomic-x/state/LoginState";
|
|
153
|
+
|
|
154
|
+
const { login } = useLoginState();
|
|
155
|
+
onMounted(() => {
|
|
156
|
+
login({
|
|
157
|
+
sdkAppID: 1400000001, // 请替换为开通服务控制台的 SDKAppID
|
|
158
|
+
userID: "denny", // 请替换为您的 UserID
|
|
159
|
+
userSig: "xxxxxxxxxxx", // 您可以在控制台中计算一个 UserSig 并填在这个位置
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
【Vue2】
|
|
165
|
+
``` typescript
|
|
166
|
+
<script>
|
|
167
|
+
import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState'
|
|
168
|
+
|
|
169
|
+
export default {
|
|
170
|
+
data() {
|
|
171
|
+
var loginStore = useLoginState()
|
|
172
|
+
return {
|
|
173
|
+
loginStore: loginStore,
|
|
174
|
+
userId: '',
|
|
175
|
+
userSig: ''
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
methods: {
|
|
179
|
+
handleLogin: function () {
|
|
180
|
+
if (!this.userId || !this.userSig) return
|
|
181
|
+
var self = this
|
|
182
|
+
this.loginStore.login({
|
|
183
|
+
sdkAppID: 1400000001, // 你的 SDKAppID
|
|
184
|
+
userID: this.userId,
|
|
185
|
+
userSig: this.userSig,
|
|
186
|
+
})
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
</script>
|
|
191
|
+
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**登录接口参数说明**
|
|
195
|
+
| 参数 | 类型 | 说明 |
|
|
196
|
+
| --- | --- | --- |
|
|
197
|
+
| SDKAppID | Number | 从 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 获取。 |
|
|
198
|
+
| userID | String | 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。 |
|
|
199
|
+
| userSig | String | 用于腾讯云鉴权的票据。请注意:<br>- 开发环境:您可以采用本地 <code>GenerateTestUserSig.genTestSig</code> 函数生成 UserSig 或者通过 <a href="https://console.cloud.tencent.com/im/tool-usersig">UserSig 辅助工具</a> 生成临时的 UserSig。<br>- 生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275#formal">服务端生成 UserSig</a>。<br>更多信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275">如何计算及使用 UserSig</a>。 |
|
|
200
|
+
|
|
201
|
+
### 步骤 4:注册通话页面
|
|
202
|
+
|
|
203
|
+
现在,您需要在 `pages.json` 文件中告诉您的应用,这个新页面是存在的。
|
|
204
|
+
|
|
205
|
+
打开您项目根目录下的 `pages.json` 文件,在 `"pages"` 数组中,添加以下对象来注册通话页。
|
|
206
|
+
``` java
|
|
207
|
+
{
|
|
208
|
+
"pages": [
|
|
209
|
+
// ... 您项目已有的其他页面配置
|
|
210
|
+
{
|
|
211
|
+
"path": "uni_modules/tuikit-atomic-x/pages/call",
|
|
212
|
+
"style": {
|
|
213
|
+
"navigationBarTitleText": "",
|
|
214
|
+
"disableSwipeBack": true, // 禁止右滑返回,防止直播中误操作退出
|
|
215
|
+
"app-plus": {
|
|
216
|
+
"titleNView": false // 隐藏原生导航栏,使用页面内的自定义导航
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
]
|
|
221
|
+
// ... 其他配置
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### 步骤5:跳转通话页面
|
|
227
|
+
|
|
228
|
+
在您需要发起通话的地方(具体由您的业务决定,在其点击事件里执行),您需要先调用 calls 函数。在该函数成功执行的 success 回调中,再通过 uni.navigateTo 跳转到通话页面,以确保通话状态已正确建立。
|
|
229
|
+
|
|
230
|
+
【Vue3】
|
|
231
|
+
``` typescript
|
|
232
|
+
import { useCallState } from '@/uni_modules/tuikit-atomic-x/state/CallState';
|
|
233
|
+
import { useDeviceState } from "@/uni_modules/tuikit-atomic-x/state/DeviceState";
|
|
234
|
+
const { calls } = useCallState()
|
|
235
|
+
const { openLocalCamera, openLocalMicrophone } = useDeviceState();
|
|
236
|
+
|
|
237
|
+
// 示例:在一个按钮的点击事件中
|
|
238
|
+
function startCall() {
|
|
239
|
+
// 跳转到通话页
|
|
240
|
+
calls({
|
|
241
|
+
participantIds: ['xxx'],
|
|
242
|
+
mediaType: 1, // 1 是视频通话, 0 是语音通话
|
|
243
|
+
success: () => {
|
|
244
|
+
openLocalCamera({isFront: true})
|
|
245
|
+
openLocalMicrophone()
|
|
246
|
+
uni.navigateTo({
|
|
247
|
+
url: '/uni_modules/tuikit-atomic-x/pages/call?layoutTemplate=Float'
|
|
248
|
+
})
|
|
249
|
+
},
|
|
250
|
+
fail: (error) => {
|
|
251
|
+
console.log('calls fail:', error)
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
【Vue2】
|
|
259
|
+
``` typescript
|
|
260
|
+
<script>
|
|
261
|
+
import { useCallState, CallMediaType } from '@/uni_modules/tuikit-atomic-x/state/CallState'
|
|
262
|
+
import { useDeviceState } from '@/uni_modules/tuikit-atomic-x/state/DeviceState'
|
|
263
|
+
|
|
264
|
+
export default {
|
|
265
|
+
data() {
|
|
266
|
+
var callStore = useCallState()
|
|
267
|
+
var deviceStore = useDeviceState()
|
|
268
|
+
return {
|
|
269
|
+
callStore: callStore,
|
|
270
|
+
deviceStore: deviceStore,
|
|
271
|
+
// 要呼叫的用户 ID
|
|
272
|
+
participantId: 'xxx'
|
|
273
|
+
}
|
|
274
|
+
},
|
|
275
|
+
methods: {
|
|
276
|
+
startCall: function () {
|
|
277
|
+
var self = this
|
|
278
|
+
|
|
279
|
+
// 发起通话
|
|
280
|
+
this.callStore.calls({
|
|
281
|
+
participantIds: [this.participantId], // 被呼叫者用户 ID 数组
|
|
282
|
+
mediaType: CallMediaType.Video, // 1 是视频通话, 0 是语音通话
|
|
283
|
+
success: function () {
|
|
284
|
+
console.log('发起通话成功')
|
|
285
|
+
|
|
286
|
+
// 打开本地摄像头
|
|
287
|
+
self.deviceStore.openLocalCamera({
|
|
288
|
+
isFront: true, // 使用前置摄像头
|
|
289
|
+
success: function () {
|
|
290
|
+
console.log('摄像头打开成功')
|
|
291
|
+
},
|
|
292
|
+
fail: function (errCode, errMsg) {
|
|
293
|
+
console.log('摄像头打开失败:', errMsg)
|
|
294
|
+
}
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
// 打开本地麦克风
|
|
298
|
+
self.deviceStore.openLocalMicrophone({
|
|
299
|
+
success: function () {
|
|
300
|
+
console.log('麦克风打开成功')
|
|
301
|
+
},
|
|
302
|
+
fail: function (errCode, errMsg) {
|
|
303
|
+
console.log('麦克风打开失败:', errMsg)
|
|
304
|
+
}
|
|
305
|
+
})
|
|
306
|
+
|
|
307
|
+
// 跳转到通话页面
|
|
308
|
+
uni.navigateTo({
|
|
309
|
+
url: '/uni_modules/tuikit-atomic-x/pages/call?layoutTemplate=Float'
|
|
310
|
+
})
|
|
311
|
+
},
|
|
312
|
+
fail: function (error) {
|
|
313
|
+
console.log('发起通话失败:', error)
|
|
314
|
+
}
|
|
315
|
+
})
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
</script>
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
> **说明:**
|
|
323
|
+
> 在 `tuikit-atomic-x/server/callService` 文件中进行了默认处理被叫端收到呼叫的逻辑,若您需要自定义,可以修改该文件中的 `"onCallReceived"` 事件对应的处理逻辑。
|
|
324
|
+
>
|
|
325
|
+
|
|
326
|
+
## 常见问题
|
|
327
|
+
|
|
328
|
+
### 调用接口没有反应?
|
|
329
|
+
|
|
330
|
+
请检查您是否制作了自定义基座并且使用自定义基座运行项目。
|
|
331
|
+
|
|
332
|
+
### 如何禁止系统侧滑返回上一个页面的行为?
|
|
333
|
+
|
|
334
|
+
iOS 端可以通过设置页面上的 **disableSwipeBack** 属性进行禁止。详情参考 [uni-app 官方文档](https://uniapp.dcloud.net.cn/collocation/pages.html)。
|
|
335
|
+
|
|
336
|
+
Android 端可以通过 **onBackPress** 拦截系统侧滑和物理返回,示例代码如下
|
|
337
|
+
|
|
338
|
+
> **注意:**
|
|
339
|
+
> 使用该方式进行系统侧滑和物理返回的拦截的前提是该页面使用的是 [自定义导航栏](https://uniapp.dcloud.net.cn/collocation/pages.html#customnav)。
|
|
340
|
+
>
|
|
341
|
+
|
|
342
|
+
``` typescript
|
|
343
|
+
<script setup>
|
|
344
|
+
import { onBackPress } from '@dcloudio/uni-app'
|
|
345
|
+
|
|
346
|
+
// 拦截系统侧滑和物理返回键,防止通话中误退出
|
|
347
|
+
onBackPress((option) => {
|
|
348
|
+
if (option.from === 'backbutton') {
|
|
349
|
+
return true; // 返回 true 阻止默认回退行为
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
</script>
|
|
353
|
+
```
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web Chat SDK 关闭/调整浏览器本地日志输出(setLogLevel)
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [setLogLevel, 日志, 日志级别, 关闭日志, 本地日志, 浏览器日志, 控制台日志, release, 生产环境, create, 初始化日志]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Chat SDK 关闭/调整浏览器本地日志输出(setLogLevel)
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 通过 `chat.setLogLevel(level)` 控制 SDK 本地日志输出级别,将 `level` 设为 `4` 即可关闭 SDK 的全部日志打印。
|
|
15
|
+
- `setLogLevel` 需在 `create` 创建 `chat` 实例之后调用。
|
|
16
|
+
- `setLogLevel` 只对调用成功**之后**的日志生效;调用之前已输出的初始化日志无法关闭,这是预期的设计行为。
|
|
17
|
+
- 生产环境建议将级别设为 `1`(release),仅输出关键信息,而非直接设为 `4` 关闭全部日志,以保留必要的问题排查线索。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `chat.setLogLevel(level)` | 设置本地日志级别 | 需在 `create` 创建实例后调用 |
|
|
24
|
+
| `level = 0` | 普通级别 | 日志量较多,接入调试阶段建议使用 |
|
|
25
|
+
| `level = 1` | release 级别 | 仅输出关键信息,生产环境建议使用 |
|
|
26
|
+
| `level = 2` | 告警级别 | 仅输出告警与错误级别日志 |
|
|
27
|
+
| `level = 3` | 错误级别 | 仅输出错误级别日志 |
|
|
28
|
+
| `level = 4` | 无日志级别 | 不打印任何日志(完全关闭) |
|
|
29
|
+
|
|
30
|
+
## 3. 机制/时序
|
|
31
|
+
|
|
32
|
+
`create` 创建 `chat` 实例 -> SDK 输出初始化日志(此阶段日志不受 `setLogLevel` 控制) -> 调用 `chat.setLogLevel(level)` -> 从调用成功之后开始,按设定级别过滤日志输出。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. 调用 `create` 创建 `chat` 实例。
|
|
37
|
+
2. 紧接着调用 `chat.setLogLevel(level)`,传入目标级别(关闭全部日志传 `4`,生产环境保留关键信息传 `1`)。
|
|
38
|
+
3. 如需在不同环境使用不同级别,按环境变量在初始化后设置对应 `level`。
|
|
39
|
+
|
|
40
|
+
``` javascript
|
|
41
|
+
// 创建实例后立即设置日志级别
|
|
42
|
+
const chat = TencentCloudChat.create({ SDKAppID });
|
|
43
|
+
|
|
44
|
+
// 关闭 SDK 全部本地日志
|
|
45
|
+
chat.setLogLevel(4);
|
|
46
|
+
|
|
47
|
+
// 或:生产环境仅保留关键信息
|
|
48
|
+
// chat.setLogLevel(1);
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## 5. 结果判定
|
|
52
|
+
|
|
53
|
+
- 设置 `level = 4` 后,`setLogLevel` 调用成功之后的浏览器控制台不再出现 SDK 日志。
|
|
54
|
+
- 设置 `level = 1` 后,仅输出关键信息,告警/普通日志被过滤。
|
|
55
|
+
- `create` 到 `setLogLevel` 之间的初始化日志仍会出现,属预期行为。
|
|
56
|
+
|
|
57
|
+
## 6. 常见误区
|
|
58
|
+
|
|
59
|
+
- 误区 1:认为 `setLogLevel(4)` 能连初始化日志一起清掉(调用前的初始化日志无法关闭)。
|
|
60
|
+
- 误区 2:在 `create` 之前调用 `setLogLevel`(必须在创建实例之后调用才生效)。
|
|
61
|
+
- 误区 3:生产环境直接设为 `4` 关闭全部日志,导致线上问题无日志可查(建议用 `1` 保留关键信息)。
|
|
62
|
+
|
|
63
|
+
## 7. 问题定义(检索辅助,极简)
|
|
64
|
+
|
|
65
|
+
Web/小程序 Chat SDK 如何关闭或调整浏览器本地(控制台)日志输出。
|
|
66
|
+
|
|
67
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
68
|
+
|
|
69
|
+
- web im sdk 怎么关闭浏览器本地日志?
|
|
70
|
+
- chat.setLogLevel 各个级别是什么含义?
|
|
71
|
+
- 生产环境 IM SDK 日志级别怎么设置?
|
|
72
|
+
- 为什么设置了 setLogLevel 还有初始化日志?
|
|
73
|
+
|
|
74
|
+
## 9. 参考来源(可选)
|
|
75
|
+
|
|
76
|
+
- Web Chat SDK setLogLevel 接口说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#setLogLevel`
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 桌面版微信小程序运行 IM SDK 报错(tencent_cloud_im_csig_flutter_for_web_25F_cy is uniefined / WebSocket is not a constructor)与升级修复
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [miniprogram]
|
|
5
|
+
scope: platform_specific
|
|
6
|
+
tags: [桌面版微信, mac微信4.x, windows微信3.9.x, uniapp小程序, 微信原生小程序, WebSocket is not a constructor, tencent_cloud_im_csig, cannot read properties of undefined, tim-wx-sdk, "@tencentcloud/chat", "@tencentcloud/lite-chat", v2, v3, v4, 版本升级, 兼容性]
|
|
7
|
+
version_range: ">=3.5.7"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 桌面版微信小程序运行 IM SDK 报错(csig undefined / WebSocket is not a constructor)与升级修复
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 该问题的根因是桌面版微信(mac 4.x / windows 3.9.x)小程序底层 API 属性变更,导致 IM SDK 运行时环境识别异常。
|
|
15
|
+
- 两种报错是同一根因的不同表现:uniapp 打包的微信小程序报 `cannot read properties of undefined (reading 'tencent_cloud_im_csig_flutter_for_web_25F_cy')`;微信原生小程序报 `TypeError: WebSocket is not a constructor`。
|
|
16
|
+
- 该问题在 IM SDK v3(`3.5.7`)与 v4(`4.2.4`)中均已做兼容性处理,升级到对应大版本的最新版本即可修复。
|
|
17
|
+
- v2/v3/v4 接口向下兼容、可平滑迁移,但 v3、v4 各自存在 breaking change,升级前需评估对业务无风险后再执行。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `tim-wx-sdk` | v2 版本包名 | 旧版本,推荐升级到 v4 最新版本 |
|
|
24
|
+
| `@tencentcloud/chat` | v3 版本包名 | 已修复该问题(`>=3.5.7`);v3 不再迭代新功能 |
|
|
25
|
+
| `@tencentcloud/lite-chat` | v4 版本包名 | 已修复该问题(`>=4.2.4`);推荐版本 |
|
|
26
|
+
| `tencent_cloud_im_csig...` 属性缺失 | uniapp 小程序报错信号 | 桌面版微信底层 API 属性变更导致 undefined |
|
|
27
|
+
| `WebSocket is not a constructor` | 原生小程序报错信号 | 桌面版微信运行环境识别异常,构造函数不可用 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
桌面版微信升级(mac 4.x / windows 3.9.x) -> 小程序底层 API 属性发生变更 -> IM SDK 运行时环境识别异常 -> uniapp 打包小程序读取 `tencent_cloud_im_csig...` 属性时命中 undefined(报 `cannot read properties of undefined`)或原生小程序 `WebSocket` 构造异常(报 `WebSocket is not a constructor`) -> 升级到已做兼容处理的 v3(`>=3.5.7`)或 v4(`>=4.2.4`)后,SDK 正确识别桌面版微信运行环境,报错消失。
|
|
32
|
+
|
|
33
|
+
## 4. 标准用法
|
|
34
|
+
|
|
35
|
+
1. 确认当前使用的 IM SDK 版本与包名:v2(`tim-wx-sdk`)/ v3(`@tencentcloud/chat`)/ v4(`@tencentcloud/lite-chat`)。
|
|
36
|
+
2. 按当前版本选择升级目标:
|
|
37
|
+
- 当前 v4(`@tencentcloud/lite-chat`):升级到 v4 最新版本。
|
|
38
|
+
- 当前 v3(`@tencentcloud/chat`):升级到 v3 最新版本(v3 不再迭代新功能),或升级到 v4 最新版本。
|
|
39
|
+
- 当前 v2(`tim-wx-sdk`):升级到 v4 最新版本。
|
|
40
|
+
3. 升级前阅读对应迁移指南,评估 breaking change 对业务的影响:
|
|
41
|
+
- v3 重大变更:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-07-breakingchanges.html`
|
|
42
|
+
- v2 升 v3 说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-05-integration.html`
|
|
43
|
+
- v4 重大变更:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-04-comparison-v4.html`
|
|
44
|
+
- v3 升 v4 说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-03-integration-v4.html`
|
|
45
|
+
4. 完成升级并回归验证:在桌面版微信(mac 4.x / windows 3.9.x)上重新运行 uniapp 小程序与微信原生小程序,确认不再报错。
|
|
46
|
+
|
|
47
|
+
## 5. 结果判定
|
|
48
|
+
|
|
49
|
+
- 升级到 v3(`>=3.5.7`)或 v4(`>=4.2.4`)后,桌面版微信下 uniapp 小程序不再报 `cannot read properties of undefined (reading 'tencent_cloud_im_csig...')`。
|
|
50
|
+
- 微信原生小程序不再报 `TypeError: WebSocket is not a constructor`。
|
|
51
|
+
- IM SDK 在桌面版微信运行环境下可正常初始化并建立连接。
|
|
52
|
+
|
|
53
|
+
## 6. 常见误区
|
|
54
|
+
|
|
55
|
+
- 误区 1:认为是 uniapp 打包配置或业务代码 bug(实际是桌面版微信底层 API 属性变更导致的 SDK 环境识别异常)。
|
|
56
|
+
- 误区 2:只在手机端微信验证通过就认为无问题(该问题仅在桌面版微信 mac 4.x / windows 3.9.x 出现)。
|
|
57
|
+
- 误区 3:直接跨版本升级而不看 breaking change(v3、v4 各有 breaking change,需先评估业务影响)。
|
|
58
|
+
- 误区 4:混淆包名(v3 是 `@tencentcloud/chat`,v4 是 `@tencentcloud/lite-chat`,v2 是 `tim-wx-sdk`)。
|
|
59
|
+
|
|
60
|
+
## 7. 问题定义(检索辅助,极简)
|
|
61
|
+
|
|
62
|
+
uniapp 打包微信小程序或微信原生小程序在桌面版微信(mac 4.x / windows 3.9.x)运行 IM SDK 时,报 csig 属性 undefined 或 `WebSocket is not a constructor`。
|
|
63
|
+
|
|
64
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
65
|
+
|
|
66
|
+
- 桌面版微信小程序 IM SDK 报 WebSocket is not a constructor 怎么办?
|
|
67
|
+
- uniapp 小程序在 mac/windows 微信报 tencent_cloud_im_csig undefined?
|
|
68
|
+
- Windows 3.9 / Mac 4.x 微信运行小程序 IM 初始化失败?
|
|
69
|
+
- IM SDK 需要升级到哪个版本修复桌面版微信兼容问题?
|
|
70
|
+
- PC 微信小程序的 AppService 逻辑层没有原生 WebSocket 构造函数怎么解决?
|
|
71
|
+
- PC 端 tim-im app-service.js 报 WebSocket is not a constructor?
|
|
72
|
+
- 小程序逻辑层没有原生 WebSocket 构造函数 / WebSocket 构造函数不可用?
|
|
73
|
+
|
|
74
|
+
## 9. 参考来源(可选)
|
|
75
|
+
|
|
76
|
+
- v3 重大变更:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-07-breakingchanges.html`
|
|
77
|
+
- v2 升 v3 说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-05-integration.html`
|
|
78
|
+
- v4 重大变更:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-04-comparison-v4.html`
|
|
79
|
+
- v3 升 v4 说明:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/tutorial-03-integration-v4.html`
|