@tencentcloud/sdk-mcp 1.7.3 → 1.7.5

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.
Files changed (135) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +22 -23
  3. package/knowledge/path-meta.js +23 -1
  4. package/package.json +1 -1
  5. package/resource/index/manifest.json +1 -1
  6. package/resource/integration/callkit/preset/android/integration.md +4 -0
  7. package/resource/integration/callkit/preset/flutter/integration.md +8 -4
  8. package/resource/integration/callkit/preset/ios/integration.md +16 -15
  9. package/resource/integration/callkit/preset/react/integration.md +2 -2
  10. package/resource/integration/callkit/preset/vue/integration.md +9 -12
  11. package/resource/integration/chat/preset/android/integration.md +5 -147
  12. package/resource/integration/chat/preset/flutter/integration.md +22 -130
  13. package/resource/integration/chat/preset/ios/integration.md +12 -279
  14. package/resource/integration/chat/preset/react/integration.md +27 -1
  15. package/resource/integration/chat/preset/uni-app/integration.md +5 -1
  16. package/resource/integration/chat/preset/vue/integration.md +21 -31
  17. package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
  18. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
  19. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -3
  20. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
  21. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
  22. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
  23. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
  24. package/resource/integration/roomkit/preset/vue/integration.md +152 -652
  25. package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
  26. package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
  27. package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
  28. package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
  29. package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
  30. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +2 -2
  31. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -5
  32. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +7 -7
  33. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +10 -10
  34. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
  35. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +18 -16
  36. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +16 -14
  37. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
  38. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
  39. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +2 -86
  40. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +2 -104
  41. package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
  42. package/resource/knowledge/callkit/faq/android.md +4 -4
  43. package/resource/knowledge/callkit/faq/common.md +4 -4
  44. package/resource/knowledge/callkit/faq/error-code.md +62 -36
  45. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
  46. package/resource/knowledge/callkit/preset/android/api.md +10 -10
  47. package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
  48. package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
  49. package/resource/knowledge/callkit/preset/ios/api.md +9 -9
  50. package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
  51. package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
  52. package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
  53. package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
  54. package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
  55. package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
  56. package/resource/knowledge/chat/preset/android-view/integration.md +54 -102
  57. package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
  58. package/resource/knowledge/chat/preset/ios-uikit/integration.md +194 -926
  59. package/resource/knowledge/chat/preset/react/features/search.md +9 -214
  60. package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
  61. package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
  62. package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
  63. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
  64. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
  65. package/resource/knowledge/chat/preset/vue/features/message-input.md +4 -4
  66. package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
  67. package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
  68. package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +3 -3
  69. package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -3
  70. package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +3 -3
  71. package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -3
  72. package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +3 -3
  73. package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -3
  74. package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +3 -3
  75. package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +3 -170
  76. package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
  77. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +3 -3
  78. package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
  79. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +3 -3
  80. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +3 -3
  81. package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
  82. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +3 -3
  83. package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
  84. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +13 -78
  85. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +5 -70
  86. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +10 -10
  87. package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
  88. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -4
  89. package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
  90. package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
  91. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +4 -4
  92. package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +7 -7
  93. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
  94. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
  95. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
  96. package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
  97. package/resource/knowledge/push/api-reference/unity.md +10 -10
  98. package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
  99. package/resource/knowledge/push/config/donut.md +3 -3
  100. package/resource/knowledge/push/config/harmonyos.md +12 -12
  101. package/resource/knowledge/push/config/ios.md +2 -2
  102. package/resource/knowledge/push/integration/android.md +90 -1067
  103. package/resource/knowledge/push/integration/donut.md +11 -11
  104. package/resource/knowledge/push/integration/flutter.md +38 -24
  105. package/resource/knowledge/push/integration/harmonyos.md +1 -11
  106. package/resource/knowledge/push/integration/ios.md +29 -40
  107. package/resource/knowledge/push/integration/react-native.md +1 -1
  108. package/resource/knowledge/push/integration/uni-app.md +1 -1
  109. package/resource/knowledge/push/integration/unity.md +4 -4
  110. package/resource/knowledge/push/integration/unreal-engine.md +9 -9
  111. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +6 -6
  112. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +13 -13
  113. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +5 -5
  114. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
  115. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +6 -6
  116. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
  117. package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
  118. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
  119. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +3 -3
  120. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  121. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
  122. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
  123. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +3 -6
  124. package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +0 -15
  125. package/resource/knowledge/roomkit/preset/android/integration.md +5 -202
  126. package/resource/knowledge/roomkit/preset/flutter/integration.md +17 -13
  127. package/resource/knowledge/roomkit/preset/harmonyos/integration.md +10 -2
  128. package/resource/knowledge/roomkit/preset/ios/integration.md +7 -204
  129. package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
  130. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +244 -500
  131. package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
  132. package/server.js +1 -1
  133. package/utils/preflight-route.js +203 -185
  134. package/utils/report-cls-client.js +1 -1
  135. package/utils/report-es-client.js +1 -1
