@tencentcloud/sdk-mcp 1.7.0 → 1.7.2

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 (86) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +11 -6
  3. package/knowledge/doc-url-resolver.js +70 -19
  4. package/knowledge/search/exact-lookup.js +116 -18
  5. package/knowledge/search/intent-router.js +21 -5
  6. package/knowledge/search/l1-enrich.js +159 -0
  7. package/knowledge/search/query-normalizer.js +8 -1
  8. package/knowledge/search/search-core.js +27 -8
  9. package/knowledge/search/search-knowledge.js +159 -46
  10. package/knowledge/search/search-message.js +37 -36
  11. package/knowledge/search/url-row-idf.js +120 -0
  12. package/knowledge/search/url-row-scorer.js +306 -227
  13. package/package.json +3 -1
  14. package/resource/index/manifest.json +1 -1
  15. package/resource/integration/callkit/preset/flutter/integration.md +7 -3
  16. package/resource/integration/chat/preset/android/integration.md +1 -0
  17. package/resource/integration/chat/preset/flutter/integration.md +110 -10
  18. package/resource/integration/chat/preset/ios/integration.md +1 -0
  19. package/resource/integration/chat/preset/react/integration.md +1 -0
  20. package/resource/integration/chat/preset/uni-app/integration.md +1 -0
  21. package/resource/integration/chat/preset/vue/integration.md +1 -0
  22. package/resource/integration/livekit/preset/live/android/prepare-integration.md +1 -0
  23. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +2 -2
  24. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +3 -3
  25. package/resource/integration/roomkit/preset/vue/integration.md +1 -0
  26. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -0
  27. package/resource/knowledge/callkit/core-sdk/android/make-call.md +1 -0
  28. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1 -0
  29. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1 -0
  30. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1 -0
  31. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1 -0
  32. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
  33. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +1 -0
  34. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1 -0
  35. package/resource/knowledge/callkit/faq/flutter.md +1 -0
  36. package/resource/knowledge/callkit/faq/uniapp-app.md +1 -0
  37. package/resource/knowledge/chat/preset/android-view/integration.md +1 -0
  38. package/resource/knowledge/chat/preset/ios-uikit/integration.md +1 -0
  39. package/resource/knowledge/chat/preset/react/features/message-input.md +61 -3
  40. package/resource/knowledge/chat/preset/react/features/message-list.md +7 -0
  41. package/resource/knowledge/chat/preset/vue/features/message-input.md +58 -5
  42. package/resource/knowledge/chat/preset/vue/features/message-list.md +7 -0
  43. package/resource/knowledge/chat/urls/product.md +8 -8
  44. package/resource/knowledge/chat/urls/restapi.md +3 -3
  45. package/resource/knowledge/chat/urls/sdk/android.md +5 -5
  46. package/resource/knowledge/chat/urls/sdk/flutter.md +5 -5
  47. package/resource/knowledge/chat/urls/sdk/ios.md +5 -5
  48. package/resource/knowledge/chat/urls/sdk/web.md +7 -7
  49. package/resource/knowledge/chat/urls/webhook.md +11 -17
  50. package/resource/knowledge/push/config/harmonyos.md +1 -1
  51. package/resource/knowledge/push/config/ios.md +2 -2
  52. package/resource/knowledge/push/integration/android.md +1 -0
  53. package/resource/knowledge/push/integration/donut.md +2 -2
  54. package/resource/knowledge/push/integration/flutter.md +1 -0
  55. package/resource/knowledge/push/integration/harmonyos.md +1 -1
  56. package/resource/knowledge/push/integration/ios.md +1 -0
  57. package/resource/knowledge/push/integration/uni-app.md +1 -0
  58. package/resource/knowledge/push/integration/unity.md +4 -4
  59. package/resource/knowledge/push/integration/unreal-engine.md +37 -35
  60. package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +1 -0
  61. package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +1 -0
  62. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +1 -0
  63. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +1 -0
  64. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +1 -0
  65. package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +1 -0
  66. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +1 -0
  67. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +1 -0
  68. package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +1 -0
  69. package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +1 -0
  70. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +1 -0
  71. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +1 -0
  72. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -0
  73. package/resource/knowledge/roomkit/preset/react/integration.md +1 -0
  74. package/resource/knowledge/trtc/android/TRTCCloud.md +1 -0
  75. package/resource/knowledge/trtc/c++/ITRTCCloud.md +1 -0
  76. package/resource/knowledge/trtc/ios/TRTCCloud.md +1 -0
  77. package/server.js +4 -4
  78. package/streamable-http.js +19 -54
  79. package/tools/common/finalize_answer.js +1 -9
  80. package/tools/common/search_trtc_knowledge.js +25 -11
  81. package/tools/definitions/finalize_answer_def.js +2 -2
  82. package/tools/definitions/search_trtc_knowledge_def.js +4 -2
  83. package/utils/fetch-doc-content.js +198 -0
  84. package/utils/preflight-route.js +197 -0
  85. package/utils/report-cls-client.js +1 -1
  86. package/utils/report-es-client.js +1 -1
@@ -1,5 +1,9 @@
1
1
  本文将介绍如何快速接入 TUICallKit 组件。您可以在 10 分钟内完成以下关键步骤,最终获得一个功能完备的音视频通话界面。
2
2
 
