@tencentcloud/sdk-mcp 1.4.7 → 1.6.0-beta.1

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 (556) hide show
  1. package/index.js +0 -1
  2. package/knowledge/bm25-cache.js +73 -0
  3. package/knowledge/bm25.js +147 -0
  4. package/knowledge/build-index.js +65 -0
  5. package/knowledge/chunker.js +167 -0
  6. package/knowledge/content-loader.js +44 -0
  7. package/knowledge/extractors.js +25 -0
  8. package/knowledge/path-meta.js +175 -0
  9. package/knowledge/search/exact-lookup.js +330 -0
  10. package/knowledge/search/filter-pool.js +86 -0
  11. package/knowledge/search/requires-framework.js +72 -0
  12. package/knowledge/search/search-knowledge.js +226 -0
  13. package/package.json +9 -9
  14. package/resource/_schema/feature-aliases.yaml +10 -0
  15. package/resource/_schema/goal-tags.yaml +72 -0
  16. package/resource/_schema/products.yaml +16 -0
  17. package/resource/_schema/trtc-intents.yaml +27 -0
  18. package/resource/_schema/types.yaml +44 -0
  19. package/resource/index/component-slugs.json +1 -0
  20. package/resource/index/manifest.json +1 -0
  21. package/resource/{doc → integration}/callkit/preset/android/integration.md +32 -28
  22. package/resource/{doc → integration}/callkit/preset/flutter/integration.md +109 -54
  23. package/resource/integration/callkit/preset/ios/integration.md +411 -0
  24. package/resource/integration/callkit/preset/react/integration.md +499 -0
  25. package/resource/integration/callkit/preset/vue/integration.md +768 -0
  26. package/resource/{doc/chatkit → integration/chat/preset}/android/integration.md +11 -11
  27. package/resource/{doc/chatkit → integration/chat/preset}/flutter/integration.md +59 -37
  28. package/resource/integration/chat/preset/ios/integration.md +568 -0
  29. package/resource/{doc/chatkit → integration/chat/preset}/react/integration.md +127 -95
  30. package/resource/integration/chat/preset/uni-app/integration.md +494 -0
  31. package/resource/{doc/chatkit → integration/chat/preset}/vue/integration.md +163 -143
  32. package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +15 -15
  33. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +25 -13
  34. package/resource/{doc → integration}/livekit/preset/live/vue/live-player-h5-integration.md +15 -9
  35. package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +31 -26
  36. package/resource/integration/roomkit/preset/vue/integration.md +571 -0
  37. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +852 -0
  38. package/resource/knowledge/callkit/core-sdk/android/make-call.md +929 -0
  39. package/resource/knowledge/callkit/core-sdk/android/offline-push.md +364 -0
  40. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1150 -0
  41. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1216 -0
  42. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +412 -0
  43. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1191 -0
  44. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1292 -0
  45. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +537 -0
  46. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
  47. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
  48. package/resource/knowledge/callkit/faq/android.md +168 -0
  49. package/resource/knowledge/callkit/faq/common.md +180 -0
  50. package/resource/knowledge/callkit/faq/flutter.md +52 -0
  51. package/resource/knowledge/callkit/faq/ios.md +116 -0
  52. package/resource/knowledge/callkit/faq/uniapp-app.md +89 -0
  53. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +217 -0
  54. package/resource/knowledge/callkit/faq/web.md +363 -0
  55. package/resource/knowledge/callkit/preset/android/api.md +413 -0
  56. package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
  57. package/resource/knowledge/callkit/preset/ios/api.md +256 -0
  58. package/resource/knowledge/callkit/preset/web/api.md +79 -0
  59. package/resource/knowledge/chat/preset/android/features/chat-setting.md +72 -0
  60. package/resource/knowledge/chat/preset/android/features/contact-list.md +41 -0
  61. package/resource/knowledge/chat/preset/android/features/conversation-list.md +123 -0
  62. package/resource/knowledge/chat/preset/android/features/language.md +142 -0
  63. package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
  64. package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
  65. package/resource/knowledge/chat/preset/android/features/search.md +64 -0
  66. package/resource/{doc/chatkit → knowledge/chat/preset}/android/features/theme.md +21 -18
  67. package/resource/knowledge/chat/preset/android-view/integration.md +448 -0
  68. package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +62 -0
  69. package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
  70. package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
  71. package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
  72. package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
  73. package/resource/knowledge/chat/preset/flutter/features/message-list.md +163 -0
  74. package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
  75. package/resource/{doc/chatkit → knowledge/chat/preset}/flutter/features/theme.md +47 -19
  76. package/resource/knowledge/chat/preset/ios/features/chat-setting.md +92 -0
  77. package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
  78. package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
  79. package/resource/knowledge/chat/preset/ios/features/language.md +105 -0
  80. package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
  81. package/resource/knowledge/chat/preset/ios/features/message-list.md +164 -0
  82. package/resource/knowledge/chat/preset/ios/features/search.md +94 -0
  83. package/resource/{doc/chatkit → knowledge/chat/preset}/ios/features/theme.md +54 -51
  84. package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +157 -94
  85. package/resource/knowledge/chat/preset/react/features/chat-setting.md +123 -0
  86. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +256 -104
  87. package/resource/knowledge/chat/preset/react/features/conversation-actions.md +217 -0
  88. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/conversation-list.md +86 -79
  89. package/resource/knowledge/chat/preset/react/features/conversation-preview.md +99 -0
  90. package/resource/knowledge/chat/preset/react/features/conversation-search.md +58 -0
  91. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +30 -83
  92. package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-list.md +22 -25
  93. package/resource/knowledge/chat/preset/react/features/search.md +531 -0
  94. package/resource/knowledge/chat/preset/react/features/theme.md +16 -0
  95. package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
  96. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/chat-setting.md +0 -4
  97. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/contact-list.md +59 -53
  98. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-actions.md +49 -43
  99. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-list.md +61 -49
  100. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-preview.md +43 -40
  101. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +1 -1
  102. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-input.md +128 -105
  103. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/message-list.md +108 -195
  104. package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +74 -68
  105. package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
  106. package/resource/knowledge/chat/urls/error-code.md +16 -0
  107. package/resource/knowledge/chat/urls/product.md +61 -0
  108. package/resource/knowledge/chat/urls/restapi.md +226 -0
  109. package/resource/knowledge/chat/urls/sdk/android.md +84 -0
  110. package/resource/knowledge/chat/urls/sdk/flutter.md +73 -0
  111. package/resource/knowledge/chat/urls/sdk/ios.md +84 -0
  112. package/resource/knowledge/chat/urls/sdk/web.md +88 -0
  113. package/resource/knowledge/chat/urls/webhook.md +73 -0
  114. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/AudioEffectStore.md +79 -76
  115. package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
  116. package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
  117. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/CameraView.md +7 -6
  118. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
  119. package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
  120. package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
  121. package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
  122. package/resource/{doc/livekit/core-sdk/live/android/api-reference → knowledge/livekit/core-sdk/api-reference/android}/LikeStore.md +12 -10
  123. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
  124. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
  125. package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +439 -0
  126. package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +221 -0
  127. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/AudioEffectStore.md +79 -76
  128. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
  129. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/BaseBeautyStore.md +43 -45
  130. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
  131. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
  132. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
  133. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +420 -0
  134. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
  135. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LikeStore.md +12 -11
  136. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
  137. package/resource/{doc/livekit/core-sdk/live/flutter/api-reference → knowledge/livekit/core-sdk/api-reference/flutter}/LiveCoreView.md +49 -42
  138. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +397 -0
  139. package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +183 -0
  140. package/resource/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/AudioEffectStore.md +79 -75
  141. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
  142. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
  143. package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
  144. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
  145. package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
  146. package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
  147. package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
  148. package/resource/{doc/livekit/core-sdk/live/ios/api-reference → knowledge/livekit/core-sdk/api-reference/ios}/LikeStore.md +12 -10
  149. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
  150. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
  151. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +434 -0
  152. package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +187 -0
  153. package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +780 -0
  154. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +59 -51
  155. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +37 -34
  156. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +68 -38
  157. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +18 -15
  158. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +17 -17
  159. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +86 -80
  160. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +53 -49
  161. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +47 -45
  162. package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +26 -22
  163. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +16 -13
  164. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +28 -24
  165. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +33 -21
  166. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +29 -25
  167. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +21 -20
  168. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +78 -69
  169. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-host-interaction.md +47 -43
  170. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +48 -45
  171. package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +27 -23
  172. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +15 -12
  173. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +39 -36
  174. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +42 -29
  175. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +19 -16
  176. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +20 -19
  177. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +55 -49
  178. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +50 -46
  179. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +48 -46
  180. package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +26 -22
  181. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +59 -51
  182. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +41 -38
  183. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +67 -37
  184. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +53 -46
  185. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +86 -80
  186. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +45 -40
  187. package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +43 -42
  188. package/resource/knowledge/livekit/core-sdk/voice/android/voice-room-list.md +523 -0
  189. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audience-list.md +16 -13
  190. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-audio-effect.md +54 -50
  191. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-barrage.md +33 -21
  192. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +34 -28
  193. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-gift.md +73 -64
  194. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +46 -43
  195. package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-room-list.md +165 -148
  196. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +19 -16
  197. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +40 -37
  198. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +41 -28
  199. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +54 -47
  200. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +52 -46
  201. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +55 -50
  202. package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +47 -45
  203. package/resource/knowledge/livekit/core-sdk/voice/ios/voice-room-list.md +404 -0
  204. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audience-list.md +40 -57
  205. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-audio-effect.md +38 -49
  206. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-barrage.md +53 -53
  207. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-co-guest-interaction.md +106 -116
  208. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-gift.md +49 -59
  209. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-integration.md +52 -45
  210. package/resource/{doc → knowledge}/livekit/core-sdk/voice/uni-app/voice-room-list.md +38 -46
  211. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +915 -0
  212. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +179 -0
  213. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +419 -0
  214. package/resource/knowledge/push/config/android/fcm.md +133 -0
  215. package/resource/knowledge/push/config/android/honor.md +111 -0
  216. package/resource/knowledge/push/config/android/huawei.md +106 -0
  217. package/resource/knowledge/push/config/android/meizu.md +121 -0
  218. package/resource/knowledge/push/config/android/oppo.md +108 -0
  219. package/resource/knowledge/push/config/android/vivo.md +101 -0
  220. package/resource/knowledge/push/config/android/xiaomi.md +99 -0
  221. package/resource/knowledge/push/integration/android.md +1028 -0
  222. package/resource/knowledge/push/integration/donut.md +271 -0
  223. package/resource/knowledge/push/integration/flutter.md +363 -0
  224. package/resource/knowledge/push/integration/harmonyos.md +72 -0
  225. package/resource/knowledge/push/integration/ios.md +705 -0
  226. package/resource/knowledge/push/integration/react-native.md +337 -0
  227. package/resource/knowledge/push/integration/uni-app.md +461 -0
  228. package/resource/knowledge/push/integration/unity.md +357 -0
  229. package/resource/knowledge/push/integration/unreal-engine.md +353 -0
  230. package/resource/knowledge/push/overview/prepare.md +30 -0
  231. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/call-user-to-room.md +22 -20
  232. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-participant-state.md +22 -193
  233. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/room-state.md +33 -32
  234. package/resource/{doc/roomkit/android/features → knowledge/roomkit/core-sdk/android}/schedule-room.md +30 -29
  235. package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
  236. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-participant-state.md +22 -21
  237. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/room-state.md +29 -28
  238. package/resource/{doc/roomkit/flutter/features → knowledge/roomkit/core-sdk/flutter}/schedule-room.md +17 -16
  239. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/call-user-to-room.md +22 -20
  240. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-participant-state.md +49 -218
  241. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/room-state.md +37 -37
  242. package/resource/{doc/roomkit/ios/features → knowledge/roomkit/core-sdk/ios}/schedule-room.md +28 -28
  243. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/call-user-to-room.md +122 -7
  244. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +318 -3
  245. package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +1504 -0
  246. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/free-beauty-panel.md +4 -3
  247. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +709 -0
  248. package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +1105 -0
  249. package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +635 -0
  250. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +529 -0
  251. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/schedule-room.md +256 -13
  252. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/screen-share.md +218 -25
  253. package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/virtual-background.md +4 -3
  254. package/resource/{doc/roomkit → knowledge/roomkit/preset}/android/integration.md +50 -64
  255. package/resource/{doc/roomkit → knowledge/roomkit/preset}/flutter/integration.md +34 -31
  256. package/resource/{doc/roomkit → knowledge/roomkit/preset}/ios/integration.md +45 -53
  257. package/resource/knowledge/roomkit/preset/react/integration.md +571 -0
  258. package/resource/{doc → knowledge}/rtcengine/web/how_to_run_web_sdk_demo.md +31 -15
  259. package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +9 -3
  260. package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +1 -1
  261. package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
  262. package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +6 -6
  263. package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
  264. package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -4
  265. package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +4 -4
  266. package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
  267. package/resource/{doc → knowledge}/trtc/android/TRTCCloud.md +547 -495
  268. package/resource/{doc → knowledge}/trtc/android/TRTCCloudDef.md +434 -403
  269. package/resource/{doc → knowledge}/trtc/android/TRTCCloudListener.md +394 -348
  270. package/resource/{doc → knowledge}/trtc/android/TRTCStatistics.md +17 -15
  271. package/resource/{doc → knowledge}/trtc/android/TXAudioEffectManager.md +227 -197
  272. package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
  273. package/resource/{doc → knowledge}/trtc/android/TXDeviceManager.md +70 -63
  274. package/resource/{doc → knowledge}/trtc/android/TXLiteAVCode.md +19 -17
  275. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCCloud.md +599 -544
  276. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/ITRTCStatistics.md +17 -15
  277. package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
  278. package/resource/knowledge/trtc/c++/ITXDeviceManager.md +403 -0
  279. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCCloudCallback.md +439 -387
  280. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TRTCTypeDef.md +417 -387
  281. package/resource/{doc/trtc/C++ → knowledge/trtc/c++}/TXLiteAVCode.md +19 -17
  282. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloud.md +619 -559
  283. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCCloudDelegate.md +409 -360
  284. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TRTCStatistics.md +17 -15
  285. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXAudioEffectManager.md +187 -164
  286. package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
  287. package/resource/knowledge/trtc/ios/TXDeviceManager.md +399 -0
  288. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiteAVCode.md +19 -17
  289. package/resource/{doc/trtc/iOS → knowledge/trtc/ios}/TXLiveSDKTypeDef.md +422 -396
  290. package/server-config.js +0 -1
  291. package/server.js +22 -12
  292. package/streamable-http.js +0 -1
  293. package/tools/call/get_native_call_uikit_integration.js +2 -4
  294. package/tools/call/get_native_callkit_core_integration.js +2 -6
  295. package/tools/call/get_web_call_uikit_integration.js +2 -4
  296. package/tools/chat/get_native_chat_uikit_integration.js +2 -4
  297. package/tools/chat/get_web_chat_uikit_integration.js +2 -4
  298. package/tools/common/get_usersig.js +0 -1
  299. package/tools/common/present_framework_choice.js +9 -4
  300. package/tools/common/record_answer.js +19 -26
  301. package/tools/common/record_feedback.js +17 -31
  302. package/tools/common/search_trtc_knowledge.js +44 -0
  303. package/tools/definitions/get_native_call_uikit_integration_def.js +2 -1
  304. package/tools/definitions/get_native_callkit_core_integration_def.js +2 -1
  305. package/tools/definitions/get_native_chat_uikit_integration_def.js +3 -2
  306. package/tools/definitions/get_native_livekit_core_integration_def.js +2 -1
  307. package/tools/definitions/get_usersig_def.js +0 -1
  308. package/tools/definitions/get_web_call_uikit_integration_def.js +2 -1
  309. package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -1
  310. package/tools/definitions/get_web_live_uikit_integration_def.js +4 -3
  311. package/tools/definitions/get_web_room_core_integration_def.js +46 -0
  312. package/tools/definitions/get_web_room_uikit_integration_def.js +3 -1
  313. package/tools/definitions/integration-boundary.js +5 -0
  314. package/tools/definitions/present_framework_choice_def.js +11 -10
  315. package/tools/definitions/record_answer_def.js +6 -5
  316. package/tools/definitions/record_feedback_def.js +4 -3
  317. package/tools/definitions/search_trtc_knowledge_def.js +69 -0
  318. package/tools/index.js +5 -37
  319. package/tools/live/get_native_livekit_core_integration.js +1 -4
  320. package/tools/live/get_web_live_uikit_integration.js +2 -5
  321. package/tools/room/get_web_room_core_integration.js +47 -0
  322. package/tools/room/get_web_room_uikit_integration.js +2 -4
  323. package/utils/generate-structured-result.js +4 -11
  324. package/utils/generate-usersig.js +0 -1
  325. package/utils/get-device-identifier.js +0 -1
  326. package/utils/get-doc-content.js +14 -9
  327. package/utils/http-get.js +0 -1
  328. package/utils/http-post.js +0 -1
  329. package/utils/report-cls-client.js +22 -21
  330. package/utils/report-es-client.js +1 -2
  331. package/utils/report-runtime-error-cls-client.js +0 -1
  332. package/index.js.map +0 -1
  333. package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
  334. package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -942
  335. package/resource/doc/callkit/core-sdk/android/make-call.md +0 -876
  336. package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -368
  337. package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1132
  338. package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1206
  339. package/resource/doc/callkit/core-sdk/flutter/offline-push.md +0 -357
  340. package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1009
  341. package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1154
  342. package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -470
  343. package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -1146
  344. package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1267
  345. package/resource/doc/callkit/faq/android-faq.md +0 -767
  346. package/resource/doc/callkit/faq/flutter-faq.md +0 -749
  347. package/resource/doc/callkit/faq/ios-faq.md +0 -759
  348. package/resource/doc/callkit/faq/web-faq.md +0 -753
  349. package/resource/doc/callkit/preset/android/api.md +0 -330
  350. package/resource/doc/callkit/preset/flutter/api.md +0 -401
  351. package/resource/doc/callkit/preset/ios/api.md +0 -282
  352. package/resource/doc/callkit/preset/ios/integration.md +0 -188
  353. package/resource/doc/callkit/preset/react/api.md +0 -600
  354. package/resource/doc/callkit/preset/react/integration.md +0 -86
  355. package/resource/doc/callkit/preset/vue/api.md +0 -600
  356. package/resource/doc/callkit/preset/vue/integration.md +0 -83
  357. package/resource/doc/chatkit/android/faq.md +0 -109
  358. package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -280
  359. package/resource/doc/chatkit/faq/common/product.md +0 -82
  360. package/resource/doc/chatkit/faq/common/server.md +0 -53
  361. package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
  362. package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -183
  363. package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -54
  364. package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -279
  365. package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
  366. package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -292
  367. package/resource/doc/chatkit/flutter/faq.md +0 -22
  368. package/resource/doc/chatkit/ios/faq.md +0 -109
  369. package/resource/doc/chatkit/react/components/avatar.md +0 -104
  370. package/resource/doc/chatkit/react/components/chat-header.md +0 -148
  371. package/resource/doc/chatkit/react/components/chat-setting.md +0 -117
  372. package/resource/doc/chatkit/react/components/chat.md +0 -38
  373. package/resource/doc/chatkit/react/components/component-list.md +0 -35
  374. package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
  375. package/resource/doc/chatkit/react/components/conversation-preview.md +0 -116
  376. package/resource/doc/chatkit/react/components/conversation-search.md +0 -57
  377. package/resource/doc/chatkit/react/components/search.md +0 -282
  378. package/resource/doc/chatkit/react/components/tuikit.md +0 -43
  379. package/resource/doc/chatkit/react/faq.md +0 -26
  380. package/resource/doc/chatkit/vue/components/avatar.md +0 -104
  381. package/resource/doc/chatkit/vue/components/chat-header.md +0 -149
  382. package/resource/doc/chatkit/vue/components/chat.md +0 -42
  383. package/resource/doc/chatkit/vue/components/component-list.md +0 -89
  384. package/resource/doc/chatkit/vue/components/tuikit.md +0 -45
  385. package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
  386. package/resource/doc/chatkit/vue/faq.md +0 -35
  387. package/resource/doc/livekit/core-sdk/live/android/api-reference/BarrageStore.md +0 -148
  388. package/resource/doc/livekit/core-sdk/live/android/api-reference/BattleStore.md +0 -316
  389. package/resource/doc/livekit/core-sdk/live/android/api-reference/CoGuestStore.md +0 -419
  390. package/resource/doc/livekit/core-sdk/live/android/api-reference/CoHostStore.md +0 -325
  391. package/resource/doc/livekit/core-sdk/live/android/api-reference/DeviceStore.md +0 -436
  392. package/resource/doc/livekit/core-sdk/live/android/api-reference/GiftStore.md +0 -165
  393. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveAudienceStore.md +0 -239
  394. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveCoreView.md +0 -74
  395. package/resource/doc/livekit/core-sdk/live/android/api-reference/LiveSeatStore.md +0 -417
  396. package/resource/doc/livekit/core-sdk/live/android/api-reference/LoginStore.md +0 -207
  397. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BarrageStore.md +0 -158
  398. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/BattleStore.md +0 -304
  399. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoGuestStore.md +0 -394
  400. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/CoHostStore.md +0 -303
  401. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/DeviceStore.md +0 -410
  402. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/GiftStore.md +0 -160
  403. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveAudienceStore.md +0 -231
  404. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LiveSeatStore.md +0 -375
  405. package/resource/doc/livekit/core-sdk/live/flutter/api-reference/LoginStore.md +0 -170
  406. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BarrageStore.md +0 -165
  407. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BaseBeautyStore.md +0 -143
  408. package/resource/doc/livekit/core-sdk/live/ios/api-reference/BattleStore.md +0 -298
  409. package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoGuestStore.md +0 -349
  410. package/resource/doc/livekit/core-sdk/live/ios/api-reference/CoHostStore.md +0 -297
  411. package/resource/doc/livekit/core-sdk/live/ios/api-reference/DeviceStore.md +0 -471
  412. package/resource/doc/livekit/core-sdk/live/ios/api-reference/GiftStore.md +0 -179
  413. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveAudienceStore.md +0 -238
  414. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveCoreView.md +0 -74
  415. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LiveSeatStore.md +0 -412
  416. package/resource/doc/livekit/core-sdk/live/ios/api-reference/LoginStore.md +0 -173
  417. package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +0 -365
  418. package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +0 -336
  419. package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
  420. package/resource/doc/livekit/preset/live/vue/components/barrage.md +0 -291
  421. package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -88
  422. package/resource/doc/livekit/preset/live/vue/components/live-audience-list.md +0 -164
  423. package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -130
  424. package/resource/doc/livekit/preset/live/vue/components/live-view.md +0 -203
  425. package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -211
  426. package/resource/doc/livekit/preset/live/vue/faq.md +0 -1
  427. package/resource/doc/roomkit/faq/common/error-code.md +0 -67
  428. package/resource/doc/roomkit/flutter/features/call-user-to-room.md +0 -228
  429. package/resource/doc/roomkit/vue/faq.md +0 -1
  430. package/resource/doc/roomkit/vue/features/device-state.md +0 -460
  431. package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
  432. package/resource/doc/roomkit/vue/features/room-participant-state.md +0 -385
  433. package/resource/doc/roomkit/vue/features/room-state.md +0 -280
  434. package/resource/doc/roomkit/vue/features/room-view.md +0 -241
  435. package/resource/doc/roomkit/vue/integration.md +0 -315
  436. package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
  437. package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -472
  438. package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -388
  439. package/resource/doc/trtc/android/TXBeautyManager.md +0 -403
  440. package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -404
  441. package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -382
  442. package/server-config.js.map +0 -1
  443. package/server.js.map +0 -1
  444. package/streamable-http.js.map +0 -1
  445. package/tools/call/get_callkit_api.js +0 -33
  446. package/tools/call/get_callkit_api.js.map +0 -1
  447. package/tools/call/get_native_call_uikit_integration.js.map +0 -1
  448. package/tools/call/get_native_callkit_core_integration.js.map +0 -1
  449. package/tools/call/get_web_call_uikit_integration.js.map +0 -1
  450. package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
  451. package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
  452. package/tools/chat/get_native_chat_uikit_integration.js.map +0 -1
  453. package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
  454. package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
  455. package/tools/chat/get_web_chat_uikit_integration.js.map +0 -1
  456. package/tools/common/get_faq.js +0 -266
  457. package/tools/common/get_faq.js.map +0 -1
  458. package/tools/common/get_usersig.js.map +0 -1
  459. package/tools/common/present_framework_choice.js.map +0 -1
  460. package/tools/common/record_answer.js.map +0 -1
  461. package/tools/common/record_feedback.js.map +0 -1
  462. package/tools/common/record_skill_session.js +0 -69
  463. package/tools/common/record_skill_session.js.map +0 -1
  464. package/tools/definitions/get_callkit_api_def.js +0 -28
  465. package/tools/definitions/get_callkit_api_def.js.map +0 -1
  466. package/tools/definitions/get_faq_def.js +0 -40
  467. package/tools/definitions/get_faq_def.js.map +0 -1
  468. package/tools/definitions/get_native_call_uikit_integration_def.js.map +0 -1
  469. package/tools/definitions/get_native_callkit_core_integration_def.js.map +0 -1
  470. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
  471. package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
  472. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +0 -1
  473. package/tools/definitions/get_native_livekit_core_features_def.js +0 -33
  474. package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
  475. package/tools/definitions/get_native_livekit_core_integration_def.js.map +0 -1
  476. package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
  477. package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
  478. package/tools/definitions/get_usersig_def.js.map +0 -1
  479. package/tools/definitions/get_web_call_uikit_integration_def.js.map +0 -1
  480. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
  481. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
  482. package/tools/definitions/get_web_chat_uikit_integration_def.js.map +0 -1
  483. package/tools/definitions/get_web_live_uikit_integration_def.js.map +0 -1
  484. package/tools/definitions/get_web_livekit_api_def.js +0 -27
  485. package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
  486. package/tools/definitions/get_web_livekit_component_detail_def.js +0 -29
  487. package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
  488. package/tools/definitions/get_web_room_uikit_integration_def.js.map +0 -1
  489. package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -30
  490. package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
  491. package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -25
  492. package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
  493. package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -25
  494. package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
  495. package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -25
  496. package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
  497. package/tools/definitions/present_framework_choice_def.js.map +0 -1
  498. package/tools/definitions/record_answer_def.js.map +0 -1
  499. package/tools/definitions/record_feedback_def.js.map +0 -1
  500. package/tools/definitions/record_skill_session_def.js +0 -31
  501. package/tools/definitions/record_skill_session_def.js.map +0 -1
  502. package/tools/index.js.map +0 -1
  503. package/tools/live/get_native_livekit_core_features.js +0 -68
  504. package/tools/live/get_native_livekit_core_features.js.map +0 -1
  505. package/tools/live/get_native_livekit_core_integration.js.map +0 -1
  506. package/tools/live/get_web_live_uikit_integration.js.map +0 -1
  507. package/tools/live/get_web_livekit_api.js +0 -33
  508. package/tools/live/get_web_livekit_api.js.map +0 -1
  509. package/tools/live/get_web_livekit_component_detail.js +0 -35
  510. package/tools/live/get_web_livekit_component_detail.js.map +0 -1
  511. package/tools/room/get_web_room_uikit_integration.js.map +0 -1
  512. package/tools/room/get_web_roomkit_feature_detail.js +0 -69
  513. package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
  514. package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
  515. package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
  516. package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
  517. package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
  518. package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
  519. package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
  520. package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
  521. package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
  522. package/utils/build-session-directives.js +0 -122
  523. package/utils/build-session-directives.js.map +0 -1
  524. package/utils/generate-structured-result.js.map +0 -1
  525. package/utils/generate-usersig.js.map +0 -1
  526. package/utils/get-device-identifier.js.map +0 -1
  527. package/utils/get-doc-content.js.map +0 -1
  528. package/utils/handle-framework.js +0 -9
  529. package/utils/handle-framework.js.map +0 -1
  530. package/utils/handle-state-name.js +0 -29
  531. package/utils/handle-state-name.js.map +0 -1
  532. package/utils/http-get.js.map +0 -1
  533. package/utils/http-post.js.map +0 -1
  534. package/utils/report-cls-client.js.map +0 -1
  535. package/utils/report-es-client.js.map +0 -1
  536. package/utils/report-runtime-error-cls-client.js.map +0 -1
  537. /package/resource/{doc/callkit/faq/common → knowledge/callkit/faq}/error-code.md +0 -0
  538. /package/resource/{doc/livekit/faq/common → knowledge/livekit/faq}/error-code.md +0 -0
  539. /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
  540. /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
  541. /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
  542. /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
  543. /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
  544. /package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +0 -0
  545. /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
  546. /package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +0 -0
  547. /package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +0 -0
  548. /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
  549. /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
  550. /package/resource/{doc → knowledge}/rtcengine/web/plugin/38-advanced-basic-beauty.md +0 -0
  551. /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
  552. /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
  553. /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
  554. /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
  555. /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
  556. /package/resource/{doc/rtcengine/faq/common → knowledge/share}/userSig.md +0 -0
