@tencentcloud/sdk-mcp 1.6.7 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +54 -35
- package/knowledge/build-index.js +32 -5
- package/knowledge/chunker.js +82 -14
- package/knowledge/chunking-policy.js +100 -0
- package/knowledge/content-loader.js +3 -1
- package/knowledge/frontmatter-meta.js +167 -0
- package/knowledge/path-meta.js +28 -6
- package/knowledge/search/exact-lookup.js +26 -123
- package/knowledge/search/filter-pool.js +17 -26
- package/knowledge/search/framework-fallback.js +22 -0
- package/knowledge/search/intent-router.js +13 -0
- package/knowledge/search/query-normalizer.js +129 -0
- package/knowledge/search/search-core.js +391 -0
- package/knowledge/search/search-knowledge.js +351 -323
- package/knowledge/search/search-message.js +87 -0
- package/knowledge/search/search-pass.js +428 -0
- package/knowledge/search/search-types.js +1 -0
- package/knowledge/search/url-row-scorer.js +258 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/_schema/query-normalization.yaml +9 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +0 -14
- package/resource/integration/callkit/preset/flutter/integration.md +0 -9
- package/resource/integration/callkit/preset/ios/integration.md +2 -14
- package/resource/integration/callkit/preset/react/integration.md +0 -21
- package/resource/integration/callkit/preset/vue/integration.md +0 -27
- package/resource/integration/chat/preset/android/integration.md +3 -10
- package/resource/integration/chat/preset/flutter/integration.md +12 -13
- package/resource/integration/chat/preset/ios/integration.md +9 -16
- package/resource/integration/chat/preset/react/integration.md +1 -9
- package/resource/integration/chat/preset/uni-app/integration.md +0 -9
- package/resource/integration/chat/preset/vue/integration.md +3 -13
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +0 -4
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +8 -21
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +0 -1
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +0 -5
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +0 -4
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +0 -9
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +1 -5
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +38 -147
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +1 -6
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +432 -286
- package/resource/integration/roomkit/preset/vue/integration.md +11 -24
- package/resource/knowledge/callkit/best-practice/callkit-miniprogram/uniapp-shrink.md +64 -0
- package/resource/knowledge/callkit/best-practice/common/call-autoplay-blocked.md +81 -0
- package/resource/knowledge/callkit/best-practice/common/call-message-in-chat.md +84 -0
- package/resource/knowledge/callkit/best-practice/common/call-vs-calls.md +114 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-call-flow.md +128 -0
- package/resource/knowledge/callkit/best-practice/common/callengine-log-level.md +72 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-engine-instance.md +87 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-get-roomid.md +83 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-limitations.md +37 -0
- package/resource/knowledge/callkit/best-practice/common/callkit-user-register-and-kicked.md +103 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -20
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -12
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +1 -12
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +0 -19
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -17
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -12
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +0 -1
- package/resource/knowledge/callkit/faq/android.md +5 -15
- package/resource/knowledge/callkit/faq/common.md +0 -1
- package/resource/knowledge/callkit/faq/ios.md +1 -4
- package/resource/knowledge/callkit/faq/uniapp-app.md +0 -2
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +0 -5
- package/resource/knowledge/callkit/faq/web.md +1 -5
- package/resource/knowledge/callkit/preset/android/api.md +0 -6
- package/resource/knowledge/callkit/preset/ios/api.md +0 -4
- package/resource/knowledge/callkit/preset/miniprogram/api.md +0 -2
- package/resource/knowledge/callkit/preset/react/api.md +3 -154
- package/resource/knowledge/callkit/preset/vue/api.md +3 -42
- package/resource/knowledge/chat/best-practice/common/avchatroom-message-loss-diagnosis.md +71 -0
- package/resource/knowledge/chat/best-practice/common/group-conversation-cleanup-on-system-notice.md +67 -0
- package/resource/knowledge/chat/best-practice/common/image-message-url-lifecycle.md +63 -0
- package/resource/knowledge/chat/best-practice/common/login-repeat-2025-diagnosis.md +65 -0
- package/resource/knowledge/chat/best-practice/common/message-read-report-and-receipt.md +72 -0
- package/resource/knowledge/chat/best-practice/common/message-receive-event.md +70 -0
- package/resource/knowledge/chat/best-practice/common/message-risk-error-and-render.md +69 -0
- package/resource/knowledge/chat/best-practice/common/message-unread-count.md +71 -0
- package/resource/knowledge/chat/best-practice/miniprogram/audio-message-send.md +118 -0
- package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +67 -0
- package/resource/knowledge/chat/best-practice/miniprogram/media-upload-fail-diagnosis.md +68 -0
- package/resource/knowledge/chat/best-practice/web/audio-message-send.md +123 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/android/features/contact-list.md +0 -5
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/android/features/language.md +1 -11
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/android/features/search.md +0 -7
- package/resource/knowledge/chat/preset/android/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/android-view/integration.md +3 -5
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +1 -6
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/flutter/features/language.md +0 -3
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/flutter/features/search.md +0 -7
- package/resource/knowledge/chat/preset/flutter/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -9
- package/resource/knowledge/chat/preset/ios/features/language.md +0 -11
- package/resource/knowledge/chat/preset/ios/features/message-input.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -10
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +5 -17
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -2
- package/resource/knowledge/chat/preset/react/features/contact-list.md +0 -23
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +2 -11
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +2 -23
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +0 -5
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -3
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -5
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +3 -9
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +0 -3
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +2 -13
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +2 -5
- package/resource/knowledge/chat/preset/vue/features/conversation-search.md +1 -0
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/search.md +4 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -6
- package/resource/knowledge/chat/urls/sdk/web.md +1 -1
- package/resource/knowledge/livekit/best-practice/android/voice-room-anchor-start.md +124 -0
- package/resource/knowledge/livekit/best-practice/common/admin-take-seat.md +73 -0
- package/resource/knowledge/livekit/best-practice/common/audience-leave-live.md +81 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-no-audio-troubleshoot.md +100 -0
- package/resource/knowledge/livekit/best-practice/common/voice-room-seat-list-change.md +65 -0
- package/resource/knowledge/livekit/best-practice/flutter/voice-room-anchor-start.md +126 -0
- package/resource/knowledge/livekit/best-practice/ios/voice-room-anchor-start.md +130 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/flutter/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +3 -7
- package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/ios/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audio-effect.md +1 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/gift.md +4 -8
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -7
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +0 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -13
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +5 -5
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +18 -21
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -11
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +8 -8
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +1 -4
- package/resource/knowledge/livekit/faq/error-code.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -5
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -3
- package/resource/knowledge/push/api-reference/donut.md +1 -6
- package/resource/knowledge/push/api-reference/harmonyos.md +0 -2
- package/resource/knowledge/push/api-reference/react-native.md +0 -3
- package/resource/knowledge/push/api-reference/uni-app.md +3 -5
- package/resource/knowledge/push/api-reference/unity.md +0 -1
- package/resource/knowledge/push/api-reference/unreal-engine.md +0 -1
- package/resource/knowledge/push/config/android/fcm.md +0 -6
- package/resource/knowledge/push/config/android/honor.md +1 -7
- package/resource/knowledge/push/config/android/huawei.md +1 -9
- package/resource/knowledge/push/config/android/meizu.md +1 -7
- package/resource/knowledge/push/config/android/oppo.md +1 -3
- package/resource/knowledge/push/config/android/vivo.md +1 -12
- package/resource/knowledge/push/config/android/xiaomi.md +0 -5
- package/resource/knowledge/push/config/donut.md +0 -12
- package/resource/knowledge/push/config/harmonyos.md +18 -7
- package/resource/knowledge/push/config/ios.md +26 -33
- package/resource/knowledge/push/config/react-native.md +0 -30
- package/resource/knowledge/push/config/unity.md +0 -30
- package/resource/knowledge/push/config/unreal-engine.md +0 -30
- package/resource/knowledge/push/integration/android.md +148 -57
- package/resource/knowledge/push/integration/donut.md +5 -21
- package/resource/knowledge/push/integration/flutter.md +4 -6
- package/resource/knowledge/push/integration/harmonyos.md +17 -16
- package/resource/knowledge/push/integration/ios.md +30 -18
- package/resource/knowledge/push/integration/react-native.md +10 -60
- package/resource/knowledge/push/integration/uni-app.md +3 -25
- package/resource/knowledge/push/integration/unity.md +8 -77
- package/resource/knowledge/push/integration/unreal-engine.md +37 -96
- package/resource/knowledge/roomkit/best-practice/common/room-ghost-member.md +75 -0
- package/resource/knowledge/roomkit/best-practice/common/room-limit-and-multi.md +88 -0
- package/resource/knowledge/roomkit/best-practice/common/room-screen-share-preview.md +87 -0
- package/resource/knowledge/roomkit/best-practice/common/room-status-after-all-leave.md +73 -0
- package/resource/knowledge/roomkit/best-practice/vue/room-uikit-vs-atomicx.md +115 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +1 -7
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -2
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +202 -6
- package/resource/knowledge/roomkit/preset/flutter/integration.md +1 -16
- package/resource/knowledge/roomkit/preset/ios/integration.md +201 -7
- package/resource/knowledge/roomkit/preset/react/integration.md +205 -4
- package/resource/knowledge/rtcengine/web/api.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/22-advanced-audio-mixer.md +2 -2
- package/resource/knowledge/rtcengine/web/plugin/23-advanced-support-detection.md +3 -3
- package/resource/knowledge/rtcengine/web/plugin/28-advanced-beauty.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/30-advanced-cross-room-link.md +2 -0
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -4
- package/resource/knowledge/rtcengine/web/plugin/39-advanced-video-decoder.md +2 -0
- package/resource/knowledge/share/userSig.md +2 -2
- package/resource/knowledge/trtc/android/TRTCCloud.md +16 -16
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +5 -5
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +3 -3
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/android/TXDeviceManager.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +14 -14
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +3 -3
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +5 -5
- package/resource/knowledge/trtc/ios/TRTCCloud.md +14 -14
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +3 -3
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +5 -5
- package/server.js +8 -3
- package/tools/common/finalize_answer.js +9 -1
- package/tools/common/search_trtc_knowledge.js +3 -1
- package/tools/definitions/finalize_answer_def.js +2 -2
- package/tools/definitions/integration-boundary.js +2 -1
- package/tools/definitions/search_trtc_knowledge_def.js +2 -1
- package/utils/report-cls-client.js +3 -3
- package/utils/report-es-client.js +1 -1
- package/cursor-setting.png +0 -0
- package/mcp-server-prompt.png +0 -0
- package/resource/knowledge/callkit/best-practice/web/callengine-invitation.md +0 -80
- package/resource/knowledge/callkit/best-practice/web/callengine-log-control.md +0 -20
- package/resource/knowledge/callkit/best-practice/web/callkit-call-vs-calls.md +0 -116
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +0 -475
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +0 -587
- package/resource/knowledge/callkit/preset/web/api.md +0 -79
- package/resource/knowledge/chat/best-practice/web/image-message-url-handling.md +0 -16
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web Chat SDK 消息接收事件(MESSAGE_RECEIVED)与群提示消息处理
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [MESSAGE_RECEIVED, TIMGroupTipElem, TIMGroupSystemNoticeElem, 消息接收, 自己发消息, event.data]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Chat SDK 消息接收事件(MESSAGE_RECEIVED)与群提示消息处理
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- Web Chat SDK 的消息通知统一通过 `MESSAGE_RECEIVED` 事件下发给业务侧。
|
|
15
|
+
- 在回调中遍历 `event.data`,可按消息 `type` 字段区分普通消息、群提示消息(`TIMGroupTipElem`)和群系统通知(`TIMGroupSystemNoticeElem`)。
|
|
16
|
+
- 当前实例发送的消息不会通过 `MESSAGE_RECEIVED` 再回给自己;自己发出的消息应在创建完成后立即写入上屏消息列表。
|
|
17
|
+
- 多实例或多端登录时,非当前实例发送的消息可以通过 `MESSAGE_RECEIVED` 接收。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `EVENT.MESSAGE_RECEIVED` | 统一接收入口 | 所有接收消息通过该事件通知业务侧 |
|
|
24
|
+
| `event.data` | 消息列表载体 | 一次回调可能包含多条消息,需全量遍历处理 |
|
|
25
|
+
| `message.type` | 消息分类字段 | 用于识别普通消息、`TIMGroupTipElem`、`TIMGroupSystemNoticeElem` |
|
|
26
|
+
| 本端发送消息上屏 | UI 时机控制 | 当前实例自己发消息应在创建后立即上屏,不依赖 `MESSAGE_RECEIVED` |
|
|
27
|
+
|
|
28
|
+
## 3. 机制/时序
|
|
29
|
+
|
|
30
|
+
业务侧订阅 `MESSAGE_RECEIVED` -> SDK 下发消息列表 `event.data` -> 业务遍历列表按 `type` 分流处理。
|
|
31
|
+
当前实例发送消息:创建消息并立即本地上屏 -> 调用发送接口 -> 不通过 `MESSAGE_RECEIVED` 回给本端。
|
|
32
|
+
其他实例/其他端发送消息:当前端通过 `MESSAGE_RECEIVED` 收到并按类型处理。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. 订阅 `EVENT.MESSAGE_RECEIVED`,回调中读取完整 `event.data` 列表。
|
|
37
|
+
2. 对每条消息按 `type` 分流:普通消息、`TIMGroupTipElem`、`TIMGroupSystemNoticeElem` 走不同业务处理器。
|
|
38
|
+
3. 自己发送消息时,在 `createXXXMessage` 后立即写入本地消息列表,保证上屏时效。
|
|
39
|
+
4. 保留发送回调与接收回调的职责边界:发送链路负责本端状态,接收链路负责他端/他实例下发。
|
|
40
|
+
|
|
41
|
+
## 5. 结果判定
|
|
42
|
+
|
|
43
|
+
- 群提示消息触发后,可在 `MESSAGE_RECEIVED` 中识别到 `TIMGroupTipElem` 并走正确处理逻辑。
|
|
44
|
+
- 群系统通知可在回调中识别 `TIMGroupSystemNoticeElem` 并正确分流。
|
|
45
|
+
- 当前实例发送消息时,本地立即上屏,不等待 `MESSAGE_RECEIVED`。
|
|
46
|
+
- 多端登录时,其他端发送的消息能通过 `MESSAGE_RECEIVED` 正常接收。
|
|
47
|
+
|
|
48
|
+
## 6. 常见误区
|
|
49
|
+
|
|
50
|
+
- 误区 1:把 `MESSAGE_RECEIVED` 当单条回调,只处理 `event.data[0]`。
|
|
51
|
+
- 误区 2:期待当前实例发送的消息通过 `MESSAGE_RECEIVED` 回到本端再上屏。
|
|
52
|
+
- 误区 3:不按 `type` 分类,导致群提示消息和普通文本消息混用同一处理逻辑。
|
|
53
|
+
|
|
54
|
+
## 7. 问题定义(检索辅助,极简)
|
|
55
|
+
|
|
56
|
+
Web Chat SDK 场景下,业务侧希望明确两件事:
|
|
57
|
+
1)如何接收并识别群提示消息 `TIMGroupTipElem`;
|
|
58
|
+
2)`MESSAGE_RECEIVED` 是否会收到当前实例自己发送的消息。
|
|
59
|
+
|
|
60
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
61
|
+
|
|
62
|
+
- Web SDK 怎么接收群提示消息 `TIMGroupTipElem`?
|
|
63
|
+
- `MESSAGE_RECEIVED` 回调里如何区分普通消息和群系统消息?
|
|
64
|
+
- 为什么自己发送的消息没有通过 `MESSAGE_RECEIVED` 收到?
|
|
65
|
+
- 多端登录时,其他端发的消息能不能通过 `MESSAGE_RECEIVED` 收到?
|
|
66
|
+
|
|
67
|
+
## 9. 参考来源(可选)
|
|
68
|
+
|
|
69
|
+
- 消息接收事件:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.MESSAGE_RECEIVED`
|
|
70
|
+
- 消息结构体:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/Message.html`
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web/小程序 Chat SDK 消息发送报错(80001/80004)与审核打击渲染方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [sendMessage, 80001, 80004, hasRiskContent, MESSAGE_MODIFIED, 云端审核, 文本审核, 图片审核, 异步审核, 语音消息, 视频消息]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web/小程序 Chat SDK 消息发送报错(80001/80004)与审核打击渲染方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 文本发送报错 `80001` 表示文本命中敏感信息审核策略,需要排查消息内容与云端敏感词配置。
|
|
15
|
+
- 图片发送报错 `80004` 表示图片命中敏感信息审核策略,需要排查图片内容与云端图片审核规则配置。
|
|
16
|
+
- UI 侧判断消息是否被审核打击的标准字段是 `message.hasRiskContent`。
|
|
17
|
+
- 同步审核要在 `sendMessage` 的 `catch` 里收到 `80001/80004`,需在 IM 控制台开启“下发拦截错误码”(控制台 > 云端审核 > 审核结果配置 > 下发拦截错误码)。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| 错误码 `80001` | 文本审核拦截信号 | 文本消息命中敏感策略时返回 |
|
|
24
|
+
| 错误码 `80004` | 图片审核拦截信号 | 图片消息命中敏感策略时返回 |
|
|
25
|
+
| `message.hasRiskContent` | 风险内容标识 | 用于 UI 判断消息是否被审核打击 |
|
|
26
|
+
| `EVENT.MESSAGE_MODIFIED` | 消息修改通知事件 | 异步审核命中后,SDK 通过该事件下发消息字段更新 |
|
|
27
|
+
| “下发拦截错误码”开关 | 同步错误返回控制 | 开启后 `sendMessage.catch` 才能收到审核拦截错误码 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
文本消息为同步审核:发送消息 -> 审核命中 -> `sendMessage.catch` 返回 `80001`,返回的 `message.hasRiskContent=true`。文本同步审核命中场景下,不会派发 `EVENT.MESSAGE_MODIFIED` 事件通知。
|
|
32
|
+
图片消息默认同步审核:发送消息 -> 若 2 秒内完成审核并命中 -> `sendMessage.catch` 返回 `80004`;若 2 秒内未完成审核 -> 自动转异步审核,审核命中后通过 `EVENT.MESSAGE_MODIFIED` 下发更新。
|
|
33
|
+
语音/视频消息默认异步审核:发送消息 -> 后台异步审核 -> 审核命中后通过 `EVENT.MESSAGE_MODIFIED` 下发更新。
|
|
34
|
+
|
|
35
|
+
## 4. 标准用法
|
|
36
|
+
|
|
37
|
+
1. 在控制台开启“下发拦截错误码”,确保同步审核命中时 `sendMessage.catch` 可感知错误码。
|
|
38
|
+
2. 发送文本/图片消息时,在 `catch` 分支读取错误码与返回 `message`,若 `message.hasRiskContent=true`,立即更新上屏消息状态。
|
|
39
|
+
3. 监听 `EVENT.MESSAGE_MODIFIED`,遍历 `event.data`,发现 `message.hasRiskContent=true` 时更新对应上屏消息。
|
|
40
|
+
4. 文本/图片命中率异常时,分别回查敏感词库与图片审核规则,联动云端审核策略调整。
|
|
41
|
+
5. 对 UI 渲染统一使用 `hasRiskContent` 判定,不依赖单一错误码做长期状态判断。
|
|
42
|
+
|
|
43
|
+
## 5. 结果判定
|
|
44
|
+
|
|
45
|
+
- 文本命中敏感词时,`sendMessage.catch` 可观测到 `80001`,且消息状态更新为审核打击。
|
|
46
|
+
- 图片命中敏感规则时,能在同步路径收到 `80004`,或在异步路径通过 `MESSAGE_MODIFIED` 收到 `hasRiskContent=true` 更新。
|
|
47
|
+
- 语音/视频异步审核命中后,UI 能通过 `MESSAGE_MODIFIED` 正确更新打击状态。
|
|
48
|
+
- 同一消息在同步/异步两条链路下,最终均以 `hasRiskContent` 渲染一致状态。
|
|
49
|
+
|
|
50
|
+
## 6. 常见误区
|
|
51
|
+
|
|
52
|
+
- 误区 1:未开启“下发拦截错误码”却期望在 `sendMessage.catch` 一定拿到 `80001/80004`。
|
|
53
|
+
- 误区 2:只处理 `sendMessage.catch`,不监听 `MESSAGE_MODIFIED`,导致异步审核打击漏渲染。
|
|
54
|
+
- 误区 3:仅凭错误码渲染长期状态,不以 `hasRiskContent` 作为最终状态源。
|
|
55
|
+
|
|
56
|
+
## 7. 问题定义(检索辅助,极简)
|
|
57
|
+
|
|
58
|
+
Web Chat SDK 发送文本报错 `80001`、发送图片报错 `80004` 的原因是什么?UI 渲染时如何判断消息被审核打击(风险内容)?
|
|
59
|
+
|
|
60
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
61
|
+
|
|
62
|
+
- 文本发送失败 80001 是什么原因?
|
|
63
|
+
- 图片发送失败 80004 是什么原因?
|
|
64
|
+
- 消息被审核拦截后前端怎么识别?
|
|
65
|
+
- `message.hasRiskContent` 什么时候会更新?
|
|
66
|
+
|
|
67
|
+
## 9. 参考来源(可选)
|
|
68
|
+
|
|
69
|
+
- MESSAGE_MODIFIED 事件:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.MESSAGE_MODIFIED`
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web/小程序 Chat SDK 未读消息总数获取与单聊/群聊拆分统计方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web, miniprogram]
|
|
5
|
+
scope: platform_common
|
|
6
|
+
tags: [getTotalUnreadMessageCount, TOTAL_UNREAD_MESSAGE_COUNT_UPDATED, unreadCount, 未读总数, 单聊未读, 群聊未读]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web/小程序 Chat SDK 未读消息总数获取与单聊/群聊拆分统计方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 获取未读消息总数使用 `getTotalUnreadMessageCount`。
|
|
15
|
+
- SDK 当前不提供“仅单聊未读总数”或“仅群聊未读总数”的直接接口。
|
|
16
|
+
- 推荐模式是“初始化拉一次 + 事件持续更新”:上线初始化调用 `getTotalUnreadMessageCount`,后续通过 `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED` 维护总未读数。
|
|
17
|
+
- `getTotalUnreadMessageCount` 依赖 SDK 会话列表数据;若调用时云端会话列表尚未同步完成,返回值可能为 `0`。
|
|
18
|
+
- SDK 会话列表按分页同步,每次同步导致总未读变化时会派发 `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED`。
|
|
19
|
+
|
|
20
|
+
## 2. 字段语义对照
|
|
21
|
+
|
|
22
|
+
| 字段/能力 | 作用 | 说明 |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| `getTotalUnreadMessageCount` | 获取当前总未读数 | 依赖本地已同步的会话列表状态 |
|
|
25
|
+
| `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED` | 总未读更新事件 | 会话列表分页同步或未读数变化后触发 |
|
|
26
|
+
| `CONVERSATION_LIST_UPDATED` | 会话列表更新事件 | 可用于获取全量会话并做单聊/群聊分组统计 |
|
|
27
|
+
| `conversation.type` | 会话类型标识 | 用于过滤单聊或群聊会话 |
|
|
28
|
+
| `conversation.unreadCount` | 单会话未读数 | 累计后可得到单聊/群聊维度未读总数 |
|
|
29
|
+
|
|
30
|
+
## 3. 机制/时序
|
|
31
|
+
|
|
32
|
+
应用启动 -> SDK 同步会话列表(分页)-> 业务初始化调用 `getTotalUnreadMessageCount` 获取初值(可能为 0)-> SDK 每次分页同步后若总未读变化则派发 `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED` -> 业务实时更新总未读展示。
|
|
33
|
+
若需要单聊/群聊分维度未读:监听 `CONVERSATION_LIST_UPDATED` -> 获取全量会话列表 -> 按 `conversation.type` 过滤并累加 `conversation.unreadCount`。
|
|
34
|
+
|
|
35
|
+
## 4. 标准用法
|
|
36
|
+
|
|
37
|
+
1. 应用初始化阶段调用 `getTotalUnreadMessageCount`,先拿到当前可用的总未读初值。
|
|
38
|
+
2. 监听 `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED`,以事件值作为总未读数的持续更新来源。
|
|
39
|
+
3. 监听 `CONVERSATION_LIST_UPDATED`,获取全量会话列表。
|
|
40
|
+
4. 按 `conversation.type` 过滤出单聊或群聊会话,累加各会话 `unreadCount`,得到单聊未读总数与群聊未读总数。
|
|
41
|
+
5. 当初始化返回 `0` 时,不直接判定“无未读”,以会话列表同步事件后的统计结果为准。
|
|
42
|
+
|
|
43
|
+
## 5. 结果判定
|
|
44
|
+
|
|
45
|
+
- 初始化时已调用 `getTotalUnreadMessageCount`,并在 UI 显示初值。
|
|
46
|
+
- 会话列表分页同步过程中,`TOTAL_UNREAD_MESSAGE_COUNT_UPDATED` 能持续驱动总未读变化。
|
|
47
|
+
- 单聊与群聊未读总数由 `CONVERSATION_LIST_UPDATED + unreadCount` 累计结果稳定得出。
|
|
48
|
+
- 初始化阶段出现 `0` 后,后续同步完成时未读数能正确刷新为真实值。
|
|
49
|
+
|
|
50
|
+
## 6. 常见误区
|
|
51
|
+
|
|
52
|
+
- 误区 1:认为 SDK 提供“单聊未读总数”或“群聊未读总数”的现成接口。
|
|
53
|
+
- 误区 2:初始化 `getTotalUnreadMessageCount` 返回 `0` 就直接当作最终结果。
|
|
54
|
+
- 误区 3:只在初始化取一次总未读数,不监听 `TOTAL_UNREAD_MESSAGE_COUNT_UPDATED`。
|
|
55
|
+
|
|
56
|
+
## 7. 问题定义(检索辅助,极简)
|
|
57
|
+
|
|
58
|
+
Web Chat SDK 如何获取未读消息总数?是否有接口只获取单聊未读总数或群聊未读总数?
|
|
59
|
+
|
|
60
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
61
|
+
|
|
62
|
+
- 怎么获取 IM 全量未读消息数?
|
|
63
|
+
- 有没有“只拿单聊未读”或“只拿群聊未读”的官方接口?
|
|
64
|
+
- `getTotalUnreadMessageCount` 为什么初始化时返回 0?
|
|
65
|
+
- 未读总数应该用事件更新还是轮询接口?
|
|
66
|
+
|
|
67
|
+
## 9. 参考来源(可选)
|
|
68
|
+
|
|
69
|
+
- getTotalUnreadMessageCount:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#getTotalUnreadMessageCount`
|
|
70
|
+
- TOTAL_UNREAD_MESSAGE_COUNT_UPDATED:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.TOTAL_UNREAD_MESSAGE_COUNT_UPDATED`
|
|
71
|
+
- CONVERSATION_LIST_UPDATED:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/module-EVENT.html#.CONVERSATION_LIST_UPDATED`
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 小程序集成 IM SDK 发送语音消息标准方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [miniprogram]
|
|
5
|
+
scope: platform_specific
|
|
6
|
+
tags: [audio, voice, recorderManager, createAudioMessage, sendMessage, aac, miniprogram]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 小程序集成 IM SDK 发送语音消息标准方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 小程序侧应使用微信官方 `RecorderManager` 进行录音,再在 `onStop` 回调中调用 `createAudioMessage` 创建语音消息。
|
|
15
|
+
- 消息创建后通过 `sendMessage` 发送,发送结果以 Promise 成功/失败回调为准。
|
|
16
|
+
- 音频格式使用 `aac` 可实现 IM 全平台(Android、iOS、小程序、Web)互通。
|
|
17
|
+
- 录音参数需显式配置 `duration`、`sampleRate`、`numberOfChannels`、`encodeBitRate`、`format`,并监听 `onError` 处理录音异常。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `wx.getRecorderManager()` | 录音入口 | 获取全局唯一录音管理器实例 |
|
|
24
|
+
| `recordOptions.format` | 音频格式控制 | 设置为 `aac` 可满足跨平台互通 |
|
|
25
|
+
| `recorderManager.onStop(res)` | 录音结果回调 | 在回调中使用 `res` 创建语音消息 |
|
|
26
|
+
| `chat.createAudioMessage({...})` | 创建消息实例 | 生成可上屏、可发送的语音消息对象 |
|
|
27
|
+
| `chat.sendMessage(message)` | 发送消息 | 返回 Promise,`then` 成功、`catch` 失败 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
初始化 `RecorderManager` -> 配置录音参数 -> 开始录音 -> 监听 `onStop` 获取录音结果 -> 调用 `createAudioMessage` 创建语音消息 -> 调用 `sendMessage` 发送 -> 根据发送结果更新 UI 与日志。
|
|
32
|
+
|
|
33
|
+
## 4. 标准用法
|
|
34
|
+
|
|
35
|
+
1. 获取录音管理器并配置录音参数,`format` 使用 `aac`。
|
|
36
|
+
2. 注册 `onError` 和 `onStop` 回调;在 `onStop` 中基于录音结果创建语音消息。
|
|
37
|
+
3. 调用 `sendMessage` 发送语音消息并处理成功/失败回调。
|
|
38
|
+
4. 将消息实例上屏,并在失败时提示重试。
|
|
39
|
+
|
|
40
|
+
```javascript
|
|
41
|
+
// 示例:使用微信官方的 RecorderManager 进行录音
|
|
42
|
+
// 参考 https://developers.weixin.qq.com/minigame/dev/api/media/recorder/RecorderManager.start.html
|
|
43
|
+
// 1. 获取全局唯一的录音管理器 RecorderManager
|
|
44
|
+
const recorderManager = wx.getRecorderManager();
|
|
45
|
+
|
|
46
|
+
// 录音部分参数
|
|
47
|
+
const recordOptions = {
|
|
48
|
+
duration: 60000, // 录音的时长,单位 ms,最大值 600000(10 分钟)
|
|
49
|
+
sampleRate: 44100, // 采样率
|
|
50
|
+
numberOfChannels: 1, // 录音通道数
|
|
51
|
+
encodeBitRate: 192000, // 编码码率
|
|
52
|
+
format: 'aac' // 音频格式,选择此格式创建的音频消息可以在 IM 全平台互通
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// 2.1 监听录音错误事件
|
|
56
|
+
recorderManager.onError(function(errMsg) {
|
|
57
|
+
console.warn('recorder error:', errMsg);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
// 2.2 监听录音结束事件,录音结束后创建并发送音频消息
|
|
61
|
+
recorderManager.onStop(function(res) {
|
|
62
|
+
console.log('recorder stop', res);
|
|
63
|
+
|
|
64
|
+
// 4. 创建消息实例,接口返回的实例可以上屏
|
|
65
|
+
const message = chat.createAudioMessage({
|
|
66
|
+
to: 'user1',
|
|
67
|
+
conversationType: TencentCloudChat.TYPES.CONV_C2C,
|
|
68
|
+
// 消息优先级,用于群聊
|
|
69
|
+
// priority: TencentCloudChat.TYPES.MSG_PRIORITY_NORMAL,
|
|
70
|
+
payload: {
|
|
71
|
+
file: res
|
|
72
|
+
},
|
|
73
|
+
// 消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
|
|
74
|
+
// cloudCustomData: 'your cloud custom data'
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// 5. 发送消息
|
|
78
|
+
chat.sendMessage(message).then(function(imResponse) {
|
|
79
|
+
// 发送成功
|
|
80
|
+
console.log(imResponse);
|
|
81
|
+
}).catch(function(imError) {
|
|
82
|
+
// 发送失败
|
|
83
|
+
console.warn('sendMessage error:', imError);
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// 3. 开始录音
|
|
88
|
+
recorderManager.start(recordOptions);
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## 5. 结果判定
|
|
92
|
+
|
|
93
|
+
- 录音结束后能稳定触发 `onStop`,并成功创建语音消息实例。
|
|
94
|
+
- 发送成功时,`sendMessage` Promise 进入 `then`,消息可正常上屏。
|
|
95
|
+
- Android、iOS、小程序、Web 端均可播放该语音消息(`aac` 格式)。
|
|
96
|
+
- 录音异常时,`onError` 有明确日志,且不出现静默失败。
|
|
97
|
+
|
|
98
|
+
## 6. 常见误区
|
|
99
|
+
|
|
100
|
+
- 误区 1:未在 `onStop` 回调中创建消息,导致发送时没有有效语音文件。
|
|
101
|
+
- 误区 2:音频格式未使用 `aac`,导致跨平台互通受限。
|
|
102
|
+
- 误区 3:只调用 `createAudioMessage` 不调用 `sendMessage`,误以为消息已发送。
|
|
103
|
+
|
|
104
|
+
## 7. 问题定义(检索辅助,极简)
|
|
105
|
+
|
|
106
|
+
小程序集成 IM SDK 时,如何完成语音录制、创建语音消息并发送,且保证跨端可互通。
|
|
107
|
+
|
|
108
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
109
|
+
|
|
110
|
+
- 小程序 IM SDK 怎么发送语音消息?
|
|
111
|
+
- 小程序录音后如何用 `createAudioMessage` 发消息?
|
|
112
|
+
- `RecorderManager` 录音结果怎么接入 IM 发送?
|
|
113
|
+
- 语音消息用什么格式可以和 Android/iOS/Web 互通?
|
|
114
|
+
|
|
115
|
+
## 9. 参考来源(可选)
|
|
116
|
+
|
|
117
|
+
- 微信小程序录音能力(RecorderManager.start):`https://developers.weixin.qq.com/minigame/dev/api/media/recorder/RecorderManager.start.html`
|
|
118
|
+
- Chat SDK 音频消息文档:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#createAudioMessage`
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 小程序集成 IM SDK 登录超时 2801 排查与修复
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [miniprogram]
|
|
5
|
+
scope: platform_specific
|
|
6
|
+
tags: [login, timeout, 2801, websocket, 域名白名单, 调试模式, ipv6]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 小程序集成 IM SDK 登录超时 2801 排查与修复
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 该场景的首要排查项是小程序管理后台 `websocket` 域名白名单配置是否完整。
|
|
15
|
+
- 开发版与体验版/正式版校验策略不同,开发版登录正常不等于白名单配置正确。
|
|
16
|
+
- 体验版可开启调试模式验证:调试模式会绕过域名白名单校验,可用于快速定位问题是否由白名单导致。
|
|
17
|
+
- 独立域名 `wss://${SDKAppID}w4c.my-imcloud.com` 需要 SDK `v3.4.6` 及以上版本支持。
|
|
18
|
+
- IPv6 域名 `wss://wssv6.im.qcloud.com` 需要 SDK `v3.4.9` 及以上版本支持。
|
|
19
|
+
|
|
20
|
+
## 2. 字段语义对照
|
|
21
|
+
|
|
22
|
+
| 字段/能力 | 作用 | 说明 |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| 错误码 `2801` | 登录超时信号 | 在体验版/正式版出现时,优先排查网络连通与域名白名单 |
|
|
25
|
+
| `websocket` 域名白名单 | 连接准入控制 | 未完整加白会导致非开发版连接失败或超时 |
|
|
26
|
+
| 体验版调试模式 | 定位手段 | 可绕过域名白名单校验,用于验证是否白名单导致 |
|
|
27
|
+
| `wss://${SDKAppID}w4c.my-imcloud.com` | 独立域名 | SDK `v3.4.6+` 支持 |
|
|
28
|
+
| `wss://wssv6.im.qcloud.com` | IPv6 域名 | SDK `v3.4.9+` 支持 |
|
|
29
|
+
|
|
30
|
+
## 3. 机制/时序
|
|
31
|
+
|
|
32
|
+
开发版可登录 -> 体验版/正式版登录超时(2801)-> 检查小程序管理后台 `websocket` 域名白名单 -> 开启体验版调试模式复测 -> 若调试模式恢复正常,则确认为白名单配置问题。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. 登录小程序管理后台,检查 `websocket` 域名白名单是否已完整配置。参考文档:`https://cloud.tencent.com/document/product/269/117335`。
|
|
37
|
+
2. 在体验版开启调试模式并复测登录。
|
|
38
|
+
3. 若开启调试模式后登录恢复正常,按白名单规范补齐/修正 `websocket` 域名配置。
|
|
39
|
+
4. 使用体验版与正式版再次验证登录链路,确认 2801 消失。
|
|
40
|
+
|
|
41
|
+
## 5. 结果判定
|
|
42
|
+
|
|
43
|
+
- 体验版关闭调试模式后,仍可稳定登录。
|
|
44
|
+
- 正式版登录不再出现 2801 超时。
|
|
45
|
+
- 小程序后台 `websocket` 域名白名单与当前接入域名完全一致。
|
|
46
|
+
- 若使用独立域名或 IPv6 域名,SDK 版本分别满足 `v3.4.6+` / `v3.4.9+`。
|
|
47
|
+
|
|
48
|
+
## 6. 常见误区
|
|
49
|
+
|
|
50
|
+
- 误区 1:开发版登录正常,就认为域名白名单已经配置正确。
|
|
51
|
+
- 误区 2:只在调试模式下验证通过,就直接发布正式版。
|
|
52
|
+
- 误区 3:使用独立域名或 IPv6 域名时忽略 SDK 最低版本要求。
|
|
53
|
+
|
|
54
|
+
## 7. 问题定义(检索辅助,极简)
|
|
55
|
+
|
|
56
|
+
小程序集成 IM SDK 时,开发版登录正常,但体验版和正式版登录超时(2801)。
|
|
57
|
+
|
|
58
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
59
|
+
|
|
60
|
+
- 体验版小程序 IM 登录 2801 怎么处理?
|
|
61
|
+
- 为什么开发版能登,体验版和正式版超时?
|
|
62
|
+
- 体验版登录超时是否和 websocket 域名白名单有关?
|
|
63
|
+
- 小程序后台 websocket 没加白会导致 IM 登录失败吗?
|
|
64
|
+
|
|
65
|
+
## 9. 参考来源(可选)
|
|
66
|
+
|
|
67
|
+
- 小程序 websocket 域名配置说明:`https://cloud.tencent.com/document/product/269/117335`
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: 小程序集成 IM SDK 富媒体消息上传失败排查与修复(图片/视频/语音/文件)
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [miniprogram]
|
|
5
|
+
scope: platform_specific
|
|
6
|
+
tags: [upload, media, image, video, audio, file, uploadFile, 域名白名单, 调试模式, COS 独立域名]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# 小程序集成 IM SDK 媒体上传失败排查与修复(图片/视频/语音/文件)
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- 该场景的首要排查项是小程序管理后台 `uploadFile` 域名白名单配置是否完整。
|
|
15
|
+
- 开发版与体验版/正式版校验策略不同,开发版上传正常不等于白名单配置正确。
|
|
16
|
+
- 体验版可开启调试模式验证:调试模式会绕过域名白名单校验,可用于快速定位问题是否由 `uploadFile` 域名配置导致。
|
|
17
|
+
- 从 2024-09-10 起,新增应用默认分配 COS 独立域名 `https://${SDKAppID}-cn.rich.my-imcloud.com`。
|
|
18
|
+
- 使用 COS 独立域名时,必须将对应域名加入小程序 `uploadFile` 合法域名白名单。
|
|
19
|
+
|
|
20
|
+
## 2. 字段语义对照
|
|
21
|
+
|
|
22
|
+
| 字段/能力 | 作用 | 说明 |
|
|
23
|
+
|---|---|---|
|
|
24
|
+
| `uploadFile` 域名白名单 | 上传通道准入控制 | 未完整加白会导致体验版/正式版上传失败 |
|
|
25
|
+
| 体验版调试模式 | 定位手段 | 可绕过域名白名单校验,用于验证是否白名单导致 |
|
|
26
|
+
| `https://${SDKAppID}-cn.rich.my-imcloud.com` | COS 独立域名 | 新增应用默认分配,需加入 `uploadFile` 白名单 |
|
|
27
|
+
| 媒体消息类型(图片/视频/语音/文件) | 影响范围 | 上传能力共用 `uploadFile` 链路,均受白名单配置影响 |
|
|
28
|
+
|
|
29
|
+
## 3. 机制/时序
|
|
30
|
+
|
|
31
|
+
开发版上传正常 -> 体验版/正式版上传失败 -> 检查小程序管理后台 `uploadFile` 域名白名单 -> 开启体验版调试模式复测 -> 若调试模式恢复正常,则确认为白名单配置问题。
|
|
32
|
+
|
|
33
|
+
## 4. 标准用法
|
|
34
|
+
|
|
35
|
+
1. 登录小程序管理后台,检查 `uploadFile` 合法域名是否已完整配置。参考文档:`https://cloud.tencent.com/document/product/269/117335`。
|
|
36
|
+
2. 核对并加入当前应用实际使用的上传域名,重点确认 COS 独立域名 `https://${SDKAppID}-cn.rich.my-imcloud.com` 是否已加白。
|
|
37
|
+
3. 在体验版开启调试模式并复测图片/视频/语音/文件上传。
|
|
38
|
+
4. 若开启调试模式后上传恢复正常,按白名单规范补齐/修正 `uploadFile` 域名配置。
|
|
39
|
+
5. 关闭调试模式后,使用体验版与正式版再次验证上传链路。
|
|
40
|
+
|
|
41
|
+
## 5. 结果判定
|
|
42
|
+
|
|
43
|
+
- 体验版关闭调试模式后,图片/视频/语音/文件上传均成功。
|
|
44
|
+
- 正式版上传链路稳定,无上传失败。
|
|
45
|
+
- 小程序后台 `uploadFile` 域名白名单与当前接入域名完全一致。
|
|
46
|
+
- COS 独立域名 `https://${SDKAppID}-cn.rich.my-imcloud.com` 已加入白名单(适用新增应用)。
|
|
47
|
+
|
|
48
|
+
## 6. 常见误区
|
|
49
|
+
|
|
50
|
+
- 误区 1:开发版上传正常,就认为域名白名单已经配置正确。
|
|
51
|
+
- 误区 2:只在调试模式下验证通过,就直接发布正式版。
|
|
52
|
+
- 误区 3:只检查 `request` 或 `websocket` 白名单,忽略 `uploadFile` 白名单。
|
|
53
|
+
- 误区 4:新增应用启用 COS 独立域名后,未同步更新 `uploadFile` 白名单。
|
|
54
|
+
|
|
55
|
+
## 7. 问题定义(检索辅助,极简)
|
|
56
|
+
|
|
57
|
+
小程序集成 IM SDK 时,开发版图片/视频/语音/文件上传正常,但体验版和正式版上传失败。
|
|
58
|
+
|
|
59
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
60
|
+
|
|
61
|
+
- 小程序 IM 上传图片在体验版失败怎么处理?
|
|
62
|
+
- 为什么开发版能上传,体验版和正式版上传失败?
|
|
63
|
+
- 小程序 `uploadFile` 域名白名单没配置会导致 IM 上传失败吗?
|
|
64
|
+
- 体验版开启调试模式后上传恢复正常,说明什么问题?
|
|
65
|
+
|
|
66
|
+
## 9. 参考来源(可选)
|
|
67
|
+
|
|
68
|
+
- 小程序合法域名配置说明:`https://cloud.tencent.com/document/product/269/117335`
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Web(PC/H5)集成 IM SDK 发送语音消息标准方案
|
|
3
|
+
product: chat
|
|
4
|
+
frameworks: [web]
|
|
5
|
+
scope: platform_specific
|
|
6
|
+
tags: [audio, voice, createAudioMessage, sendMessage, Recorder, js-audio-recorder, h5, pc]
|
|
7
|
+
version_range: ">=3.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web(PC/H5)集成 IM SDK 发送语音消息标准方案
|
|
11
|
+
|
|
12
|
+
## 1. 核心结论
|
|
13
|
+
|
|
14
|
+
- Web 端可使用第三方录音库(如 `js-audio-recorder`)完成录音,再将录音结果转换为 `File` 后调用 `createAudioMessage`。
|
|
15
|
+
- `audioFile` 必须带上 `uri` 字段(`audioFile.uri = window.URL.createObjectURL(audioFile)`),否则语音消息创建与发送链路不完整。
|
|
16
|
+
- 消息创建后通过 `sendMessage` 发送,发送结果以 Promise 成功/失败回调为准。
|
|
17
|
+
- 建议在 `createAudioMessage` 中传入 `onProgress` 回调,实时观测音频上传进度。
|
|
18
|
+
|
|
19
|
+
## 2. 字段语义对照
|
|
20
|
+
|
|
21
|
+
| 字段/能力 | 作用 | 说明 |
|
|
22
|
+
|---|---|---|
|
|
23
|
+
| `Recorder` | 录音能力 | 在浏览器侧采集语音数据 |
|
|
24
|
+
| `recorder.getWAVBlob()` | 导出录音数据 | 获取 WAV 二进制数据用于后续构造 `File` |
|
|
25
|
+
| `audioFile.uri` | 本地可访问地址 | 必填字段,使用 `window.URL.createObjectURL(audioFile)` 生成 |
|
|
26
|
+
| `chat.createAudioMessage({...})` | 创建语音消息实例 | 生成可上屏、可发送的语音消息对象 |
|
|
27
|
+
| `chat.sendMessage(message)` | 发送消息 | 返回 Promise,`then` 成功、`catch` 失败 |
|
|
28
|
+
| `onProgress` | 上传进度回调 | 观测语音文件上传过程 |
|
|
29
|
+
|
|
30
|
+
## 3. 机制/时序
|
|
31
|
+
|
|
32
|
+
开始录音 -> 停止录音 -> 计算时长并获取 WAV Blob -> 转换为 `File` 并补充 `uri` 与 `duration` -> 调用 `createAudioMessage` 创建语音消息 -> 调用 `sendMessage` 发送 -> 根据发送结果更新 UI 与日志。
|
|
33
|
+
|
|
34
|
+
## 4. 标准用法
|
|
35
|
+
|
|
36
|
+
1. 使用录音器开始录音并记录起始时间。
|
|
37
|
+
2. 结束录音后计算时长,获取 `WAV Blob`。
|
|
38
|
+
3. 将 `Blob` 转为 `File`,并补齐 `audioFile.uri`、`audioFile.duration`。
|
|
39
|
+
4. 调用 `createAudioMessage` 创建语音消息,传入 `onProgress` 回调。
|
|
40
|
+
5. 调用 `sendMessage` 发送语音消息,处理成功与失败分支。
|
|
41
|
+
|
|
42
|
+
```javascript
|
|
43
|
+
// 在 Web 端创建语音消息并发送
|
|
44
|
+
// 示例:使用第三方库 js-audio-recorder 录制音频
|
|
45
|
+
|
|
46
|
+
// 1. 开始录制
|
|
47
|
+
let recorder = new Recorder({
|
|
48
|
+
sampleBits: 16, // 采样位数,支持 8 或 16,默认 16
|
|
49
|
+
sampleRate: 16000, // 采样率
|
|
50
|
+
numChannels: 1 // 声道,支持 1 或 2,默认 1
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
let startTs;
|
|
54
|
+
recorder.start().then(() => {
|
|
55
|
+
// 开始录音,记录起始时间戳
|
|
56
|
+
startTs = Date.now();
|
|
57
|
+
}, (error) => {
|
|
58
|
+
// 出错了
|
|
59
|
+
console.log(`${error.name} : ${error.message}`);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// 2. 结束录制
|
|
63
|
+
recorder.stop();
|
|
64
|
+
|
|
65
|
+
// 3. 计算录音时长,获取 WAV 数据
|
|
66
|
+
let duration = Date.now() - startTs; // 单位:ms
|
|
67
|
+
let wavBlob = recorder.getWAVBlob();
|
|
68
|
+
|
|
69
|
+
// 4. blob 数据转成 File 对象
|
|
70
|
+
let audioFile = new File([wavBlob], 'hello.wav', { type: 'wav' });
|
|
71
|
+
audioFile.uri = window.URL.createObjectURL(audioFile);
|
|
72
|
+
audioFile.duration = duration;
|
|
73
|
+
|
|
74
|
+
// 5. 创建音频消息
|
|
75
|
+
let message = chat.createAudioMessage({
|
|
76
|
+
to: 'user1',
|
|
77
|
+
conversationType: 'C2C',
|
|
78
|
+
payload: {
|
|
79
|
+
file: audioFile
|
|
80
|
+
},
|
|
81
|
+
// 音频上传进度回调
|
|
82
|
+
onProgress: function(event) {
|
|
83
|
+
console.log('file uploading:', event);
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
// 6. 发送消息
|
|
88
|
+
chat.sendMessage(message).then(function(imResponse) {
|
|
89
|
+
// 发送成功
|
|
90
|
+
console.log(imResponse);
|
|
91
|
+
}).catch(function(imError) {
|
|
92
|
+
// 发送失败
|
|
93
|
+
console.warn('sendMessage error:', imError);
|
|
94
|
+
});
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
## 5. 结果判定
|
|
98
|
+
|
|
99
|
+
- 录音结束后可稳定获取 `wavBlob`,并成功构造 `audioFile`。
|
|
100
|
+
- `audioFile.uri` 已设置,`createAudioMessage` 可正常创建语音消息。
|
|
101
|
+
- `sendMessage` 成功进入 `then`,语音消息可上屏并可播放。
|
|
102
|
+
- 上传过程中能收到 `onProgress` 回调,失败时 `catch` 有明确错误日志。
|
|
103
|
+
|
|
104
|
+
## 6. 常见误区
|
|
105
|
+
|
|
106
|
+
- 误区 1:未设置 `audioFile.uri`,直接发送导致消息链路异常。
|
|
107
|
+
- 误区 2:只创建消息不发送,误以为消息已投递。
|
|
108
|
+
- 误区 3:录音结束后未正确计算时长或封装文件,导致音频不可用。
|
|
109
|
+
|
|
110
|
+
## 7. 问题定义(检索辅助,极简)
|
|
111
|
+
|
|
112
|
+
Web(PC/H5)集成 IM SDK 时,如何完成语音录制并稳定发送语音消息。
|
|
113
|
+
|
|
114
|
+
## 8. 同义问法覆盖(检索召回,极简)
|
|
115
|
+
|
|
116
|
+
- Web IM SDK 怎么发送语音消息?
|
|
117
|
+
- PC/H5 录音后如何调用 `createAudioMessage`?
|
|
118
|
+
- `audioFile.uri` 为什么必须设置?
|
|
119
|
+
|
|
120
|
+
## 9. 参考来源(可选)
|
|
121
|
+
|
|
122
|
+
- PC/H5 录音能力:`https://www.npmjs.com/package/js-audio-recorder`
|
|
123
|
+
- Chat SDK `createAudioMessage` 文档:`https://web.sdk.qcloud.com/im/doc/v3/zh-cn/SDK.html#createAudioMessage`
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
## 组件概述
|
|
2
2
|
|
|
3
3
|
ChatSetting 是基于 Jetpack Compose 构建的聊天设置组件集合,主要包含单聊设置(C2CChatSetting)和群聊设置(GroupChatSetting)两个核心组件。这些组件为用户提供了完整的聊天会话管理功能,包括用户信息管理、权限设置、群组管理等核心能力。
|
|
4
|
-
| <strong>单聊设置界面</strong> | <strong>群聊设置界面</strong> |
|
|
5
|
-
| --- | --- |
|
|
6
|
-
| | |
|
|
7
4
|
|
|
8
5
|
## 组件集成
|
|
9
6
|
|
|
10
|
-
ChatSetting 组件属于 TUIKit Compose 的一部分,集成 TUIKit Compose 即可获取并使用 ChatSetting
|
|
7
|
+
ChatSetting 组件属于 TUIKit Compose 的一部分,集成 TUIKit Compose 即可获取并使用 ChatSetting 组件。集成方法。
|
|
11
8
|
|
|
12
9
|
## 组件构成
|
|
13
10
|
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
## 组件概述
|
|
2
2
|
|
|
3
3
|
ContactList 是基于 Jetpack Compose 构建的联系人列表组件,为用户提供完整的联系人管理功能。该组件支持好友列表展示、好友申请处理、群组列表管理、黑名单管理等功能,并提供了丰富的交互回调接口。
|
|
4
|
-
| <strong>联系人列表</strong> | <strong>群组列表</strong> | <strong>好友申请列表</strong> |
|
|
5
|
-
| --- | --- | --- |
|
|
6
|
-
| | | |
|
|
7
4
|
|
|
8
5
|
## 组件集成
|
|
9
6
|
|
|
@@ -19,8 +16,6 @@ ContactList 是基于 Jetpack Compose 构建的联系人列表组件,为用户
|
|
|
19
16
|
| <code>onContactClick: (ContactInfo) -> Unit</code> | 点击联系人的回调,可选参数。 | |
|
|
20
17
|
| <code>contactListViewModelFactory: ContactListViewModelFactory</code> | 创建组件内部 ContactListViewModel 的工厂类。通常情况下,您无需手动创建,组件已提供默认实现。 | |
|
|
21
18
|
|
|
22
|
-
`ContactList` 上半部分预留了各个子视图的入口 cell,例如好友申请、群聊申请、群聊列表和黑名单列表。下半部分内嵌了联系人列表,如下图所示:
|
|
23
|
-
|
|
24
19
|
## 基础用法
|
|
25
20
|
|
|
26
21
|
在 `ContactList` 中点击好友申请、群聊申请、群聊列表和黑名单列表入口时,由组件自动完成路由,无需额外处理;点击群聊列表中的群组或联系人列表/黑名单中的个人时,会触发相应的回调接口 (`onGroupClick/onContactClick`),需监听回调并实现自定义跳转。路由跳转示例图如下所示:
|
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
## 组件概述
|
|
2
2
|
|
|
3
3
|
ConversationList 是一个基于 Jetpack Compose 构建的会话列表组件,主要用于展示和管理用户的聊天会话。该组件提供了完整的会话列表功能,包括会话展示、交互操作等核心能力。
|
|
4
|
-
| <strong>会话列表</strong> | <strong>会话操作</strong> |
|
|
5
|
-
| --- | --- |
|
|
6
|
-
| | |
|
|
7
4
|
|
|
8
5
|
## 组件集成
|
|
9
6
|
|
|
10
|
-
ConversationList 是属于 TUIKit Compose 的一个组件,集成 TUIKit Compose 即可获取并使用 ConversationList
|
|
7
|
+
ConversationList 是属于 TUIKit Compose 的一个组件,集成 TUIKit Compose 即可获取并使用 ConversationList,集成方法。
|
|
11
8
|
|
|
12
9
|
## 组件构成
|
|
13
10
|
|
|
@@ -112,11 +109,6 @@ ConversationList() {
|
|
|
112
109
|
```
|
|
113
110
|
|
|
114
111
|
> **注意:**
|
|
115
|
-
>
|
|
116
112
|
> 局部配置的优先级大于全局配置。
|
|
117
113
|
>
|
|
118
114
|
|
|
119
|
-
自定义效果如下图所示:
|
|
120
|
-
| 会话操作(默认选项) | 会话操作(隐藏<strong>删除</strong>选项) | 会话操作(新增<strong>隐藏会话</strong>选项) |
|
|
121
|
-
| --- | --- | --- |
|
|
122
|
-
| | | |
|