3
+ > **说明:**
4
+ > 您也可以使用 TRTC Agent Skill 辅助将 TUICallKit 接入现有 Flutter 项目。安装后,在项目目录中告诉 AI “帮我在当前 Flutter 项目中接入音视频通话”,AI 将分析项目结构,并协助完成依赖、工程配置、登录、通话入口接入及验证。
5
+ >
6
+
3
7
  ## 准备工作
4
8
 
5
9
  ### 环境要求
@@ -8,7 +12,7 @@ Flutter 3.24.0、Dart 3.5.0 及以上版本。
8
12
 
9
13
  ### 开通服务
10
14
 
11
- 在使用腾讯云提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤详细参见 开通服务。开通服务后,请记录`SDKAppID` 和`SDKSecretKey`,在后续的步骤(登录)中会用到。
15
+ 在使用腾讯云提供的音视频服务前,您需要前往控制台,为应用开通音视频服务。具体步骤详情参见 开通服务。开通服务后,请记录 `SDKAppID` 和 `SDKSecretKey`,在后续的步骤(登录)中会用到。
12
16
 
13
17
  ## 快速接入
14
18
 
@@ -25,7 +29,7 @@ flutter pub add tencent_calls_uikit
25
29
  【Android】
26
30
  1. 由于 SDK 内部使用了 Java 反射机制(或特性),需要将部分 SDK 类加入不进行混淆处理的名单。
27
31
 
28
- - 请在工程的`android/app/`目录下找到`build.gradle.kts`(或`build.gradle` )文件中配置并开启混淆规则:
32
+ - 请在工程的 `android/app/` 目录下找到 `build.gradle.kts`(或 `build.gradle` )文件中配置并开启混淆规则:
29
33
 
30
34
  【build.gradle.kts】
31
35
  ``` java
@@ -152,7 +156,7 @@ void login() async {
152
156
  |userSig|String|一种安全保护签名,用于对用户进行登录鉴权认证,确认用户是否真实,阻止恶意攻击者盗用您的云服务使用权。|
153
157
 
154
158
  > **说明:**
155
- > - **开发环境**:如果您在本地开发调试阶段,可以采用本地 `GenerateTestUserSig.genTestSig`函数生成 userSig。该方法中 secretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。
159
+ > - **开发环境**:如果您在本地开发调试阶段,可以采用本地 `GenerateTestUserSig.genTestSig` 函数生成 userSig。该方法中 secretKey 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。
156
160
  > - **生产环境**:如果您的项目要发布上线,请采用 服务端生成 UserSig 的方式。
157
161
 
158
162
  ### 步骤4:设置昵称和头像 [可选]
@@ -519,3 +519,4 @@ TencentAiDeskCustomer.getInstance().initWithProfile(context, SDKAppID, userID, u
519
519
  #### **登录失败,提示签名错误?**
520
520
 
521
521
  请检查 SDKAppID 和 UserSig 是否正确,UserSig 是否已过期。可以参考上文 配置用户鉴权 重新生成 UserSig。
522
+
@@ -5,9 +5,9 @@ TUIKit Flutter 是基于腾讯云 IM SDK 的一套 Flutter UI 组件库,提供
5
5
  > **说明:**
6
6
  > **花 30 秒,帮 Flutter TUIKit 变得更好用!**
7
7
  >
8
- > 正在接入、已经跑通、还是卡住了?都欢迎你填写 [Flutter TUIKit 接入体验问卷](https://wj.qq.com/s2/27299252/ff84/)**。**
8
+ > 正在接入、已经跑通、还是卡住了?都欢迎您填写 [Flutter TUIKit 接入体验问卷](https://wj.qq.com/s2/27299252/ff84/)**。**
9
9
  >
10
- > **你的每一条卡点反馈和改进建议,官方都会及时跟进处理**。
10
+ > **您的每一条卡点反馈和改进建议,官方都会及时跟进处理**。
11
11
  >
12
12
 
13
13
  ## 关键概念
@@ -20,12 +20,16 @@ TUIKit 提供了一套完整的即时通信 UI 组件,向下依赖 AtomicXCore
20
20
  - AtomicXCore(数据层):提供数据管理和业务逻辑,包含各种 Store 和 Manager。
21
21
 
22
22
  ## 前提条件
23
+ - **支持平台:**Android、iOS、HarmonyOS。
24
+
23
25
  - Flutter >= 3.29.0 版本,Dart >= 3.7.0 版本,Kotlin >= 1.9版本。
24
26
 
25
27
  - Android Studio Ladybug 2024.2.1 及以上版本,Android Gradle Plugin 7.3.1 以上版本,JDK 17 版本。
26
28
 
27
29
  - Xcode 12.0 及以上版本。
28
30
 
31
+ - HarmonyOS:[Flutter-OH 3.35.7-ohos-release](https://gitcode.com/CPF-Flutter/flutter_flutter/tree/oh-3.35.7-release)、DevEco Studio 5.0+(可选)、HarmonyOS NEXT 真机 / 模拟器、hdc 命令行、ohpm。注意:标准 Flutter 不能构建鸿蒙 hap,必须使用 Flutter-OH 分支。
32
+
29
33
  - 一个有效的腾讯云账号及 Chat 应用。可参考 开通服务 从控制台获取以下信息:
30
34
 
31
35
  - SDKAppID:App 在控制台获取的 Chat 应用的 ID,为应用的唯一标识。
@@ -103,6 +107,8 @@ call/
103
107
 
104
108
  ### 配置项目
105
109
 
110
+ #### iOS
111
+
106
112
  在 iOS 端添加必要的权限配置。请打开 ios/Podfile ,在文件末尾新增如下权限代码:
107
113
  ``` objectivec