@@ -0,0 +1,709 @@
1
+ 会中聊天功能允许会议内的成员通过文字、表情等形式进行实时互动。该功能基于 `tuikit-atomicx-vue3`(Vue 3)或 `tuikit-atomicx-react`(React)的 IM 组件能力实现,为用户提供便捷的即时通信体验。
2
+
3
+ ## 适用场景
4
+ - **在线研讨会:**主讲人进行视频演讲时,参会者可以通过文字提问或讨论。
5
+
6
+ - **远程协作:**团队成员在沟通时,可发送文字、图片、文件等。
7
+
8
+ - **直播教学:**学生可以在聊天区发送弹幕或问题,老师实时查看并解答,增强课堂互动性。
9
+
10
+ ## 前提条件
11
+
12
+ 在接入功能前,请确保满足以下条件:
13
+ - **用户状态:**用户已经通过 useLoginState 完成登录鉴权,参见 接入概览,并已作为一个房间的房主或成员在房间内,参考 房间管理。
14
+
15
+ - **环境依赖:**项目已正确安装并引入 `tuikit-atomicx-vue3`(Vue 3)或 `tuikit-atomicx-react`(React)。
16
+
17
+ ## 实现会中聊天功能
18
+
19
+ 本功能提供两种集成方案,您可以根据业务需求选择最适合的一种:
20
+ - **方案一(推荐):**使用 UI 组件快速集成。直接引入 `tuikit-atomicx-vue3` 和 `tuikit-atomicx-react` 提供的消息列表组件(`MessageList`)和消息输入组件(`MessageInput`),开发成本最低。
21
+
22
+ - **方案二(高级):**使用底层 Store API 自定义集成。基于 atomicx-core SDK 的 `MessageListStore` 和 `MessageInputStore` 自行实现 UI 和交互逻辑,灵活度最高。
23
+
24
+ 会中聊天
25
+
26
+ ## 方案一:使用 UI 组件快速集成
27
+
28
+ `tuikit-atomicx-vue3` 及 `tuikit-atomicx-react` 提供了两个核心组件:
29
+ - **MessageList**:消息列表组件,展示聊天记录,支持消息的复制、撤回、删除等操作。可通过 `ref` 调用 `scrollToBottom` 等方法。
30
+
31
+ - **MessageInput**:消息输入组件,支持文本、表情、图片、文件发送,并可根据禁言状态自动禁用。
32
+
33
+ ### 步骤1:数据初始化
34
+
35
+ 在用户加入房间成功后,需要调用 [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setActiveConversation) 接口初始化聊天数据。Vue 3 中建议使用 `watch` 监听 `currentRoom` 的变化;React 中使用 `useEffect`。
36
+
37
+ > **说明:**
38
+ >
39
+ > - `GROUP` 为固定前缀,`setActiveConversation` 参数必须为 ``GROUP${roomId}``,否则无法正常收发消息。
40
+ > - `GROUP` 为 IM SDK 群组会话的固定前缀(参考 [IM 会话类型](https://web.sdk.qcloud.com/im/doc/zh-cn/Conversation.html))。房间聊天基于 IM 群组实现,因此会话 ID 必须为 ``GROUP${roomId}`` 格式。
41
+
42
+ 【Vue3】
43
+ ``` typescript
44
+ import { watch } from 'vue';
45
+ import { useChatContext } from 'tuikit-atomicx-vue3/chat';
46
+ import { useLoginState, useRoomState } from 'tuikit-atomicx-vue3/room';
47
+
48
+ function useChatConversationSync() {
49
+ const { setActiveConversation } = useChatContext();
50
+ const { currentRoom } = useRoomState();
51
+ const { loginUserInfo } = useLoginState();
52
+
53
+ // roomId 或登录用户变化时绑定活跃会话
54
+ watch(
55
+ [() => currentRoom.value?.roomId, () => loginUserInfo.value?.userId],
56
+ ([roomId, userId]) => {
57
+ if (!userId) return;
58
+ if (!roomId) {
59
+ // 退房时清空活跃会话
60
+ setActiveConversation('');
61
+ return;
62
+ }
63
+ // 关键步骤:设置活跃会话 ID,格式为 "GROUP" + roomId
64
+ setActiveConversation(`GROUP${roomId}`);
65
+ },
66
+ { immediate: true },
67
+ );
68
+ }
69
+ ```
70
+
71
+ 【React】
72
+ ``` typescript
73
+ import { useEffect } from 'react';
74
+ import { useChatContext } from 'tuikit-atomicx-react/chat';
75
+ import { useRoomState, useLoginState } from 'tuikit-atomicx-react/room';
76
+
77
+ function useChatConversationSync() {
78
+ const { setActiveConversation } = useChatContext();
79
+ const { currentRoom } = useRoomState();
80
+ const { loginUserInfo } = useLoginState();
81
+
82
+ // roomId 或登录用户变化时绑定活跃会话
83
+ useEffect(() => {
84
+ const roomId = currentRoom?.roomId;
85
+ if (!loginUserInfo?.userId) return;
86
+ if (!roomId) {
87
+ // 退房时清空活跃会话
88
+ setActiveConversation('');
89
+ return;
90
+ }
91
+ // 关键步骤:设置活跃会话 ID,格式为 "GROUP" + roomId
92
+ setActiveConversation(`GROUP${roomId}`);
93
+ }, [currentRoom?.roomId, loginUserInfo?.userId, setActiveConversation]);
94
+ }
95
+ ```
96
+
97
+ ### 步骤2: 使用组件
98
+
99
+ 在您的页面中,可以直接组合使用这两个组件。同时结合 [useRoomParticipantState](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState) 获取当前用户的禁言状态,控制输入框的可用性。
100
+
101
+ > **注意:**
102
+ >
103
+
104
+ > 所有 TUIKit 组件必须包裹在 UIKitProvider 内部,否则将无法获取上下文依赖,导致样式异常。
105
+ >
106
+
107
+ 【Vue3】
108
+ ``` typescript
109
+ <template>
110
+ <UIKitProvider theme="light" language="zh-CN">
111
+ <div class="room-chat-container">
112
+ <!-- 消息列表:展示聊天记录,支持复制、撤回、删除操作 -->
113
+ <MessageList
114
+ ref="messageListRef"
115
+ class="message-list"
116
+ :messageActionList="messageActionList"
117
+ />
118
+ <!-- 消息输入框:禁言时禁用;回车发送(不显示发送按钮) -->
119
+ <MessageInput
120
+ class="message-input"
121
+ :placeholder="placeholder"
122
+ :disabled="localParticipant?.isMessageDisabled"
123
+ hideSendButton
124
+ />
125
+ </div>
126
+ </UIKitProvider>
127
+ </template>
128
+
129
+ <script setup lang="ts">
130
+ import { computed, ref } from 'vue';
131
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue3';
132
+ import { MessageInput, MessageList, useMessageActions } from 'tuikit-atomicx-vue3/chat';
133
+ import { useRoomParticipantState } from 'tuikit-atomicx-vue3/room';
134
+ import type { MessageListHandle } from 'tuikit-atomicx-vue3/chat';
135
+
136
+ const { localParticipant } = useRoomParticipantState();
137
+
138
+ // 用于命令式控制,如面板打开时滚动到底部
139
+ const messageListRef = ref<MessageListHandle | null>(null);
140
+
141
+ // isMessageDisabled 由房间后台实时同步,无需前端主动轮询
142
+ const placeholder = computed(() =>
143
+ localParticipant.value?.isMessageDisabled ? '您已被禁言' : '请输入消息...'
144
+ );
145
+
146
+ // 配置消息长按/右键操作菜单
147
+ const messageActionList = useMessageActions(['copy', 'recall', 'delete']);
148
+ </script>
149
+
150
+ <style scoped>
151
+ .room-chat-container{display:flex;flex-direction:column;height:100%;padding:8px;gap:8px}.message-list{flex:1;overflow:hidden}.message-input{flex-shrink:0;border:1px solid #e0e0e0;border-radius:8px}
152
+ </style>
153
+ ```
154
+
155
+ 【React】
156
+ ``` typescript
157
+ import { useRef } from 'react';
158
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-react';
159
+ import { MessageList, MessageInput, useMessageActions } from 'tuikit-atomicx-react/chat';
160
+ import { useRoomParticipantState } from 'tuikit-atomicx-react/room';
161
+ import type { MessageListHandle } from 'tuikit-atomicx-react/chat';
162
+
163
+ function RoomChatPanel() {
164
+ const { localParticipant } = useRoomParticipantState();
165
+
166
+ // isMessageDisabled 由房间后台实时同步,无需轮询
167
+ const isMessageDisabled = localParticipant?.isMessageDisabled;
168
+ const placeholder = isMessageDisabled ? '您已被禁言' : '请输入消息...';
169
+
170
+ // 配置消息长按/右键操作菜单
171
+ const messageActionList = useMessageActions(['copy', 'recall', 'delete']);
172
+
173
+ // 用于命令式控制,如面板打开时滚动到底部
174
+ const messageListRef = useRef<MessageListHandle>(null);
175
+
176
+ return (
177
+ <UIKitProvider theme="light" language="zh-CN">
178
+ <div style={{ display: 'flex', flexDirection: 'column', height: '100%', padding: '8px', gap: '8px' }}>
179
+ {/* 消息列表:展示聊天记录,支持复制、撤回、删除操作 */}
180
+ <MessageList
181
+ ref={messageListRef}
182
+ style={{ flex: 1, overflow: 'hidden' }}
183
+ messageActionList={messageActionList}
184
+ />
185
+ {/* 消息输入框:禁言时禁用;回车发送(不显示发送按钮) */}
186
+ <MessageInput
187
+ style={{ flexShrink: 0, border: '1px solid #e0e0e0', borderRadius: '8px' }}
188
+ placeholder={placeholder}
189
+ disabled={isMessageDisabled}
190
+ hideSendButton
191
+ />
192
+ </div>
193
+ </UIKitProvider>
194
+ );
195
+ }
196
+ ```
197
+
198
+ ### 步骤3:处理未读消息计数(可选)
199
+
200
+ 如果聊天窗口平时是折叠或关闭状态,您需要通过监听新消息事件来统计未读消息数,并在 UI 上(如聊天图标角标)进行提示。Vue 3 和 React 均通过 `useChatContext` 提供的 `messageListOnEvent` 订阅 `onReceiveNewMessage` 事件实现,非自己发送且面板未打开时累加未读计数,面板打开时清零。
201
+
202
+ 【Vue3】
203
+ ``` typescript
204
+ import { ref, watch, onUnmounted } from 'vue';
205
+ import { useChatContext } from 'tuikit-atomicx-vue3/chat';
206
+
207
+ const { activeConversationID, messageListOnEvent } = useChatContext();
208
+
209
+ const unreadCount = ref(0);
210
+ const isActive = ref(false); // 根据业务逻辑控制聊天面板是否打开
211
+
212
+ // 订阅新消息事件;活跃会话变化时重新订阅
213
+ watch(activeConversationID, () => {
214
+ const unsub = messageListOnEvent((event) => {
215
+ if (event.type !== 'onReceiveNewMessage') return;
216
+ // 跳过自己发送的消息,或面板已打开时不计数
217
+ if (event.message.isSentBySelf || isActive.value) return;
218
+ unreadCount.value += 1;
219
+ });
220
+ onUnmounted(unsub);
221
+ }, { immediate: true });
222
+
223
+ // 面板打开时清空未读计数
224
+ watch(isActive, (open) => {
225
+ if (open) unreadCount.value = 0;
226
+ });
227
+ ```
228
+
229
+ 【React】
230
+ ``` typescript
231
+ import { useState, useEffect, useRef } from 'react';
232
+ import { useChatContext } from 'tuikit-atomicx-react/chat';
233
+
234
+ function useChatUnreadCount(isChatPanelOpen: boolean) {
235
+ const [unreadCount, setUnreadCount] = useState(0);
236
+ const { activeConversationID, messageListOnEvent } = useChatContext();
237
+
238
+ // 用 ref 保持最新值,避免因依赖变化重新订阅
239
+ const isPanelOpenRef = useRef(isChatPanelOpen);
240
+ useEffect(() => {
241
+ isPanelOpenRef.current = isChatPanelOpen;
242
+ }, [isChatPanelOpen]);
243
+
244
+ // 订阅新消息事件;活跃会话变化时重新订阅
245
+ useEffect(() => {
246
+ if (!activeConversationID || !messageListOnEvent) return;
247
+ const unsub = messageListOnEvent((event) => {
248
+ if (event.type !== 'onReceiveNewMessage') return;
249
+ const { message } = event;
250
+ // 跳过自己发送的消息,或面板已打开时不计数
251
+ if (message.isSentBySelf || isPanelOpenRef.current) return;
252
+ setUnreadCount(prev => prev + 1);
253
+ });
254
+ return unsub;
255
+ }, [activeConversationID, messageListOnEvent]);
256
+
257
+ // 面板打开时清空未读计数
258
+ useEffect(() => {
259
+ if (isChatPanelOpen) {
260
+ setUnreadCount(0);
261
+ }
262
+ }, [isChatPanelOpen]);
263
+
264
+ return { unreadCount };
265
+ }
266
+ ```
267
+
268
+ ## 方案二:使用底层 API 自定义集成
269
+
270
+ 本节主要介绍如何通过 `MessageListStore`(消息列表管理)和 `MessageInputStore`(消息发送)来实现完全自定义的聊天界面。Vue 3 和 React 均通过 `useMessageListStore()` / `useMessageInputStore()` 使用。
271
+
272
+ #### 步骤1:数据初始化
273
+
274
+ 与方案一步骤1相同,同样需要先调用 [setActiveConversation](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#setActiveConversation) 接口激活对应的 IM 群组会话。在退房时建议清空活跃会话,避免消息错发。
275
+
276
+ > **说明:**
277
+ >
278
+ > - `GROUP` 为固定前缀,`setActiveConversation` 参数必须为 ``GROUP${roomId}``,否则无法正常收发消息。
279
+ > - 在房间切换或退房时,建议重置或清空活跃会话,避免消息错发至错误会话。
280
+
281
+ 【Vue3】
282
+ ``` typescript
283
+ import { watch, onUnmounted } from 'vue';
284
+ import { useChatContext } from 'tuikit-atomicx-vue3/chat';
285
+ import { useLoginState, useRoomState } from 'tuikit-atomicx-vue3/room';
286
+
287
+ function useChatConversationSync() {
288
+ const { setActiveConversation } = useChatContext();
289
+ const { currentRoom } = useRoomState();
290
+ const { loginUserInfo } = useLoginState();
291
+
292
+ // roomId 或登录用户变化时绑定活跃会话
293
+ watch(
294
+ [() => currentRoom.value?.roomId, () => loginUserInfo.value?.userId],
295
+ ([roomId, userId]) => {
296
+ if (!userId) return;
297
+ if (!roomId) {
298
+ // 退房时清空活跃会话
299
+ setActiveConversation('');
300
+ return;
301
+ }
302
+ // 关键步骤:设置活跃会话 ID,格式为 "GROUP" + roomId
303
+ setActiveConversation(`GROUP${roomId}`);
304
+ },
305
+ { immediate: true },
306
+ );
307
+
308
+ onUnmounted(() => {
309
+ setActiveConversation('');
310
+ });
311
+ }
312
+ ```
313
+
314
+ 【React】
315
+ ``` typescript
316
+ import { useEffect } from 'react';
317
+ import { useChatContext } from 'tuikit-atomicx-react/chat';
318
+ import { useRoomState, useLoginState } from 'tuikit-atomicx-react/room';
319
+
320
+ function useChatConversationSync() {
321
+ const { setActiveConversation } = useChatContext();
322
+ const { currentRoom } = useRoomState();
323
+ const { loginUserInfo } = useLoginState();
324
+
325
+ useEffect(() => {
326
+ const roomId = currentRoom?.roomId;
327
+ if (!loginUserInfo?.userId) return;
328
+ if (!roomId) {
329
+ setActiveConversation('');
330
+ return;
331
+ }
332
+ // 关键步骤:设置活跃会话 ID,格式为 "GROUP" + roomId
333
+ setActiveConversation(`GROUP${roomId}`);
334
+ }, [currentRoom?.roomId, loginUserInfo?.userId, setActiveConversation]);
335
+ }
336
+ ```
337
+
338
+ #### 步骤2:获取消息列表
339
+
340
+ 使用对应框架的 Hook 获取当前会话的消息列表状态与操作方法。`messageList` 是响应式数据,会自动更新新收到的消息。
341
+
342
+ 【Vue3】
343
+ ``` typescript
344
+ <template>
345
+ <div class="message-list-wrapper">
346
+ <div
347
+ v-for="msg in messageList"
348
+ :key="msg.msgID"
349
+ class="message-item"
350
+ >
351
+ {{ msg.messagePayload?.text }}
352
+ </div>
353
+ </div>
354
+ </template>
355
+
356
+ <script setup lang="ts">
357
+ import { onUnmounted } from 'vue';
358
+ import { useMessageListStore } from 'tuikit-atomicx-vue3/chat';
359
+
360
+ // conversationID = "GROUP" + roomId
361
+ const conversationID = `GROUP${roomId}`;
362
+
363
+ const {
364
+ messageList,
365
+ hasOlderMessages,
366
+ hasNewerMessages,
367
+ pinnedMessageList,
368
+ loadMessages,
369
+ loadOlderMessages,
370
+ loadNewerMessages,
371
+ onEvent,
372
+ } = useMessageListStore(conversationID);
373
+
374
+ loadMessages();
375
+
376
+ const unsub = onEvent((event) => {
377
+ if (event.type === 'onReceiveNewMessage') {
378
+ // 触发滚动到底部或未读角标更新
379
+ }
380
+ });
381
+
382
+ onUnmounted(unsub);
383
+ </script>
384
+ ```
385
+
386
+ 【React】
387
+ ``` typescript
388
+ import { useEffect } from 'react';
389
+ import { useMessageListStore } from 'tuikit-atomicx-react/chat';
390
+
391
+ function MessageListPanel({ roomId }: { roomId: string }) {
392
+ const conversationID = `GROUP${roomId}`;
393
+
394
+ const {
395
+ messageList,
396
+ hasOlderMessages,
397
+ hasNewerMessages,
398
+ pinnedMessageList,
399
+ loadMessages,
400
+ loadOlderMessages,
401
+ loadNewerMessages,
402
+ onEvent,
403
+ } = useMessageListStore(conversationID);
404
+
405
+ useEffect(() => {
406
+ loadMessages();
407
+ }, [conversationID]);
408
+
409
+ useEffect(() => {
410
+ return onEvent((event) => {
411
+ if (event.type === 'onReceiveNewMessage') {
412
+ // 触发滚动到底部或未读角标更新
413
+ }
414
+ });
415
+ }, [conversationID]);
416
+
417
+ return (
418
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '8px', padding: '8px' }}>
419
+ {messageList.map(msg => (
420
+ <div key={msg.msgID} style={{ padding: '4px 8px', borderRadius: '4px' }}>
421
+ {msg.messagePayload?.text}
422
+ </div>
423
+ ))}
424
+ </div>
425
+ );
426
+ }
427
+ ```
428
+
429
+ #### 步骤3:发送消息
430
+
431
+ 使用对应框架的 Hook 管理输入框内容并发送消息。两者底层均调用相同的 `MessageInputStore.sendMessage(payload)`。
432
+
433
+ > **注意:**
434
+ >
435
+
436
+ > `MessageInputStore` 是纯命令式 Store,不持有输入框内容状态。需由业务层自行管理输入内容,发送时将内容通过 `sendMessage({ type: 'textMessage', text })` 传入。
437
+ >
438
+
439
+ 【Vue3】
440
+ ``` typescript
441
+ <template>
442
+ <input
443
+ :value="inputText"
444
+ @input="(e) => inputText = (e.target as HTMLInputElement).value"
445
+ @keyup.enter="handleSend"
446
+ />
447
+ </template>
448
+
449
+ <script setup lang="ts">
450
+ import { ref } from 'vue';
451
+ import { useMessageInputStore } from 'tuikit-atomicx-vue3/chat';
452
+
453
+ // conversationID = "GROUP" + roomId
454
+ const conversationID = `GROUP${roomId}`;
455
+ const { sendMessage } = useMessageInputStore(conversationID);
456
+
457
+ // 输入框内容由业务层自行管理,Store 不持有输入状态
458
+ const inputText = ref('');
459
+
460
+ const handleSend = async () => {
461
+ if (!inputText.value.trim()) return;
462
+ try {
463
+ await sendMessage({ type: 'textMessage', text: inputText.value });
464
+ inputText.value = '';
465
+ } catch (error) {
466
+ console.error('发送失败', error);
467
+ }
468
+ };
469
+ </script>
470
+ ```
471
+
472
+ 【React】
473
+ ``` typescript
474
+ import { useState } from 'react';
475
+ import { useMessageInputStore } from 'tuikit-atomicx-react/chat';
476
+
477
+ function MessageInputPanel({ roomId }: { roomId: string }) {
478
+ const conversationID = `GROUP${roomId}`;
479
+ const { sendMessage } = useMessageInputStore(conversationID);
480
+
481
+ // 输入框内容由 React state 管理,Store 不持有输入状态
482
+ const [inputText, setInputText] = useState('');
483
+
484
+ const handleSend = async () => {
485
+ if (!inputText.trim()) return;
486
+ try {
487
+ await sendMessage({ type: 'textMessage', text: inputText });
488
+ setInputText('');
489
+ } catch (error) {
490
+ console.error('发送失败', error);
491
+ }
492
+ };
493
+
494
+ return (
495
+ <input
496
+ value={inputText}
497
+ onChange={(e) => setInputText(e.target.value)}
498
+ onKeyDown={(e) => e.key === 'Enter' && handleSend()}
499
+ />
500
+ );
501
+ }
502
+ ```
503
+
504
+ #### 步骤4:加载历史消息
505
+
506
+ 分页拉取历史消息,通常在滚动到列表顶部时触发。Vue 3 和 React 均使用 `loadOlderMessages()`(底层均对应 `MessageListStore.loadOlderMessages()`)。
507
+
508
+ > **注意:**
509
+ >
510
+
511
+ > 在加载历史消息后,通常需要手动调整滚动条位置,以保持当前浏览视角不发生跳变。
512
+ >
513
+
514
+ 【Vue3】
515
+ ``` typescript
516
+ import { nextTick, ref } from 'vue';
517
+ import { useMessageListStore } from 'tuikit-atomicx-vue3/chat';
518
+
519
+ const conversationID = `GROUP${roomId}`;
520
+ const { hasOlderMessages, loadOlderMessages } = useMessageListStore(conversationID);
521
+
522
+ const scrollContainerRef = ref<HTMLElement | null>(null);
523
+
524
+ const loadHistory = async () => {
525
+ if (!hasOlderMessages.value) return;
526
+ const container = scrollContainerRef.value;
527
+ // 记录加载前的滚动高度
528
+ const previousHeight = container?.scrollHeight ?? 0;
529
+
530
+ await loadOlderMessages();
531
+
532
+ // DOM 更新后恢复滚动位置,防止视图跳动
533
+ nextTick(() => {
534
+ if (container) {
535
+ container.scrollTop += container.scrollHeight - previousHeight;
536
+ }
537
+ });
538
+ };
539
+ ```
540
+
541
+ 【React】
542
+ ``` typescript
543
+ import { useRef } from 'react';
544
+ import { useMessageListStore } from 'tuikit-atomicx-react/chat';
545
+
546
+ const { hasOlderMessages, loadOlderMessages } = useMessageListStore(conversationID);
547
+ const scrollContainerRef = useRef<HTMLDivElement>(null);
548
+
549
+ const loadHistory = async () => {
550
+ if (!hasOlderMessages) return;
551
+ const container = scrollContainerRef.current;
552
+ // 记录加载前的滚动高度
553
+ const previousHeight = container?.scrollHeight ?? 0;
554
+
555
+ await loadOlderMessages();
556
+
557
+ // React 重新渲染后,恢复滚动位置防止视图跳动
558
+ requestAnimationFrame(() => {
559
+ if (container) {
560
+ container.scrollTop += container.scrollHeight - previousHeight;
561
+ }
562
+ });
563
+ };
564
+ ```
565
+
566
+ #### 步骤5:高级功能(已读回执)
567
+
568
+ 如果您需要已读回执功能,可以在消息可见时调用 `sendMessageReadReceipts` 上报已读状态(底层对应 `MessageListStore.sendMessageReadReceipts()`)。通常在消息进入视口(Intersection Observer)时触发。
569
+
570
+ 【Vue3】
571
+ ``` typescript
572
+ import { useMessageListStore } from 'tuikit-atomicx-vue3/chat';
573
+ import type { MessageInfo } from 'tuikit-atomicx-vue3/chat';
574
+
575
+ const conversationID = `GROUP${roomId}`;
576
+ const { sendMessageReadReceipts } = useMessageListStore(conversationID);
577
+
578
+ // 示例:消息进入视口时上报已读
579
+ const markAsRead = async (visibleMessages: MessageInfo[]) => {
580
+ const unread = visibleMessages.filter(
581
+ (msg) => !msg.isSentBySelf && msg.needReadReceipt,
582
+ );
583
+ if (unread.length > 0) {
584
+ await sendMessageReadReceipts(unread);
585
+ }
586
+ };
587
+ ```
588
+
589
+ 【React】
590
+ ``` typescript
591
+ import { useMessageListStore } from 'tuikit-atomicx-react/chat';
592
+ import type { MessageInfo } from 'tuikit-atomicx-react/chat';
593
+
594
+ const { messageList, sendMessageReadReceipts } = useMessageListStore(conversationID);
595
+
596
+ // 示例:消息进入视口时标记为已读
597
+ const markAsRead = async (visibleMessages: MessageInfo[]) => {
598
+ const unread = visibleMessages.filter(
599
+ (msg) => !msg.isSentBySelf && msg.needReadReceipt,
600
+ );
601
+ if (unread.length > 0) {
602
+ await sendMessageReadReceipts(unread);
603
+ }
604
+ };
605
+ ```
606
+
607
+ ## 开发注意事项
608
+ - **禁言状态同步**
609
+
610
+ `localParticipant.isMessageDisabled` 是由房间管理员控制的。当管理员开启“全员禁言”或单独禁言某用户时,该属性会自动更新。请务必将此属性绑定到输入框的 `disabled` 状态上,以在前端层面限制用户发言。
611
+
612
+ - **会话切换时机**
613
+
614
+ 确保 `setActiveConversation` 在进房成功后且 `roomId` 有值时调用。如果在进房前调用,可能会因为 SDK 尚未初始化完毕或未登录而失败。
615
+
616
+ - **容器布局要求(重要)**
617
+
618
+ 消息列表组件内部处理了滚动逻辑,因此**父容器必须有固定的高度**(例如 `height: 100%` 或具体像素值)并设置 `overflow: hidden`,否则会导致列表无限拉长、无法滚动。
619
+
620
+ - **消息类型处理**
621
+
622
+ `messageList` 中包含多种类型的消息(文本、图片、文件等),自定义渲染时需根据 `msg.type` 进行区分处理。
623
+
624
+ - **输入状态管理**
625
+
626
+ Vue 3 和 React 均使用 `sendMessage({ type: 'textMessage', text })` 发送消息,Store 均不持有输入框内容状态。Vue 3 用 `ref` 维护输入内容,React 用 `useState`。发送成功后手动清空对应的状态变量即可。
627
+
628
+ - **历史消息滚动维持**
629
+
630
+ 在自定义开发中,调用 `loadOlderMessages()` 后 DOM 高度会增加。为了防止视图跳动,需要在加载前记录 `scrollHeight`,加载后(Vue 3 使用 `nextTick`,React 使用 `requestAnimationFrame`)计算高度差并调整 `scrollTop`。
631
+
632
+ - **新消息滚动策略**
633
+
634
+ 建议实现“智能滚动”逻辑:当用户位于列表底部时,收到新消息自动滚动到底部;当用户正在浏览历史消息时,保持当前位置不动,并显示“有新消息”的提示气泡。
635
+
636
+ - **会话 ID 格式要求**
637
+
638
+ 调用 `setActiveConversation` 时,必须使用 ``GROUP${roomId}`` 格式(GROUP 为固定前缀)。这是 IM SDK 群组会话的标准格式,不可自定义或省略前缀,否则无法正常收发消息。
639
+
640
+ ## 常见问题
641
+
642
+ **切到群组会话失败或消息列表无内容?**
643
+
644
+ 确保已登录并进房成功后再调用 `setActiveConversation('GROUP' + roomId)`;未登录或 roomId 为空会导致失败。
645
+
646
+ **消息收不到或列表空白?**
647
+
648
+ 检查当前活跃会话是否正确(`GROUP` 前缀 + roomId),以及网络/鉴权是否正常;必要时重新设置活跃会话 `setActiveConversation` 刷新。
649
+
650
+ **未读计数不清零?**
651
+
652
+ 需要手动维护未读计数逻辑。打开聊天窗口时,或收到新消息但窗口关闭时进行计数更新。
653
+
654
+ **被禁言仍能点击发送?**
655
+
656
+ 请确保前端 UI 根据 `isMessageDisabled` 状态禁用了发送按钮和输入框。虽然服务端也会拦截,但前端禁用体验更好。
657
+
658
+ **自定义头像/昵称展示?**
659
+
660
+ 可通过给 `MessageList` 传入自定义 `Message` prop(React 组件),优先显示房间内的 `nameCard`,并自定义头像样式等。
661
+
662
+ **自定义方案如何发送图片或文件?**
663
+
664
+ 底层 `sendMessage` 接受 `SendMessagePayload` 可辨识联合类型,Vue 3 和 React 均适用。根据 `type` 字段区分消息类型,图片对应 `imageMessage`,文件对应 `fileMessage`,视频对应 `videoMessage`。
665
+
666
+ 【Vue3】
667
+ ``` typescript
668
+ import { useMessageInputStore } from 'tuikit-atomicx-vue3/chat';
669
+
670
+ const { sendMessage } = useMessageInputStore(`GROUP${roomId}`);
671
+
672
+ // 示例:发送图片
673
+ // const file = ...; // 从 input type="file" 获取的 File 对象
674
+ await sendMessage({ type: 'imageMessage', file });
675
+
676
+ // 示例:发送文件
677
+ await sendMessage({ type: 'fileMessage', file });
678
+
679
+ // 示例:发送文本
680
+ await sendMessage({ type: 'textMessage', text: 'Hello World' });
681
+ ```
682
+
683
+ 【React】
684
+ ``` typescript
685
+ import { useMessageInputStore } from 'tuikit-atomicx-react/chat';
686
+
687
+ const { sendMessage } = useMessageInputStore(conversationID);
688
+
689
+ // 示例:发送图片
690
+ // const file = ...; // 从 <input type="file" /> 获取的 File 对象
691
+ await sendMessage({ type: 'imageMessage', file });
692
+
693
+ // 示例:发送文件
694
+ await sendMessage({ type: 'fileMessage', file });
695
+
696
+ // 示例:发送文本消息
697
+ await sendMessage({ type: 'textMessage', text: 'Hello World' });
698
+ ```
699
+
700
+ **如何修改 UI 组件的默认样式?**
701
+
702
+ TUIKit 组件的类名通常保持稳定。**Vue 3:**使用 `:deep()` 深度选择器穿透 scoped 样式,例如 `.message-list :deep(.tui-message-bubble) { background-color: #f0f0f0; }`。**React:**通过给组件传入 `className` 并结合后代选择器,或在全局样式文件中用 `:global(.tui-message-bubble) { ... }` 覆盖。
703
+
704
+ ## API 文档
705
+
706
+ |**State**|**功能描述**|**API 文档**|
707
+ |---------|---------|---------|
708
+ |**useRoomState**|房间状态管理(创建、加入、预约等)|[API 文档](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomState)|
709
+ |**useRoomParticipantState**|房间参与者管理(成员列表、权限控制)|[API 文档](https://web.sdk.qcloud.com/trtc/live/web/doc/zh/index.html#module-RoomParticipantState)|