@@ -253,6 +253,10 @@ TUICallKit.createInstance(this).calls(userIdList, mediaType, params, new Complet
253
253
 
254
254
  接听端完成登录后,拨打端发起通话,接收端就可以收到通话邀请,同时伴随铃声和振动。
255
255
 
256
+ ## AI 助手:知识咨询与代码集成
257
+
258
+ 您在接入视频通话 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 CallKit 组件和无 UI SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
259
+
256
260
  ## 更多功能
257
261
 
258
262
  ### AI 转录与翻译
@@ -29,7 +29,7 @@ flutter pub add tencent_calls_uikit
29
29
  【Android】
30
30
  1. 由于 SDK 内部使用了 Java 反射机制(或特性),需要将部分 SDK 类加入不进行混淆处理的名单。
31
31
 
32
- - 请在工程的 `android/app/` 目录下找到 `build.gradle.kts`(或 `build.gradle` )文件中配置并开启混淆规则:
32
+ - 请在工程的 `android/app/` 目录下找到 `build.gradle.kts`(或 `build.gradle` )文件中配置并开启混淆规则:
33
33
 
34
34
  【build.gradle.kts】
35
35
  ``` java
@@ -58,7 +58,7 @@ android {
58
58
  }
59
59
 
60
60
  ```
61
- - 在工程的 `android/app` 目录下创建 `proguard-rules.pro` 文件,并在其中添加如下代码:
61
+ - 在工程的 `android/app` 目录下创建 `proguard-rules.pro` 文件,并在其中添加如下代码:
62
62
 
63
63
  ``` java
64
64
  -keep class com.tencent.** { *; }
@@ -101,9 +101,9 @@ android {
101
101
 
102
102
  为了确保 TUICallKit 能够正常管理页面导航和显示多语言界面,需要在 Flutter 应用框架中进行以下配置:
103
103
 
104
- - 在 `navigatorObservers` 中添加 `TUICallKit.navigatorObserver`,用于监听页面路由变化和管理组件生命周期。
104
+ - 在 `navigatorObservers` 中添加 `TUICallKit.navigatorObserver`,用于监听页面路由变化和管理组件生命周期。
105
105
 
106
- - 在 `localizationsDelegates` 中添加相关本地化代理,确保界面文案能够根据系统语言正确显示。
106
+ - 在 `localizationsDelegates` 中添加相关本地化代理,确保界面文案能够根据系统语言正确显示。
107
107
 
108
108
  ``` java
109
109
  import 'package:tencent_calls_uikit/tencent_calls_uikit.dart';
@@ -205,6 +205,10 @@ void _call() {
205
205
 
206
206
  接听端完成登录后,拨打端发起通话,接听端就可以收到通话邀请,同时伴随铃声和振动。
207
207
 
208
+ ## AI 助手:知识咨询与代码集成
209
+
210
+ 您在接入视频通话 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 CallKit 组件和无 UI SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
211
+
208
212
  ## 更多功能
209
213
 
210
214
  ### AI 转录与翻译
@@ -1,11 +1,5 @@
1
1
  本文将介绍如何快速接入 TUICallKit 组件。您可以在 10 分钟内完成以下关键步骤,最终获得一个功能完备的音视频通话界面。
2
2
 
3
- ## AI接入
4
-
5
- 本接入文档已通过 **CodeBuddy** 的工程化验证,完全适配 **MCP (Model Context Protocol)** 协议。如需通过 AI 辅助接入,
6
-
7
- “您现在是一名资深的 iOS 开发专家。请基于本文档,协助我在现有的 iOS 项目中接入音视频通话功能。”
8
-
9
3
  ## 准备工作
10
4
 
11
5
  ### 环境要求
@@ -152,15 +146,16 @@ func application(_ application: UIApplication, didFinishLaunchingWithOptions lau
152
146
  import TUICallKit_Swift
153
147
  import AtomicXCore
154
148
 
155
- TUICallKit.createInstance().setSelfInfo(nickname: "jack", avatar: "https:/****/user_avatar.png", completion: { result in
149
+ TUICallKit.createInstance().setSelfInfo(nickname: "jack", avatar: "https://****/user_avatar.png", completion: { result in
156
150
  switch result {
157
151
  case .success:
158
- // 成功处理
152
+ print("setSelfInfo success")
159
153
  case .failure(let error):
160
- // 失败处理:
154
+ print("setSelfInfo failed: \(error)")
155
+ @unknown default:
156
+ break
161
157
  }
162
158
  })
163
-
164
159
  ```
165
160
 
166
161
  |参数|类型|说明|
@@ -185,11 +180,13 @@ import AtomicXCore
185
180
  TUICallKit.createInstance().calls(userIdList: ["mike"], mediaType: .audio, params: nil, completion: { result in
186
181
  switch result {
187
182
  case .success:
188
- // 成功处理
183
+ print("calls success")
189
184
  case .failure(let error):
190
- // 失败处理
185
+ print("calls failed: \(error)")
186
+ @unknown default:
187
+ break
191
188
  }
192
- }
189
+ })
193
190
  ```
194
191
 
195
192
  |参数|类型|说明|
@@ -203,6 +200,10 @@ TUICallKit.createInstance().calls(userIdList: ["mike"], mediaType: .audio, param
203
200
 
204
201
  接听端完成登录后,拨打端发起通话,接听端就可以收到通话邀请,同时伴随铃声和振动。
205
202
 
203
+ ## AI 助手:知识咨询与代码集成
204
+
205
+ 您在接入视频通话 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 CallKit 组件和无 UI SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
206
+
206
207
  ## 更多功能
207
208
 
208
209
  ### AI 转录与翻译
@@ -366,9 +367,9 @@ TUICallKit.createInstance().enableMuteMode(enable: true)
366
367
 
367
368
  - **自定义离线推送铃声**:离线推送默认铃声是由系统决定的,如果您需要自定义铃声,请按以下步骤操作:
368
369
 
369
- 1. 准备自定义铃声:将您的铃声文件命名为 `phone_ringing.mp3`。
370
+ 1. 准备自定义铃声:将您的铃声文件命名为 `phone_ringing.mp3`。
370
371
 
371
- 2. 替换项目文件:替换项目中现有的[同名铃声文件](https://github.com/Tencent-RTC/TUIKit_iOS/blob/main/call/TUICallKit_Swift/Resources/AudioFile/phone_ringing.mp3)。
372
+ 2. 替换项目文件:替换项目中现有的[同名铃声文件](https://github.com/Tencent-RTC/TUIKit_iOS/blob/main/call/TUICallKit_Swift/Resources/AudioFile/phone_ringing.mp3)。
372
373
 
373
374
  ## 自定义您的 UI
374
375
 
@@ -246,9 +246,9 @@ try {
246
246
  ### 语言设置
247
247
  - **设置支持的语言**
248
248
 
249
- - **支持的语言:**目前支持**简体中文、英文、日文。**
249
+ - **支持的语言:**目前支持**简体中文、英文、日文。**
250
250
 
251
- - **切换语言:**TUICallKit 会优先获取浏览器语言,如果是中文,英文或者日文中的一种,则以浏览器语言为主,否则使用英文。如果想切换语言,可以使用 setLanguage 接口。以设置语言为英文示例代码如下**。**
251
+ - **切换语言:**TUICallKit 会优先获取浏览器语言,如果是中文,英文或者日文中的一种,则以浏览器语言为主,否则使用英文。如果想切换语言,可以使用 setLanguage 接口。以设置语言为英文示例代码如下**。**
252
252
 
253
253
  ``` javascript
254
254
 
@@ -9,21 +9,21 @@
9
9
 
10
10
  - **npm 包集成**
11
11
 
12
- - Vue3 开发环境,集成 [@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue) npm 包。
12
+ - Vue3 开发环境,集成 [@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue) npm 包。
13
13
 
14
- - Vue2.7 开发环境:集成 [@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2) npm 包。
14
+ - Vue2.7 开发环境:集成 [@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2) npm 包。
15
15
 
16
- - Vue2.6 开发环境:集成 [@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) + [@vue/composition-api](https://www.npmjs.com/package/@vue/composition-api) npm 包。
16
+ - Vue2.6 开发环境:集成 [@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) + [@vue/composition-api](https://www.npmjs.com/package/@vue/composition-api) npm 包。
17
17
 
18
18
  - **源码集成**
19
19
 
20
- - Vue3 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue) npm 包拷贝源码。
20
+ - Vue3 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue](https://www.npmjs.com/package/@trtc/calls-uikit-vue) npm 包拷贝源码。
21
21
 
22
- - Vue2.7 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2) npm 包拷贝源码。
22
+ - Vue2.7 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue2](https://www.npmjs.com/package/@trtc/calls-uikit-vue2) npm 包拷贝源码。
23
23
 
24
- - Vue2.6 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) npm 包拷贝源码。
24
+ - Vue2.6 + TypeScript 开发环境:从 [@trtc/calls-uikit-vue2.6](https://www.npmjs.com/package/@trtc/calls-uikit-vue2.6) npm 包拷贝源码。
25
25
 
26
- - 需要:Vue2.6 + [unplugin-vue2-script-setup](https://www.npmjs.com/package/unplugin-vue2-script-setup) + [@vue/composition-api](https://www.npmjs.com/package/@vue/composition-api) 。
26
+ - 需要:Vue2.6 + [unplugin-vue2-script-setup](https://www.npmjs.com/package/unplugin-vue2-script-setup) + [@vue/composition-api](https://www.npmjs.com/package/@vue/composition-api) 。
27
27
 
28
28
  > **注意:**
29
29
  >
@@ -173,9 +173,6 @@ const init = async () => {
173
173
  }
174
174
  </script>
175
175
 
176
- <style scoped>
177
- .demo-wrapper { max-width: 680px; margin: 40px auto; padding: 0 20px; font-family: system-ui, -apple-system, sans-serif; } .demo-card { background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); padding: 32px; margin-bottom: 24px; } .demo-title { margin: 0 0 28px; font-size: 22px; font-weight: 600; color: #1a1a2e; text-align: center; } .form-row { margin-bottom: 18px; } .form-row:last-of-type { margin-bottom: 0; } .form-label { display: block; font-size: 14px; font-weight: 600; color: #6b7280; letter-spacing: 0.5px; margin-bottom: 8px; } .form-controls { display: flex; gap: 10px; } .form-input { flex: 1; height: 42px; padding: 0 14px; border: 1.5px solid #e5e7eb; border-radius: 10px; font-size: 15px; color: #1a1a2e; background: #fafafa; outline: none; transition: border-color .2s, box-shadow .2s; } .form-input:focus { border-color: #6366f1; box-shadow: 0 0 0 3px rgba(99,102,241,0.15); background: #fff; } .form-input::placeholder { color: #c0c4cc; } .btn { height: 42px; padding: 0 20px; border: none; border-radius: 10px; font-size: 14px; font-weight: 600; cursor: pointer; white-space: nowrap; transition: transform .15s, box-shadow .2s, background .2s; } .btn:active { transform: scale(0.97); } .btn-primary { background: linear-gradient(135deg, #6366f1, #818cf8); color: #fff; box-shadow: 0 2px 8px rgba(99,102,241,0.3); } .btn-primary:hover { background: linear-gradient(135deg, #4f46e5, #6366f1); box-shadow: 0 4px 14px rgba(99,102,241,0.4); } .btn-success { background: linear-gradient(135deg, #10b981, #34d399); color: #fff; box-shadow: 0 2px 8px rgba(16,185,129,0.3); } .btn-success:hover { background: linear-gradient(135deg, #059669, #10b981); box-shadow: 0 4px 14px rgba(16,185,129,0.4); } .callkit-area { background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,0.08); overflow: hidden; }
178
- </style>
179
176
  ```
180
177
 
181
178
  【Vue2.7】
@@ -424,9 +421,9 @@ try {
424
421
  ### 语言设置
425
422
  - **设置支持的语言**
426
423
 
427
- - **支持的语言:**目前支持**简体中文、英文、日文。**
424
+ - **支持的语言:**目前支持**简体中文、英文、日文。**
428
425
 
429
- - **切换语言:**TUICallKit 会优先获取浏览器语言,如果是中文,英文或者日文中的一种,则以浏览器语言为主,否则使用英文。如果想切换语言,可以使用 setLanguage 接口。以设置语言为英文示例代码如下:
426
+ - **切换语言:**TUICallKit 会优先获取浏览器语言,如果是中文,英文或者日文中的一种,则以浏览器语言为主,否则使用英文。如果想切换语言,可以使用 setLanguage 接口。以设置语言为英文示例代码如下:
430
427
 
431
428
  ``` javascript
432
429
 
@@ -24,9 +24,9 @@ TUIKit Compose 提供了一套完整的即时通信 UI 组件,向下依赖 Ato
24
24
 
25
25
  - 一个有效的腾讯云账号及 Chat 应用。可参考 开通服务 从控制台获取以下信息:
26
26
 
27
- - SDKAppID:App 在控制台获取的 Chat 应用的 ID,为应用的唯一标识
27
+ - SDKAppID:App 在控制台获取的 Chat 应用的 ID,为应用的唯一标识
28
28
 
29
- - SDKSecretKey:应用的密钥
29
+ - SDKSecretKey:应用的密钥
30
30
 
31
31
  > **说明:**
32
32
  >
@@ -40,7 +40,7 @@ TUIKit Compose 提供了一套完整的即时通信 UI 组件,向下依赖 Ato
40
40
  ## 集成并引入组件
41
41
 
42
42
  > **说明:**
43
- > Demo:[CNB 完整 Demo(国内)](https://cnb.cool/tencent/cloud/trtc/TUIKit_Android_Compose) 或者 [GitHub 完整 Demo](https://github.com/Tencent-RTC/TUIKit_Android_Compose) 开箱即用,5 分钟跑通聊天 + 音视频通话全功能。
43
+ > Demo:IM 提供在 [CNB](https://cnb.cool/tencent/cloud/trtc/TUIKit_Android_Compose) 及 [GitHub](https://github.com/Tencent-RTC/TUIKit_Android_Compose) 上提供即时通信完整 Demo,您可以 5 分钟跑通聊天、音视频通话全功能,开箱即用。
44
44
  >
45
45
 
46
46
  ### 下载源码
@@ -265,46 +265,7 @@ LoginStore.shared.login(context, SDKAPPID, userID, userSig,
265
265
  > 在正式的生产环境中,请在您的服务端生成 UserSig,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig 来进行鉴权。详见 [服务端生成 UserSig](https://cloud.tencent.com/document/product/269/32688)。
266
266
  >
267
267
 
268
- ### 步骤3:构建会话列表界面
269
-
270
- 您可以基于 TUIKit Compose 中的 ConversationList 组件,构建一个会话列表页面。ConversationList 内建的功能是:
271
- - 展示用户的会话列表,包含单聊和群聊会话
272
-
273
- - 支持用户操作单个会话:置顶、删除、清空会话消息等
274
-
275
- 将 ConversationList 封装为会话列表页,可参考 `chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ConversationsPage.kt` 文件里的实现,`ConversationsPage` 主要做了以下工作:
276
-
277
- 1. 在 ConversationList 上方添加了 headerView。
278
-
279
- 2. 传递点击会话列表 cell 事件。
280
-
281
- 核心示例代码如下所示:
282
-
283
- ``` swift
284
- @Composable
285
- fun ConversationsPage(
286
- onConversationClick: (ConversationInfo) -> Unit = {},
287
- editContent: @Composable () -> Unit = {},
288
- ) {
289
- val colors = LocalTheme.current.colors
290
- Column(
291
- modifier = Modifier
292
- .fillMaxSize()
293
- .background(Colors.Transparent)
294
- ) {
295
-
296
- PageHeader(stringResource(R.string.chat_uikit_chat)) {
297
- editContent()
298
- }
299
-
300
- Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
301
- ConversationList(modifier = Modifier.navigationBarsPadding(), onConversationClick = onConversationClick)
302
- }
303
- }
304
- }
305
- ```
306
-
307
- ### 步骤4:构建聊天界面
268
+ ### 步骤3:构建聊天界面
308
269
 
309
270
  您可以基于 TUIKit Compose 中的 MessageList、MessageInput 组件,构建一个聊天页面。
310
271
 
@@ -382,112 +343,10 @@ MessageList 内建的功能是:
382
343
  }
383
344
  ```
384
345
 
385
- ### 步骤5:构建联系人界面
386
-
387
- 您可以基于 TUIKit Compose 中的 ContactList 组件,构建一个联系人页面。ContactList 内建的功能是:
388
- - 查看好友申请列表。
389
-
390
- - 查看已加入的群列表。
391
-
392
- - 处理群组邀请和申请。
393
-
394
- - 管理黑名单列表。
395
-
396
- - 查看好友。
397
-
398
- 将 ContactList 封装为联系人列表页,可参考 `chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ContactsPage.kt` 文件里的实现,`ContactsPage` 主要做了以下工作:
399
-
400
- 1. 在 ContactList 上方添加了 headerView。
401
-
402
- 2. 传递点击联系人列表 cell 事件。
403
-
404
- 核心示例代码如下所示:
405
-
406
- ``` swift
407
- @Composable
408
- fun ContactsPage(
409
- onContactClick: (ContactInfo) -> Unit = {},
410
- onGroupClick: (ContactInfo) -> Unit = {},
411
- editContent: @Composable () -> Unit = {},
412
- ) {
413
-
414
- val colors = LocalTheme.current.colors
415
- Column(
416
- modifier = Modifier
417
- .fillMaxSize()
418
- .background(Colors.Transparent)
419
- ) {
420
- PageHeader(stringResource(R.string.chat_uikit_contacts)) {
421
- editContent()
422
- }
423
-
424
- Box(
425
- modifier = Modifier
426
- .fillMaxSize()
427
- .navigationBarsPadding(), contentAlignment = Alignment.Center
428
- ) {
429
- ContactList(onGroupClick = onGroupClick, onContactClick = onContactClick)
430
- }
431
- }
432
- }
433
- ```
434
-
435
- ### 步骤6:完善界面间的跳转逻辑
436
-
437
- ConversationsPage、ChatPage、ContactsPage 中暴露了一些用户点击事件,您可以自定义事件来实现页面间的交互:
438
- | Page | 回调 | 建议跳转逻辑 |
439
- | --- | --- | --- |
440
- | <strong>ConversationsPage</strong> | <code>onConversationClick: (ConversationInfo) -> Unit</code> | 点击会话列表中的会话时触发,建议跳转到聊天页面(ChatPage)。 |
441
- | <strong>ContactsPage</strong> | <code>onContactClick: (ContactInfo) -> Unit</code> | 点击联系人 cell 时触发,建议跳转用户信息页(C2CChatSetting)。 |
442
- | <code>onGroupClick: (ContactInfo) -> Unit</code> | 点击群组 cell 时触发,建议跳转群聊页面(ChatPage)。 | |
443
- | <strong>ChatPage</strong> | <code>onUserClick: (String) -> Unit</code> | 点击消息中的用户头像或昵称时触发,建议跳转用户信息页(C2CChatSetting)。 |
444
- | <code>onChatHeaderClick: (String) -> Unit</code> | 点击导航栏中的头像时触发,建议跳转用户信息页(C2CChatSetting)或群聊信息页(GroupChatSetting) | |
445
- | <code>onBackClick: () -> Unit</code> | 点击返回按钮时触发,建议返回上一级页面。 | |
446
-
447
- **chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt** 和 **chat/demo/app/src/main/java/io/trtc/tuikit/chat/chat/ChatActivity.kt** 作为上述 Page 的粘合层,实现了各个 Page 的回调事件,核心示例代码如下:
448
- ``` java
449
- // chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt
450
-
451
- // 点击会话列表 cell 跳转
452
- ConversationsPage(onConversationClick = {
453
- activity?.startActivity(
454
- Intent(activity, ChatActivity::class.java).apply {
455
- putExtra("conversationID", it.conversationID)
456
- }
457
- )
458
- })
459
-
460
- // 点击联系人页面跳转
461
- ContactsPage(onGroupClick = {
462
- ChatSettingActivity.start(context, "", it.contactID, true)
463
- }, onContactClick = {
464
- ChatSettingActivity.start(context, it.contactID, "", true)
465
- })
466
- ```
467
-
468
- ``` java
469
- // chat/demo/app/src/main/java/io/trtc/tuikit/chat/chat/ChatActivity.kt
470
-
471
- // 点击聊天页面跳转
472
- ChatPage(
473
- conversationID = conversationID,
474
- locateMessage = message,
475
- onUserClick = {
476
- handleChatSettingNavigation(it)
477
- }, onChatHeaderClick = {
478
- val userID = getUserID(conversationID)
479
- val groupID = getGroupID(conversationID)
480
- handleChatSettingNavigation(userID, groupID)
481
- }, onBackClick = { finish() })
482
- ```
483
-
484
- 您可以参考上述回调说明及参考代码,实现 Page 之间交互逻辑。
485
-
486
- ### 步骤7:接入智能客服 Desk 用户端(可选)
346
+ ### 步骤4:接入智能客服 Desk 用户端
487
347
 
488
348
  若需同时集成智能客服 Desk 用户端,请先 [开通智能客服 Desk 服务](https://cloud.tencent.com/document/product/269/96059),并根据 [Android 接入智能客服用户端](https://cloud.tencent.com/document/product/269/110809) 文档完成 `com.tencentcloud.desk:aideskcustomer` 包引入和配置。即可在您的应用中引入客服会话能力。
489
349
  ``` java
490
-
491
350
  int SDKAppID = 0; // 开通了智能客服 Desk 的应用 ID
492
351
  String userID = "";
493
352
  String userSig = "";
@@ -513,7 +372,6 @@ TencentAiDeskCustomer.getInstance().initWithProfile(context, SDKAppID, userID, u
513
372
  @Override
514
373
  public void onError(int code, String desc) {}
515
374
  });
516
-
517
375
  ```
518
376
 
519
377
  ## 常见问题
@@ -32,9 +32,9 @@ TUIKit 提供了一套完整的即时通信 UI 组件,向下依赖 AtomicXCore
32
32
 
33
33
  - 一个有效的腾讯云账号及 Chat 应用。可参考 开通服务 从控制台获取以下信息:
34
34
 
35
- - SDKAppID:App 在控制台获取的 Chat 应用的 ID,为应用的唯一标识。
35
+ - SDKAppID:App 在控制台获取的 Chat 应用的 ID,为应用的唯一标识。
36
36
 
37
- - SDKSecretKey:应用的密钥。
37
+ - SDKSecretKey:应用的密钥。
38
38
 
39
39
  > **说明:**
40
40
  >
@@ -261,6 +261,7 @@ final result = await LoginStore.shared.login(
261
261
  );
262
262
  if (result.errorCode == 0) {
263
263
  // 登录成功,可跳转聊天或会话页
264
+ TUICallKit.instance.login(SDKAPPID, userID, userSig);
264
265
  } else {
265
266
  // 登录失败,可弹框报错
266
267
  }
@@ -270,63 +271,7 @@ if (result.errorCode == 0) {
270
271
  > 在正式的生产环境中,请在您的服务端生成 UserSig,在需要 UserSig 时由您的 App 向业务服务器发起请求获取动态 UserSig 来进行鉴权。详见 [服务端生成 UserSig](https://cloud.tencent.com/document/product/269/32688)。
271
272
  >
272
273
 
273
- ### 步骤3:构建会话列表界面
274
-
275
- 您可以基于 TUIKit Flutter 中的 ConversationList 组件,构建一个会话列表页面。ConversationList 内建的功能是:
276
- - 展示用户的会话列表,包含单聊和群聊会话
277
-
278
- - 支持用户操作单个会话:置顶、删除、清空会话消息等
279
-
280
- 将 ConversationList 封装为会话列表页,可参考 `chat/uikit/lib/src/pages/conversations_page.dart` 文件里的实现,`ConversationsPage` 主要做了以下工作:
281
-
282
- 1. 在 ConversationList 上方添加了 AppBar。
283
-
284
- 2. 实现点击会话列表 cell 事件。
285
-
286
- 3. 支持创建会话和群组功能:
287
-
288
- 1. 点击右上角按钮可以创建新会话或群组
289
-
290
- 2. 支持从联系人列表选择好友创建单聊
291
-
292
- 3. 支持选择多个好友创建群聊
293
-
294
- 核心示例代码如下所示:
295
-
296
- ``` java
297
- @override
298
- Widget build(BuildContext context) {
299
- return Scaffold(
300
- appBar: AppBar(
301
- backgroundColor: colorsTheme.bgColorOperate,
302
- title: Text(atomicLocale.chat, style: TextStyle(fontSize: 34, fontWeight: FontWeight.w600)),
303
- centerTitle: false,
304
- scrolledUnderElevation: 0,
305
- actions: [],
306
- ),
307
- body: Column(
308
- children: [
309
- Expanded(
310
- child: ConversationList(
311
- onConversationClick: (conversation) {
312
- Navigator.push(
313
- context,
314
- MaterialPageRoute(
315
- builder: (context) => ChatPage(
316
- conversation: conversation,
317
- ),
318
- ),
319
- );
320
- },
321
- ),
322
- ),
323
- ],
324
- ),
325
- );
326
- }
327
- ```
328
-
329
- ### 步骤4:构建聊天界面
274
+ ### 步骤3:构建聊天界面
330
275
 
331
276
  您可以基于 TUIKit Flutter 中的 MessageList、MessageInput 组件,构建一个聊天页面。
332
277
 
@@ -402,82 +347,14 @@ MessageList 内建的功能是:
402
347
  }
403
348
  ```
404
349
 
405
- ### 步骤5:构建联系人界面
406
-
407
- 您可以基于 TUIKit Flutter 中的 ContactList 组件,构建一个联系人页面。ContactList 内建的功能是:
408
- - 查看好友申请列表。
409
-
410
- - 查看已加入的群列表。
411
-
412
- - 处理群组邀请和申请。
413
-
414
- - 管理黑名单列表。
415
-
416
- - 查看好友。
417
-
418
- 将 ContactList 封装为联系人列表页,可参考 `chat/uikit/lib/src/pages/contacts_page.dart` 文件里的实现,`ContactsPage` 主要做了以下工作:
419
-
420
- 1. 在 ContactList 上方添加了 AppBar。
421
-
422
- 2. 实现点击联系人列表 cell 事件。
423
-
424
- 3. 支持添加联系人和添加群组:
425
-
426
- 1. 点击右上角 "+" 按钮可以添加联系人或群组
427
-
428
- 2. 支持根据 UserID 搜索目标联系人
350
+ ### 步骤4:音视频通话
429
351
 
430
- 3. 支持根据 GroupID 搜索目标群组
431
-
432
- 核心示例代码如下所示:
433
-
434
- ``` java
435
- @override
436
- Widget build(BuildContext context) {
437
- AtomicLocalizations atomicLocale = AtomicLocalizations.of(context);
438
- SemanticColorScheme colorsScheme = BaseThemeProvider.colorsOf(context);
439
- return Scaffold(
440
- appBar: AppBar(
441
- backgroundColor: colorsScheme.bgColorOperate,
442
- title: Text(atomicLocale.contact, style: TextStyle(fontSize: 34, fontWeight: FontWeight.w600),),
443
- centerTitle: false,
444
- scrolledUnderElevation: 0,
445
- actions: [],
446
- ),
447
- body: ContactList(
448
- onGroupClick: (ContactInfo contactInfo) {
449
- _onGroupClick(context, contactInfo);
450
- },
451
- onContactClick: (ContactInfo contactInfo) {
452
- _onContactClick(context, contactInfo);
453
- },
454
- ),
455
- );
456
- }
457
- ```
458
-
459
- ### 步骤6:完善界面间的跳转逻辑
460
-
461
- ConversationsPage、ChatPage、ContactsPage 中实现了默认的用户点击事件,您可以自定义事件来实现页面间的交互:
462
- | Page | 回调 | 建议跳转逻辑 |
463
- | --- | --- | --- |
464
- | <strong>ConversationsPage</strong> | <code>onConversationClick: (conversation) {}</code> | 点击会话列表中的会话时触发,建议跳转到聊天页面(ChatPage)。 |
465
- | <strong>ContactsPage</strong> | <code>onContactClick: (ContactInfo contactInfo) {}</code> | 点击联系人 cell 时触发,建议跳转到用户信息页(C2CChatSetting)。 |
466
- | <code>onGroupClick: (ContactInfo contactInfo) {}</code> | 点击群组 cell 时触发,建议跳转到群聊页面(ChatPage)。 | |
467
- | <strong>ChatPage</strong> | <code>onUserClick: (String userID) {}</code> | 点击消息中的用户头像或昵称时触发,建议跳转到用户信息页(C2CChatSetting)。 |
468
- | <code>onChatHeaderClick: () {}</code> | 点击导航栏中的头像时触发,建议跳转到用户信息页(C2CChatSetting)或群聊信息页(GroupChatSetting) | |
469
- | <code>onBackClick: () {}</code> | 点击返回按钮时触发,建议返回上一级页面。 | |
470
-
471
- 您可以参考上述回调说明及代码,实现 Page 之间交互逻辑。
472
-
473
- ### 步骤7:音视频通话(推荐)
474
-
475
- 在聊天中支持音视频通话,请先 [开通音视频服务](https://console.cloud.tencent.com/im),登录后即可在 Chat 组件中正常使用该功能。
352
+ 在 `LoginStore` 登录成功后,登录 `TUICallKit` 即可在 Chat 组件中正常使用该功能。如需开通音视频通话服务,
476
353
  ``` javascript
477
354
  TUICallKit.instance.login(SDKAPPID, userID, userSig);
478
355
  ```
479
356
 
480
- ### 步骤8:接入智能客服 Desk 用户端(可选)
357
+ ### 步骤5:接入智能客服 Desk 用户端
481
358
 
482
359
  若需同时集成智能客服 Desk 用户端,请先 [开通智能客服 Desk 服务](https://cloud.tencent.com/document/product/269/96059),并根据 [Flutter 接入智能客服用户端](https://cloud.tencent.com/document/product/269/113293) 文档完成 `tencentcloud_ai_desk_customer` 包引入和配置,即可在您的应用中引入客服会话能力。
483
360
  ``` java
@@ -509,3 +386,18 @@ TencentCloudAIDeskCustomer.navigate(
509
386
 
510
387
  请检查 SDKAppID 和 UserSig 是否正确,UserSig 是否已过期。可以参考上文 配置用户鉴权 重新生成 UserSig。
511
388
 
389
+ ### **如何移除音视频通话功能?**
390
+
391
+ 如果您不需要集成音视频通话功能,请在 `pubspec.yaml` 文件中移除 `tencent_calls_uikit` 依赖,并在 步骤3 构建聊天界面 中关闭音视频通话开关,代码如下所示:
392
+ ``` javascript
393
+ ChatMessageInputConfig messageInputConfig = const ChatMessageInputConfig(
394
+ isShowAudioCall: false,
395
+ isShowVideoCall: false,
396
+ );
397
+ MessageInput(
398
+ key: _messageInputKey,
399
+ conversationID: widget.conversation.conversationID,
400
+ config: widget.messageInputConfig,
401
+ ),
402
+ ```
403
+