108
114
  post_install do |installer|
@@ -125,7 +131,9 @@ post_install do |installer|
125
131
  end
126
132
 
127
133
  ```
128
- - **清理 Gradle 全局配置(仅 Android 需要):**如果您本地存在 `~/.gradle/init.gradle`,运行如下命令:
134
+
135
+ #### Android
136
+ - **清理 Gradle 全局配置:**如果您本地存在 `~/.gradle/init.gradle`,运行如下命令:
129
137
 
130
138
  ``` bash
131
139
  # 或者直接删除:rm -f ~/.gradle/init.gradle
@@ -137,13 +145,104 @@ end
137
145
  > 如果您本地不存在 Gradle 全局配置文件 `~/.gradle/init.gradle`,请忽略。如果存在,并且该文件里配置有 `allprojects.repositories`,可以删除 `allprojects.repositories` 相关内容,或者删除 `~/.gradle/init.gradle`(建议备份文件),以免引起运行报错。
138
146
  >
139
147
 
140
- - **配置 JDK 17(仅 Android 需要):**在项目例如 `chat/demo` 目录下的 `gradle.properties` 里增加一条 `org.gradle.java.home`,用来配置 JDK 17 路径,请替换成您实际的 JDK 17 的完整路径。参考如下:
148
+ - **配置 JDK 17:**在项目例如 `chat/demo` 目录下的 `gradle.properties` 里增加一条 `org.gradle.java.home`,用来配置 JDK 17 路径,请替换成您实际的 JDK 17 的完整路径。参考如下:
141
149
 
142
150
  ``` bash
143
151
  # 请替换为您本地 JDK 17 的真实完整路径
144
152
  org.gradle.java.home=xx/Java/JavaVirtualMachines/jdk-17.0.6.jdk/Contents/Home
145
153
  ```
146
154
 
155
+ #### HarmonyOS
156
+ - 参考 [鸿蒙 Flutter 仓库文档](https://gitcode.com/CPF-Flutter/flutter_flutter/tree/oh-3.35.7-release) 的开发指南搭建环境。
157
+
158
+ - 在您项目的 `pubspec.yaml` 文件中依赖重写(dependency_overrides)鸿蒙适配的第三方库,参考 `chat/demo/pubspec.yaml` 文件:
159
+
160
+ ``` javascript
161
+ dependency_overrides:
162
+ # ... 已有的 override 保持不变 ...
163
+ # HarmonyOS 专用(仅在使用 Flutter-OH 构建时启用,构建 Android/iOS 时请注释掉)
164
+
165
+ path_provider:
166
+ git:
167
+ url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
168
+ path: "packages/path_provider/path_provider"
169
+ ref: "provider-v2.1.5-ohos-1.0.0"
170
+ shared_preferences:
171
+ git:
172
+ url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
173
+ path: "packages/shared_preferences/shared_preferences"
174
+ ref: "shared_preferences-v2.5.4-ohos-1.0.0"
175
+ url_launcher:
176
+ git:
177
+ url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
178
+ path: "packages/url_launcher/url_launcher"
179
+ ref: "url_launcher_v6.3.2-ohos-1.0.0"
180
+
181
+ ```
182
+ - 声明 HarmonyOS 权限,参考 `chat/demo/ohos/entry/src/main/module.json5` 在 `requestPermissions` 数组中加入所需权限。
183
+
184
+ ``` java
185
+ {
186
+ "module": {
187
+ "requestPermissions": [
188
+ // ===== system_grant(声明即得) =====
189
+ { "name": "ohos.permission.INTERNET" },
190
+ { "name": "ohos.permission.GET_NETWORK_INFO" },
191
+ { "name": "ohos.permission.VIBRATE" },
192
+ // ===== user_grant(需运行时申请,必须提供 reason 和 usedScene) =====
193
+ {
194
+ "name": "ohos.permission.CAMERA",
195
+ "reason": "$string:permission_reason_camera",
196
+ "usedScene": {
197
+ "abilities": [ "EntryAbility" ],
198
+ "when": "inuse"
199
+ }
200
+ },
201
+ {
202
+ "name": "ohos.permission.MICROPHONE",
203
+ "reason": "$string:permission_reason_microphone",
204
+ "usedScene": {
205
+ "abilities": [ "EntryAbility" ],
206
+ "when": "inuse"
207
+ }
208
+ },
209
+ {
210
+ "name": "ohos.permission.WRITE_IMAGEVIDEO",
211
+ "reason": "$string:permission_reason_write_media",
212
+ "usedScene": {
213
+ "abilities": [ "EntryAbility" ],
214
+ "when": "inuse"
215
+ }
216
+ },
217
+ {
218
+ "name": "ohos.permission.READ_PASTEBOARD",
219
+ "reason": "$string:permission_reason_read_pasteboard",
220
+ "usedScene": {
221
+ "abilities": [ "EntryAbility" ],
222
+ "when": "inuse"
223
+ }
224
+ }
225
+ ]
226
+ }
227
+ }
228
+
229
+ ```
230
+ - 在项目根目录 `ohos/build-profile.json5` 里启用 `useNormalizedOHMUrl`,否则会报“Bytecode HARs not supported when useNormalizedOHMUrl is not true”的错误。
231
+
232
+ ``` java
233
+ {
234
+ "app": {
235
+ "products": [{
236
+ "name": "default",
237
+ "buildOption": {
238
+ "arkOptions": { "useNormalizedOHMUrl": true }
239
+ }
240
+ }]
241
+ }
242
+ }
243
+
244
+ ```
245
+
147
246
  ## 接入步骤
148
247
 
149
248
  ### 步骤1:配置用户鉴权
@@ -386,16 +485,16 @@ import 'package:tencentcloud_ai_desk_customer/tencentcloud_ai_desk_customer.dart
386
485
  // 上述sdkAppID、userID和userSig三个参数, 可以同您登录腾讯云 IM 的保持一致, 也可以使用不同的应用和用户
387
486
 
388
487
  TencentCloudAIDeskCustomer.init(
389
- sdkAppID: SDKAppID, // 开通了智能客服 Desk 的应用 ID
390
- userID: userID, // 详情可参见腾讯云 IM 登录鉴权
391
- userSig: userSig, // 详情可参见腾讯云 IM 登录鉴权
488
+ sdkAppID: SDKAppID, // 开通了智能客服 Desk 的应用 ID
489
+ userID: userID, // 详情可参见腾讯云 IM 登录鉴权
490
+ userSig: userSig, // 详情可参见腾讯云 IM 登录鉴权
392
491
  );
393
492
 
394
493
  // 打开智能客服会话页面
395
494
  TencentCloudAIDeskCustomer.navigate(
396
- context: context, // BuildContext
397
- customerServiceID: "@customer_service_account", // 可选, 如不配置多客服号或修改默认的客服号 UserID, 可无需传入. 客服号 UserID 可从智能客服管理端查看: https://desk.qcloud.com/
398
- config: TencentCloudCustomerConfig(), // 可选针对该客服会话的特殊配置,具体参数及使用方式可查看该类注释. 此处仅需手动指定相比全局配置的增项和修改项即可,其余配置来自全局默认配置.
495
+ context: context, // BuildContext
496
+ customerServiceID: "@customer_service_account", // 可选, 如不配置多客服号或修改默认的客服号 UserID, 可无需传入. 客服号 UserID 可从智能客服管理端查看: https://desk.qcloud.com/
497
+ config: TencentCloudCustomerConfig(), // 可选针对该客服会话的特殊配置,具体参数及使用方式可查看该类注释. 此处仅需手动指定相比全局配置的增项和修改项即可,其余配置来自全局默认配置.
399
498
  );
400
499
  ```
401
500
 
@@ -408,3 +507,4 @@ TencentCloudAIDeskCustomer.navigate(
408
507
  ### **登录失败,提示签名错误怎么办?**
409
508
 
410
509
  请检查 SDKAppID 和 UserSig 是否正确,UserSig 是否已过期。可以参考上文 配置用户鉴权 重新生成 UserSig。
510
+
@@ -595,3 +595,4 @@ NSString *avatar = @"";
595
595
  #### **登录失败,提示签名错误怎么办?**
596
596
 
597
597
  请检查 SDKAppID 和 UserSig 是否正确,UserSig 是否已过期。可以参考上文“配置用户鉴权”重新生成 UserSig。
598
+
@@ -510,3 +510,4 @@ function onChatSettingClose() {
510
510
  - [chat-uikit-react npm](https://www.npmjs.com/package/@tencentcloud/chat-uikit-react)
511
511
 
512
512
  - [GitHub Demo](https://github.com/TencentCloud/chat-uikit-react)
513
+
@@ -544,3 +544,4 @@ import MessageInput, { DEFAULT_TOOLS } from '@/uni_modules/tuikit-atomic-x/compo
544
544
  const customToolList = computed(() => DEFAULT_TOOLS.filter(tool => tool.id !== 'videoCall' && tool.id !== 'voiceCall'));
545
545
  </script>
546
546
  ```
547
+
@@ -549,3 +549,4 @@ const isChatSettingShow = ref(false);
549
549
  ### GitHub
550
550
 
551
551
  [GitHub Demo](https://github.com/Tencent-RTC/TUIKit_Vue3/tree/main/demos/rtcube-vite-vue3)
552
+
@@ -256,3 +256,4 @@ class YourLoginService {
256
256
  ### 集成代码后还需要添加摄像头麦克风等权限的声明吗?
257
257
 
258
258
  不需要,TUILiveKit 中已经内置了摄像头麦克风等权限的声明,在接入过程中您无需再关心这些权限的声明。
259
+
@@ -131,8 +131,8 @@ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
131
131
  我们支持您根据项目需求对观众观看页面进行 UI 定制——除页面布局调整外,还可对**颜色主题、字体、圆角、输入框、弹框**等内容进行增删改;若需新增或替换按钮(Button)、图标(Icon)等控件,也可找到对应控件的指定位置源码,直接进行增加、删除、替换等操作,满足您的 UI 定制需要。
132
132
  | <strong>类别</strong> | <strong>功能</strong> | <strong>描述</strong> | <strong>组件详细定制指引</strong> |
133
133
  | --- | --- | --- | --- |
134
- | <strong>素材管理</strong> | 自定义素材管理区域展示 | <strong>支持:</strong><br>- <strong>调整展示 Icon 的大小、颜色或对 Icon 进行替换。</strong> | <a href="https://cloud.tencent.com/document/product/647/123838">媒体源配置面板</a> |
135
- | <strong>在线观众</strong> | 自定义观众信息展示 | <strong>支持:</strong><br>- <strong>展示或隐藏观众等级。</strong><br>- <strong>观众信息字体、颜色 UI 自定义设置。</strong><br>- <strong>替换为您需要的 Icon 风格。</strong> | <a href="https://cloud.tencent.com/document/product/647/123834">视频源编辑画板</a> |
134
+ | <strong>直播视频</strong> | 自定义直播视频区域展示 | <strong>支持:</strong><br>- <strong>调整展示 Icon 的大小、颜色或对 Icon 进行替换。</strong><br>- <strong>自定义视频挂件。</strong> | 直播视频组件 |
135
+ | <strong>在线观众</strong> | 自定义观众信息展示 | <strong>支持:</strong><br>- <strong>展示或隐藏观众等级。</strong><br>- <strong>观众信息字体、颜色 UI 自定义设置。</strong><br>- <strong>替换为您需要的 Icon 风格。</strong> | 观众列表 |
136
136
  | <strong>消息列表</strong> | 自定义消息弹幕区域展示 | <strong>支持:</strong><br>- <strong>展示或隐藏聊天输入区域。</strong><br>- <strong>支持 UI 定制聊天气泡风格、定制观众等级等内容。</strong> | <a href="https://cloud.tencent.com/document/product/647/123836">聊天弹幕组件</a> |
137
137
 
138
138
  ## 常见问题
@@ -660,9 +660,9 @@ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
660
660
  我们支持您根据项目需求对观众观看页面进行 UI 定制——除页面布局调整外,还可对**颜色主题、字体、圆角、输入框、弹框**等内容进行增删改;若需新增或替换按钮(Button)、图标(Icon)等控件,也可找到对应控件的指定位置源码,直接进行增加、删除、替换等操作,满足您的 UI 定制需要。
661
661
  | <strong>类别</strong> | <strong>功能</strong> | <strong>描述</strong> | <strong>组件详细定制指引</strong> |
662
662
  | --- | --- | --- | --- |
663
- | <strong>素材管理</strong> | 自定义素材管理区域展示 | <strong>支持:</strong><br>- <strong>调整展示 Icon 的大小、颜色或对 Icon 进行替换。</strong> | <a href="https://cloud.tencent.com/document/product/647/123838">媒体源配置面板</a> |
664
- | <strong>在线观众</strong> | 自定义观众信息展示 | <strong>支持:</strong><br>- <strong>展示/隐藏观众等级。</strong><br>- <strong>观众信息字体、颜色 UI 自定义设置。</strong><br>- <strong>替换为您需要的 Icon 风格。</strong> | <a href="https://cloud.tencent.com/document/product/647/123834">视频源编辑画板</a> |
665
- | <strong>消息列表</strong> | 自定义消息弹幕区域展示 | <strong>支持:</strong><br>- <strong>展示/隐藏聊天输入区域。</strong><br>- <strong>支持 UI 定制聊天气泡风格、定制观众等级等内容。</strong> | <a href="https://cloud.tencent.com/document/product/647/123836">聊天弹幕组件</a> |
663
+ | <strong>直播视频</strong> | 自定义直播视频区域展示 | <strong>支持:</strong><br>- <strong>调整展示 Icon 的大小、颜色或对 Icon 进行替换。</strong><br>- <strong>自定义视频挂件。</strong> | 直播视频组件 |
664
+ | <strong>在线观众</strong> | 自定义观众信息展示 | <strong>支持:</strong><br>- <strong>展示或隐藏观众等级。</strong><br>- <strong>观众信息字体、颜色 UI 自定义设置。</strong><br>- <strong>替换为您需要的 Icon 风格。</strong> | 观众列表 |
665
+ | <strong>消息列表</strong> | 自定义消息弹幕区域展示 | <strong>支持:</strong><br>- <strong>展示或隐藏聊天输入区域。</strong><br>- <strong>支持 UI 定制聊天气泡风格、定制观众等级等内容。</strong> | <a href="https://cloud.tencent.com/document/product/647/123836">聊天弹幕组件</a> |
666
666
 
667
667
  ## 下一步
668
668
 
@@ -849,3 +849,4 @@ TUIRoomKit 已提供丰富的 UI 自定义能力,包括 主题及语言、界
849
849
  // 请替换为 TUIRoomKit 源码真实路径
850
850
  src/components/RoomKit
851
851
  ```
852
+
@@ -827,3 +827,4 @@ class CallActivity : AppCompatActivity() {
827
827
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
828
828
 
829
829
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
830
+
@@ -912,3 +912,4 @@ MainScope().launch {
912
912
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
913
913
 
914
914
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
915
+
@@ -1122,3 +1122,4 @@ iOS 端支持通过底层 TRTC 引擎实现应用外画中画功能。当应用
1122
1122
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
1123
1123
 
1124
1124
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
1125
+
@@ -1195,3 +1195,4 @@ CallStore.shared.state.selfInfo.addListener(() {
1195
1195
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
1196
1196
 
1197
1197
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
1198
+
@@ -1171,3 +1171,4 @@ class CallViewController: UIViewController {
1171
1171
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
1172
1172
 
1173
1173
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
1174
+
@@ -1272,3 +1272,4 @@ private func observeSelfCallStatus() {
1272
1272
  ### 在通话邀请超时时间内,被邀请者如果离线再上线,能否收到来电事件?
1273
1273
 
1274
1274
  单人通话时,如果在超时时间内上线,会触发来电邀请;群组通话,如果在超时时间内上线,会拉起未处理的20条群消息,如果存在通话邀请,则触发来电邀请事件。
1275
+
@@ -1,4 +1,4 @@
1
- 本文档将指导您如何基于 TIMPush 服务实现 VoIP 推送功能,适用于使用 AtomicXCore 进行无 UI 集成的场景。
1
+ 本文档将指导您如何基于 [TIMPush](https://cloud.tencent.com/document/product/269/133003) 服务实现 VoIP 推送功能,适用于使用 AtomicXCore 进行无 UI 集成的场景。
2
2
 
3
3
  > **注意:**
4
4
  > - 使用 **VoIP** 推送功能首先需要 开通 TIMPush 服务。
@@ -930,3 +930,4 @@ Android 端可以通过 onBackPress 拦截系统侧滑和物理返回,示例
930
930
  });
931
931
  </script>
932
932
  ```
933
+
@@ -1038,3 +1038,4 @@ Android 端可以通过 onBackPress 拦截系统侧滑和物理返回,示例
1038
1038
  });
1039
1039
  </script>
1040
1040
  ```
1041
+
@@ -50,3 +50,4 @@ iOS 在执行`pod install`出现如下报错:
50
50
  3. 登录 API 调整更规范,不需要再指定参数。
51
51
 
52
52
  4. 离线推送参数构造优化。
53
+
@@ -85,3 +85,4 @@
85
85
  [uni-app 官网文档介绍](https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/android_Library) 第三方 SDK 使用 LiteAVSDK(weex_livepusher-release.aar)做直播推流,和 uniapp TUICallKit 使用的 LiteAVSDK_TRTC 类冲突。和 uni-app 技术沟通后,对方反馈不清楚 SDK 属于哪个版本类型,因此 uni-app 他们无法对 livepusher 进行升级。
86
86
 
87
87
  **解决方案:**
88
+
@@ -329,3 +329,4 @@ TencentAiDeskCustomer.getInstance().initWithProfile(context, SDKAppID, userID, u
329
329
  ##### 表情包的使用
330
330
 
331
331
  为了尊重版权,IM Demo/TUIKit 工程中默认不包含大表情元素切图。正式上线商用前请您替换为自己设计或拥有版权的其他表情包。下图所示默认的**小黄脸表情包版权归腾讯云所有**,可有偿授权使用,如需获得授权,您可以通过升级至 [IM 企业版套餐](https://buy.cloud.tencent.com/avc) 免费使用该表情包。
332
+
@@ -1165,3 +1165,4 @@ end
1165
1165
  ##### 表情包的使用
1166
1166
 
1167
1167
  为了尊重版权,IM Demo/TUIKit 工程中默认不包含大表情元素切图。正式上线商用前请您替换为自己设计或拥有版权的其他表情包。下图所示默认的**小黄脸表情包版权归腾讯云所有**,可有偿授权使用,如需获得授权,您可以通过升级至 [IM 企业版套餐](https://buy.cloud.tencent.com/avc) 免费使用该表情包。
1168
+
@@ -13,7 +13,8 @@ MessageInput 是一个功能完整的消息输入组件,提供了文本编辑
13
13
  |className|string|undefined|根容器自定义 CSS 类名|
14
14
  |style|React.CSSProperties|undefined|根容器自定义内联样式|
15
15
  |attachmentPickerMode|'collapsed' \| 'expanded'|'collapsed'|附件选择器显示模式|
16
- |actions|MessageInputActions|['EmojiPicker', 'AttachmentPicker']|工具栏操作按钮配置|
16
+ |actions|MessageInputActions|['EmojiPicker', 'FilePicker']|工具栏操作按钮配置|
17
+ |setOfflinePushInfo|(payload: SendMessagePayload) => OfflinePushInfo \| undefined|undefined|发送消息时修改携带的离线推送参数|
17
18
  |slots|MessageInputSlots|undefined|插槽配置对象|
18
19
  |TextEditor|JSX.Element|undefined|自定义文本编辑器组件|
19
20
  |EmojiPicker|JSX.Element|undefined|自定义表情选择器组件|
@@ -73,8 +74,8 @@ attachmentPickerMode 用于设置附件选择器的显示模式,默认值为 `
73
74
  >
74
75
  > 默认的 AttachmentPicker 意为附件选择器,包括文件选择、图片选择和视频选择。
75
76
  >
76
- > 1. 当 attachmentPickerModel 为 "collapsed" 时,点击附件选择器会弹出一个 popup 菜单展示文件选择、图片选择、视频选择。
77
- > 2. 当 attachmentPickerModel 为 "expanded" 时,附件选择器会默认展开,平铺展示文件选择、图片选择、视频选择。
77
+ > 1. 当 attachmentPickerMode 为 "collapsed" 时,点击附件选择器会弹出一个 popup 菜单展示文件选择、图片选择、视频选择。
78
+ > 2. 当 attachmentPickerMode 为 "expanded" 时,附件选择器会默认展开,平铺展示文件选择、图片选择、视频选择。
78
79
 
79
80
  ### actions
80
81
 
@@ -186,6 +187,63 @@ function CustomerServiceChat() {
186
187
  }
187
188
  ```
188
189
 
190
+ ### setOfflinePushInfo
191
+
192
+ 参数类型:`(payload: SendMessagePayload) => OfflinePushInfo | undefined`
193
+
194
+ setOfflinePushInfo 用于在发送前根据当前的消息内容设置自定义的离线推送参数。
195
+ ``` typescript
196
+ type SendMessagePayload = {
197
+ type: 'textMessage';
198
+ text: string;
199
+ } | {
200
+ type: 'customMessage';
201
+ customData: string;
202
+ description?: string;
203
+ extensionInfo?: string;
204
+ } | {
205
+ type: 'imageMessage';
206
+ file: File | HTMLInputElement;
207
+ width?: number;
208
+ height?: number;
209
+ } | {
210
+ type: 'audioMessage';
211
+ file: File | HTMLInputElement;
212
+ duration: number;
213
+ } | {
214
+ type: 'videoMessage';
215
+ file: File | HTMLInputElement;
216
+ duration: number;
217
+ snapshotFile?: File | HTMLInputElement;
218
+ snapshotWidth?: number;
219
+ snapshotHeight?: number;
220
+ } | {
221
+ type: 'fileMessage';
222
+ file: File | HTMLInputElement;
223
+ } | {
224
+ type: 'locationMessage';
225
+ description: string;
226
+ longitude: number;
227
+ latitude: number;
228
+ } | {
229
+ type: 'faceMessage';
230
+ index: number;
231
+ data: string;
232
+ };
233
+
234
+ interface OfflinePushInfo {
235
+ title: string;
236
+ description: string;
237
+ extensionInfo: {
238
+ disablePush: boolean;
239
+ disableVoipPush: boolean;
240
+ extension: string;
241
+ androidInfo: Record<string, any>;
242
+ apnsInfo: Record<string, any>;
243
+ };
244
+ }
245
+ ```
246
+
189
247
  ### slots
190
248
 
191
249
  参数类型: `MessageInputSlots`
@@ -10,6 +10,7 @@ MessageList 是一个功能强大的聊天消息列表组件,提供了完整
10
10
  | messageActionList | IMessageAction[] | ['copy', 'recall', 'quote', 'forward', 'delete'] | 自定义消息操作列表,例如复制、撤回、删除等。 |
11
11
  | messageAggregationTime | number | 300 (5分钟) | 消息聚合时间间隔(秒),相同发送者在此时间内的连续消息会被聚合显示。 |
12
12
  | filter | (message: MessageInfo) => boolean | undefined | 消息过滤函数,用于控制哪些消息需要显示。 |
13
+ | showSelfAvatar | boolean | false | 自己发出的消息是否展示头像。 |
13
14
  | className | string | undefined | 自定义 CSS 类名。 |
14
15
  | style | React.CSSProperties | undefined | 自定义内联样式。 |
15
16
  | Message | React.ComponentType | Message | 自定义消息组件。 |
@@ -175,6 +176,12 @@ function ChatApp() {
175
176
  }
176
177
  ```
177
178
 
179
+ ### showSelfAvatar
180
+
181
+ 参数类型: `boolean`
182
+
183
+ 为了更好的利用屏幕效率,自己发送的消息默认不展示头像,默认值为 `false`。
184
+
178
185
  ### className
179
186
 
180
187
  参数类型: `string`
@@ -10,6 +10,7 @@ MessageInput 是一个功能完整的消息输入组件,专为 Vue3 应用设
10
10
  |disabled|boolean|false|是否禁用输入组件|
11
11
  |placeholder|string|''|输入框占位符文本|
12
12
  |actions|MessageInputActions|['EmojiPicker', 'ImagePicker', 'FilePicker', 'VideoPicker']|工具栏操作按钮配置|
13
+ |setOfflinePushInfo|(payload: SendMessagePayload) => OfflinePushInfo \| undefined|undefined|发送消息时修改携带的离线推送参数|
13
14
 
14
15
  ## Slots 配置
15
16
 
@@ -35,11 +36,6 @@ MessageInput 是一个功能完整的消息输入组件,专为 Vue3 应用设
35
36
 
36
37
  - 详细说明:disabled 用于设置是否禁用整个输入组件,包括文本输入和所有操作按钮,默认值为 `false`。
37
38
 
38
- ### hideSendButton
39
- - 类型:`boolean`
40
-
41
- - 详细说明:hideSendButton 用于设置是否隐藏发送按钮,适用于需要自定义发送触发方式的场景,默认值为 `false`。
42
-
43
39
  ### placeholder
44
40
  - 类型:`string`
45
41
 
@@ -357,6 +353,63 @@ const CustomEmojiPicker = defineComponent({
357
353
 
358
354
  示例效果:
359
355
 
356
+ ### setOfflinePushInfo
357
+
358
+ 参数类型:`(payload: SendMessagePayload) => OfflinePushInfo | undefined`
359
+
360
+ setOfflinePushInfo 用于在发送前根据当前的消息内容设置自定义的离线推送参数。
361
+ ``` typescript
362
+ type SendMessagePayload = {
363
+ type: 'textMessage';
364
+ text: string;
365
+ } | {
366
+ type: 'customMessage';
367
+ customData: string;
368
+ description?: string;
369
+ extensionInfo?: string;
370
+ } | {
371
+ type: 'imageMessage';
372
+ file: File | HTMLInputElement;
373
+ width?: number;
374
+ height?: number;
375
+ } | {
376
+ type: 'audioMessage';
377
+ file: File | HTMLInputElement;
378
+ duration: number;
379
+ } | {
380
+ type: 'videoMessage';
381
+ file: File | HTMLInputElement;
382
+ duration: number;
383
+ snapshotFile?: File | HTMLInputElement;
384
+ snapshotWidth?: number;
385
+ snapshotHeight?: number;
386
+ } | {
387
+ type: 'fileMessage';
388
+ file: File | HTMLInputElement;
389
+ } | {
390
+ type: 'locationMessage';
391
+ description: string;
392
+ longitude: number;
393
+ latitude: number;
394
+ } | {
395
+ type: 'faceMessage';
396
+ index: number;
397
+ data: string;
398
+ };
399
+
400
+ interface OfflinePushInfo {
401
+ title: string;
402
+ description: string;
403
+ extensionInfo: {
404
+ disablePush: boolean;
405
+ disableVoipPush: boolean;
406
+ extension: string;
407
+ androidInfo: Record<string, any>;
408
+ apnsInfo: Record<string, any>;
409
+ };
410
+ }
411
+ ```
412
+
360
413
  ## Slots 详解
361
414
  - 类型:`MessageInputSlots`
362
415
 
@@ -50,6 +50,7 @@ import { UIKitProvider, Chat, MessageList, MessageInput } from '@tencentcloud/ch
50
50
  |messageActionList|MessageAction[]|undefined|自定义消息操作列表,例如撤回、删除等。|
51
51
  |messageAggregationTime|number|300 (秒)|消息聚合的时间间隔(秒),在此时间内发送的同一发送者的消息会被聚合。设置为 0 可禁用消息聚合。|
52
52
  |filter|(message: MessageInfo) => boolean|undefined|自定义消息过滤函数,用于控制哪些消息应该显示。|
53
+ |showSelfAvatar|boolean|false|自己发出的消息是否展示头像。|
53
54
  |enableReadReceipt|boolean|false|是否启用消息已读回执功能。|
54
55
  |Message|Component|undefined|自定义消息组件,用于渲染单条消息。|
55
56
  |MessageTimeDivider|Component|undefined|自定义消息时间分割线组件。|
@@ -228,6 +229,12 @@ const customMessageFilter = (message: MessageInfo): boolean => {
228
229
  </script>
229
230
  ```
230
231
 
232
+ ### showSelfAvatar
233
+
234
+ 参数类型: `boolean`
235
+
236
+ 为了更好的利用屏幕效率,自己发送的消息默认不展示头像,默认值为 `false`。
237
+
231
238
  ### Message
232
239
  - 类型:Component | undefined
233
240
 
@@ -24,18 +24,18 @@
24
24
  | 单聊消息权限控制与配置 | `https://cloud.tencent.com/document/product/269/3662` |
25
25
  | 群组消息管理(App 管理员发送消息/群消息发送控制/消息优先级与频率控制
26
26
  ) | `https://cloud.tencent.com/document/product/269/3663` |
27
- | 不同类型群组基础能力操作差异 | `https://cloud.tencent.com/document/product/269/1502` |
28
- | 不同类型群组加群方式差异 | `https://cloud.tencent.com/document/product/269/1502` |
29
- | 不同类型群组成员管理能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
30
- | 不同类型群组群组限制差异 | `https://cloud.tencent.com/document/product/269/1502` |
31
- | 不同类型群组消息能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
27
+ | 群组基础能力操作差异 | `https://cloud.tencent.com/document/product/269/1502` |
28
+ | 群组加群方式差异 | `https://cloud.tencent.com/document/product/269/1502` |
29
+ | 群组成员管理能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
30
+ | 群组限制差异 | `https://cloud.tencent.com/document/product/269/1502` |
31
+ | 群组消息能力差异 | `https://cloud.tencent.com/document/product/269/1502` |
32
32
  | 群组/群成员/群消息导入 | `https://cloud.tencent.com/document/product/269/1502` |
33
33
  | 群组自动回收能力 | `https://cloud.tencent.com/document/product/269/1502` |
34
34
  | 自定义群组ID(话题 ID) | `https://cloud.tencent.com/document/product/269/1502` |
35
35
  | 群组自定义字段 | `https://cloud.tencent.com/document/product/269/1502` |
36
36
  | 云端审核能力介绍 | `https://cloud.tencent.com/document/product/269/83795` |
37
37
 
38
- ### 使用限制
38
+ ## 使用限制
39
39
 
40
40
  | 子问题 | 目标文档 |
41
41
  |--------|---------|
@@ -46,7 +46,7 @@
46
46
  | 关系链管理限制(添加与删除好友限制/好友分组限制/黑名单限制/批量好友接口上限等) | `https://cloud.tencent.com/document/product/269/32429` |
47
47
  | 群组管理限制(群主转让/群成员禁言/群封禁人数限制/群计数器限制/群自定义字段数等) | `https://cloud.tencent.com/document/product/269/32429` |
48
48
 
49
- ## 出海解决方案
49
+ ## 海外解决方案
50
50
 
51
51
  | 子问题 | 目标文档 |
52
52
  |--------|---------|
@@ -54,7 +54,7 @@
54
54
  | 海外节点全球加速 | `https://cloud.tencent.com/document/product/269/86463` |
55
55
  | 海外数据安全合规 | `https://cloud.tencent.com/document/product/269/86464` |
56
56
 
57
- ## 场景解决方案
57
+ ## 内网代理实现方案
58
58
 
59
59
  | 子问题 | 目标文档 |
60
60
  |--------|---------|