@tencent-rtc/mcp 1.3.8 → 1.4.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/package.json +2 -2
- package/resource/doc/{tuicallkit/iOS/faq.md → callkit/faq/android-faq.md} +10 -22
- package/resource/doc/{tuicallkit/android/faq.md → callkit/faq/flutter-faq.md} +10 -22
- package/resource/doc/{tuicallkit/flutter/faq.md → callkit/faq/ios-faq.md} +10 -22
- package/resource/doc/callkit/preset/android/api.md +296 -0
- package/resource/doc/callkit/preset/android/integration.md +430 -0
- package/resource/doc/callkit/preset/flutter/api.md +410 -0
- package/resource/doc/{tuicallkit → callkit/preset}/flutter/integration.md +35 -97
- package/resource/doc/callkit/preset/ios/api.md +80 -0
- package/resource/doc/{tuicallkit/iOS → callkit/preset/ios}/integration.md +37 -118
- package/resource/doc/callkit/preset/react/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/react/integration.md +5 -20
- package/resource/doc/callkit/preset/vue/api.md +501 -0
- package/resource/doc/{tuicallkit → callkit/preset}/vue/integration.md +4 -19
- package/resource/doc/{chatuikit → chatkit}/android/faq.md +29 -38
- package/resource/doc/{chatuikit → chatkit}/android/features/theme.md +22 -166
- package/resource/doc/chatkit/android/integration.md +490 -0
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +281 -0
- package/resource/doc/{chatuikit → chatkit}/faq/common/product.md +0 -1
- package/resource/doc/{chatuikit → chatkit}/faq/common/server.md +1 -1
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +199 -0
- package/resource/doc/{chatuikit → chatkit}/faq/flutter_sdk/faq.md +3 -3
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +235 -0
- package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/faq.md +3 -3
- package/resource/doc/{chatuikit → chatkit}/flutter/features/theme.md +22 -166
- package/resource/doc/{chatuikit → chatkit}/flutter/integration.md +19 -88
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/faq.md +29 -38
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/features/theme.md +27 -176
- package/resource/doc/{chatuikit/iOS → chatkit/ios}/integration.md +47 -165
- package/resource/doc/{chatuikit → chatkit}/react/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-header.md +8 -49
- package/resource/doc/{chatuikit → chatkit}/react/components/chat-setting.md +6 -35
- package/resource/doc/{chatuikit → chatkit}/react/components/chat.md +0 -6
- package/resource/doc/{chatuikit → chatkit}/react/components/component-list.md +0 -11
- package/resource/doc/{chatuikit → chatkit}/react/components/contact-list.md +96 -502
- package/resource/doc/chatkit/react/components/conversation-actions.md +174 -0
- package/resource/doc/chatkit/react/components/conversation-list.md +333 -0
- package/resource/doc/chatkit/react/components/conversation-preview.md +118 -0
- package/resource/doc/chatkit/react/components/conversation-search.md +60 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/message-input.md +36 -337
- package/resource/doc/{chatuikit → chatkit}/react/components/message-list.md +20 -212
- package/resource/doc/chatkit/react/components/search.md +243 -0
- package/resource/doc/{chatuikit → chatkit}/react/components/tuikit.md +1 -47
- package/resource/doc/{chatuikit → chatkit}/react/integration.md +21 -81
- package/resource/doc/{chatuikit → chatkit}/vue/components/avatar.md +0 -33
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-header.md +7 -48
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat-setting.md +3 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/chat.md +0 -5
- package/resource/doc/{chatuikit → chatkit}/vue/components/component-list.md +0 -15
- package/resource/doc/chatkit/vue/components/contact-list.md +271 -0
- package/resource/doc/chatkit/vue/components/conversation-actions.md +228 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/conversation-list.md +42 -492
- package/resource/doc/chatkit/vue/components/conversation-preview.md +213 -0
- package/resource/doc/chatkit/vue/components/conversation-search.md +50 -0
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-input.md +2 -223
- package/resource/doc/{chatuikit → chatkit}/vue/components/message-list.md +23 -252
- package/resource/doc/{chatuikit → chatkit}/vue/components/search.md +73 -640
- package/resource/doc/{chatuikit → chatkit}/vue/components/tuikit.md +7 -21
- package/resource/doc/{chatuikit → chatkit}/vue/components/userpicker.md +3 -62
- package/resource/doc/{chatuikit → chatkit}/vue/faq.md +1 -1
- package/resource/doc/{chatuikit → chatkit}/vue/integration.md +22 -23
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audience-list.md +18 -89
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-audio-effect.md +34 -192
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-barrage.md +28 -141
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-base-beauty.md +20 -112
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-co-guest-interaction.md +59 -193
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-gift.md +75 -455
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-host-interaction.md +94 -344
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-integration.md +107 -515
- package/resource/doc/livekit/{live → core-sdk/live}/android/live-live-list.md +33 -173
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audience-list.md +14 -93
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-audio-effect.md +34 -179
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-barrage.md +19 -107
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-base-beauty.md +24 -166
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-co-guest-interaction.md +56 -163
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-gift.md +69 -443
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-host-interaction.md +117 -364
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-integration.md +107 -492
- package/resource/doc/livekit/{live → core-sdk/live}/flutter/live-live-list.md +23 -165
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audience-list.md +35 -111
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-audio-effect.md +35 -193
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-barrage.md +31 -144
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-base-beauty.md +24 -116
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-co-guest-interaction.md +37 -171
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-gift.md +79 -459
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-host-interaction.md +69 -320
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-integration.md +85 -502
- package/resource/doc/livekit/{live → core-sdk/live}/ios/live-live-list.md +32 -169
- package/resource/doc/livekit/core-sdk/voice/android/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-audio-effect.md +222 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-barrage.md +452 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +536 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-gift.md +442 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-host-interaction.md +489 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-integration.md +574 -0
- package/resource/doc/livekit/core-sdk/voice/android/voice-room-list.md +435 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +516 -0
- package/resource/doc/livekit/core-sdk/voice/flutter/voice-integration.md +576 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audience-list.md +263 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-audio-effect.md +212 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-barrage.md +404 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +499 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-gift.md +403 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-host-interaction.md +552 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-integration.md +514 -0
- package/resource/doc/livekit/core-sdk/voice/ios/voice-room-list.md +348 -0
- package/resource/doc/livekit/faq/common/{error_code.md → error-code.md} +2 -2
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +780 -0
- package/resource/doc/livekit/preset/live/vue/components/barrage.md +291 -0
- package/resource/doc/livekit/{live → preset/live}/vue/components/co-guest-panel.md +10 -49
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-audience-list.md +26 -144
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-scene-panel.md +12 -75
- package/resource/doc/livekit/{live → preset/live}/vue/components/live-view.md +36 -227
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +215 -0
- package/resource/doc/livekit/preset/live/vue/faq.md +1 -0
- package/resource/doc/livekit/preset/live/vue/live-list-integration.md +241 -0
- package/resource/doc/livekit/preset/live/vue/live-player-desk-integration.md +299 -0
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +300 -0
- package/resource/doc/livekit/preset/live/vue/live-pusher-integration.md +743 -0
- package/resource/doc/roomkit/vue/faq.md +1 -0
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +17 -53
- package/resource/doc/roomkit/vue/features/device-detection.md +30 -48
- package/resource/doc/roomkit/vue/features/device-state.md +24 -44
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +13 -36
- package/resource/doc/roomkit/vue/features/room-chat.md +31 -89
- package/resource/doc/roomkit/vue/features/room-participant-state.md +28 -50
- package/resource/doc/roomkit/vue/features/room-state.md +25 -34
- package/resource/doc/roomkit/vue/features/room-view.md +30 -125
- package/resource/doc/roomkit/vue/features/schedule-room.md +9 -40
- package/resource/doc/roomkit/vue/features/screen-share.md +22 -90
- package/resource/doc/roomkit/vue/features/virtual-background.md +13 -29
- package/resource/doc/roomkit/vue/integration.md +173 -337
- package/resource/doc/rtcengine/faq/common/error_code.md +1 -0
- package/resource/doc/rtcengine/faq/web/web.md +14 -24
- package/resource/doc/rtcengine/web/api.md +1 -3
- package/resource/doc/rtcengine/web/how_to_integrated_web_sdk.md +3 -10
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +1 -5
- package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +1 -2
- package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +2 -4
- package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +3 -5
- package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +1 -7
- package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +0 -2
- package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +4 -8
- package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +11 -11
- package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +12 -88
- package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +5 -5
- package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +30 -37
- package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +13 -90
- package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +1 -2
- package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +1 -2
- package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +19 -19
- package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +1 -1
- package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +4 -5
- package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +3 -3
- package/resource/doc/trtc/C++/ITRTCCloud.md +686 -2835
- package/resource/doc/trtc/C++/ITRTCStatistics.md +53 -308
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/C++/ITXDeviceManager.md +126 -767
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +579 -2147
- package/resource/doc/trtc/C++/TRTCTypeDef.md +703 -3378
- package/resource/doc/trtc/C++/TXLiteAVCode.md +116 -908
- package/resource/doc/trtc/android/TRTCCloud.md +606 -2573
- package/resource/doc/trtc/android/TRTCCloudDef.md +752 -3640
- package/resource/doc/trtc/android/TRTCCloudListener.md +581 -2008
- package/resource/doc/trtc/android/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/android/TXAudioEffectManager.md +202 -1022
- package/resource/doc/trtc/android/TXBeautyManager.md +127 -704
- package/resource/doc/trtc/android/TXDeviceManager.md +51 -318
- package/resource/doc/trtc/android/TXLiteAVCode.md +114 -892
- package/resource/doc/trtc/iOS/TRTCCloud.md +694 -2904
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +726 -3498
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +543 -2028
- package/resource/doc/trtc/iOS/TRTCStatistics.md +48 -278
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +174 -877
- package/resource/doc/trtc/iOS/TXBeautyManager.md +128 -710
- package/resource/doc/trtc/iOS/TXDeviceManager.md +129 -772
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +117 -915
- package/server.js +1 -5
- package/server.js.map +1 -1
- package/tools/call/get_callkit_api.js +32 -0
- package/tools/call/get_callkit_api.js.map +1 -0
- package/tools/call/get_native_call_uikit_integration.js +34 -0
- package/tools/call/get_native_call_uikit_integration.js.map +1 -0
- package/tools/call/{get-web-call-integration.js → get_web_call_uikit_integration.js} +13 -8
- package/tools/call/get_web_call_uikit_integration.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js +34 -0
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +1 -0
- package/tools/chat/get_native_chat_uikit_integration.js +45 -0
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js +34 -0
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +1 -0
- package/tools/chat/get_web_chat_uikit_integration.js +45 -0
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -0
- package/tools/common/get_faq.js +265 -0
- package/tools/common/get_faq.js.map +1 -0
- package/tools/common/{get-usersig.js → get_usersig.js} +6 -3
- package/tools/common/get_usersig.js.map +1 -0
- package/tools/common/present_framework_choice.js +63 -0
- package/tools/common/present_framework_choice.js.map +1 -0
- package/tools/definitions/get_callkit_api_def.js +29 -0
- package/tools/definitions/get_callkit_api_def.js.map +1 -0
- package/tools/definitions/get_faq_def.js +17 -18
- package/tools/definitions/get_faq_def.js.map +1 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js +15 -18
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +31 -0
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_features_def.js.map +1 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js +34 -0
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +32 -0
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +1 -0
- package/tools/definitions/get_usersig_def.js +17 -22
- package/tools/definitions/get_usersig_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +15 -7
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +17 -49
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +16 -19
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +15 -18
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_livekit_api_def.js +30 -0
- package/tools/definitions/get_web_livekit_api_def.js.map +1 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js +32 -0
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +15 -30
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +31 -0
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +1 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +27 -0
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +24 -12
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/index.js +47 -59
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_features.js +65 -0
- package/tools/live/get_native_livekit_core_features.js.map +1 -0
- package/tools/live/get_native_livekit_core_integration.js +59 -0
- package/tools/live/get_native_livekit_core_integration.js.map +1 -0
- package/tools/live/get_web_live_uikit_integration.js +48 -0
- package/tools/live/get_web_live_uikit_integration.js.map +1 -0
- package/tools/live/get_web_livekit_api.js +32 -0
- package/tools/live/get_web_livekit_api.js.map +1 -0
- package/tools/live/get_web_livekit_component_detail.js +34 -0
- package/tools/live/get_web_livekit_component_detail.js.map +1 -0
- package/tools/room/{get-web-room-integration.js → get_web_room_uikit_integration.js} +13 -14
- package/tools/room/get_web_room_uikit_integration.js.map +1 -0
- package/tools/room/{get-web-room-feature-detail.js → get_web_roomkit_feature_detail.js} +30 -31
- package/tools/room/get_web_roomkit_feature_detail.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +1 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +31 -0
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +1 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js +73 -0
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +1 -0
- package/utils/generate-structured-result.js +61 -17
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/report-cls-client.js +12 -1
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +2 -2
- package/resource/doc/chatuikit/android/integration.md +0 -287
- package/resource/doc/chatuikit/faq/android_sdk/client-api.md +0 -1371
- package/resource/doc/chatuikit/faq/flutter_sdk/client-api.md +0 -932
- package/resource/doc/chatuikit/faq/ios_sdk/client-api.md +0 -1119
- package/resource/doc/chatuikit/flutter/workflow.md +0 -941
- package/resource/doc/chatuikit/iOS/workflow.md +0 -0
- package/resource/doc/chatuikit/react/components/conversation-list.md +0 -1017
- package/resource/doc/chatuikit/react/components/search.md +0 -745
- package/resource/doc/chatuikit/react/create-group.md +0 -23
- package/resource/doc/chatuikit/react/init.md +0 -26
- package/resource/doc/chatuikit/react/workflow.md +0 -258
- package/resource/doc/chatuikit/vue/components/contact-list.md +0 -679
- package/resource/doc/chatuikit/vue/create-group.md +0 -25
- package/resource/doc/chatuikit/vue/init.md +0 -40
- package/resource/doc/chatuikit/vue/workflow.md +0 -395
- package/resource/doc/livekit/live/android/workflow.md +0 -320
- package/resource/doc/livekit/live/flutter/workflow.md +0 -353
- package/resource/doc/livekit/live/ios/workflow.md +0 -454
- package/resource/doc/livekit/live/vue/components/barrage.md +0 -616
- package/resource/doc/livekit/live/vue/components/stream-mixer.md +0 -446
- package/resource/doc/livekit/live/vue/faq.md +0 -0
- package/resource/doc/livekit/live/vue/live-list-integration.md +0 -200
- package/resource/doc/livekit/live/vue/live-player-desk-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-player-h5-integration.md +0 -269
- package/resource/doc/livekit/live/vue/live-pusher-integration.md +0 -595
- package/resource/doc/livekit/live/vue/states/live-state.md +0 -3591
- package/resource/doc/livekit/live/vue/workflow.md +0 -218
- package/resource/doc/native_live/android/V2TXLiveCode_api_android.md +0 -312
- package/resource/doc/native_live/android/V2TXLiveDef_api_android.md +0 -430
- package/resource/doc/native_live/android/V2TXLivePlayerObserver_api_android.md +0 -679
- package/resource/doc/native_live/android/V2TXLivePlayer_api_android.md +0 -671
- package/resource/doc/native_live/android/V2TXLivePremier_api_android.md +0 -271
- package/resource/doc/native_live/android/V2TXLivePusherObserver_api_android.md +0 -849
- package/resource/doc/native_live/android/V2TXLivePusher_api_android.md +0 -1046
- package/resource/doc/native_live/flutter/V2TXLiveCode_api_flutter.md +0 -460
- package/resource/doc/native_live/flutter/V2TXLiveDef_api_flutter.md +0 -558
- package/resource/doc/native_live/flutter/V2TXLivePlayerObserver_api_flutter.md +0 -865
- package/resource/doc/native_live/flutter/V2TXLivePlayer_api_flutter.md +0 -657
- package/resource/doc/native_live/flutter/V2TXLivePremier_api_flutter.md +0 -437
- package/resource/doc/native_live/flutter/V2TXLivePusherObserver_api_flutter.md +0 -335
- package/resource/doc/native_live/flutter/V2TXLivePusher_api_flutter.md +0 -748
- package/resource/doc/native_live/iOS/V2TXLiveCode_api_iOS.md +0 -327
- package/resource/doc/native_live/iOS/V2TXLiveDef_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayerObserver_api_iOS.md +0 -507
- package/resource/doc/native_live/iOS/V2TXLivePlayer_api_iOS.md +0 -659
- package/resource/doc/native_live/iOS/V2TXLivePremier_api_iOS.md +0 -284
- package/resource/doc/native_live/iOS/V2TXLivePusherObserver_api_iOS.md +0 -814
- package/resource/doc/native_live/iOS/V2TXLivePusher_api_iOS.md +0 -1000
- package/resource/doc/roomkit/vue/features/workflow.md +0 -553
- package/resource/doc/roomkit/vue/workflow.md +0 -487
- package/resource/doc/tuicallkit/android/integration.md +0 -286
- package/resource/doc/tuicallkit/android/workflow.md +0 -0
- package/resource/doc/tuicallkit/faq/android_sdk/call-observer-api.md +0 -784
- package/resource/doc/tuicallkit/faq/android_sdk/callkit-api.md +0 -610
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-define-api.md +0 -938
- package/resource/doc/tuicallkit/faq/flutter_sdk/call-observer-api.md +0 -897
- package/resource/doc/tuicallkit/faq/flutter_sdk/callkit-api.md +0 -469
- package/resource/doc/tuicallkit/faq/ios_sdk/call-observer-api.md +0 -781
- package/resource/doc/tuicallkit/faq/ios_sdk/callkit-api.md +0 -398
- package/resource/doc/tuicallkit/flutter/workflow.md +0 -331
- package/resource/doc/tuicallkit/react/api.md +0 -1404
- package/resource/doc/tuicallkit/vue/api.md +0 -1406
- package/resource/doc/tuicallkit/vue/faq.md +0 -36
- package/tools/call/get-native-call-integration.js +0 -43
- package/tools/call/get-native-call-integration.js.map +0 -1
- package/tools/call/get-web-call-api.js +0 -27
- package/tools/call/get-web-call-api.js.map +0 -1
- package/tools/call/get-web-call-integration.js.map +0 -1
- package/tools/chat/get-native-chat-feature-detail.js +0 -30
- package/tools/chat/get-native-chat-feature-detail.js.map +0 -1
- package/tools/chat/get-native-chat-integration.js +0 -45
- package/tools/chat/get-native-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-component-detail.js +0 -31
- package/tools/chat/get-web-chat-component-detail.js.map +0 -1
- package/tools/chat/get-web-chat-integration.js +0 -45
- package/tools/chat/get-web-chat-integration.js.map +0 -1
- package/tools/chat/get-web-chat-uikit-init.js +0 -28
- package/tools/chat/get-web-chat-uikit-init.js.map +0 -1
- package/tools/chat/get-web-create-group-doc.js +0 -28
- package/tools/chat/get-web-create-group-doc.js.map +0 -1
- package/tools/common/get-faq.js +0 -91
- package/tools/common/get-faq.js.map +0 -1
- package/tools/common/get-usersig.js.map +0 -1
- package/tools/common/present-framework-choice.js +0 -16
- package/tools/common/present-framework-choice.js.map +0 -1
- package/tools/common/record-prompt.js +0 -55
- package/tools/common/record-prompt.js.map +0 -1
- package/tools/common/record-result.js +0 -60
- package/tools/common/record-result.js.map +0 -1
- package/tools/definitions/get_native_chat_feature_detail_def.js +0 -32
- package/tools/definitions/get_native_chat_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_live_api_def.js +0 -23
- package/tools/definitions/get_native_live_api_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_extra_features_def.js +0 -87
- package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_integration_def.js +0 -49
- package/tools/definitions/get_native_live_uikit_integration_def.js.map +0 -1
- package/tools/definitions/get_native_live_uikit_interaction_def.js +0 -74
- package/tools/definitions/get_native_live_uikit_interaction_def.js.map +0 -1
- package/tools/definitions/get_trtc_native_api_def.js +0 -16
- package/tools/definitions/get_trtc_native_api_def.js.map +0 -1
- package/tools/definitions/get_web_call_uikit_api_def.js +0 -23
- package/tools/definitions/get_web_call_uikit_api_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_init_def.js +0 -23
- package/tools/definitions/get_web_chat_uikit_init_def.js.map +0 -1
- package/tools/definitions/get_web_create_group_doc_def.js +0 -18
- package/tools/definitions/get_web_create_group_doc_def.js.map +0 -1
- package/tools/definitions/get_web_live_state_detail_def.js +0 -19
- package/tools/definitions/get_web_live_state_detail_def.js.map +0 -1
- package/tools/definitions/get_web_live_uikit_component_detail_def.js +0 -27
- package/tools/definitions/get_web_live_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_feature_detail_def.js +0 -95
- package/tools/definitions/get_web_room_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_room_state_detail_def.js +0 -19
- package/tools/definitions/get_web_room_state_detail_def.js.map +0 -1
- package/tools/definitions/record_prompt_def.js +0 -53
- package/tools/definitions/record_prompt_def.js.map +0 -1
- package/tools/definitions/record_result_def.js +0 -30
- package/tools/definitions/record_result_def.js.map +0 -1
- package/tools/live/get-native-live-uikit-integration.js +0 -101
- package/tools/live/get-native-live-uikit-integration.js.map +0 -1
- package/tools/live/get-web-live-component-detail.js +0 -31
- package/tools/live/get-web-live-component-detail.js.map +0 -1
- package/tools/live/get-web-live-state-detail.js +0 -31
- package/tools/live/get-web-live-state-detail.js.map +0 -1
- package/tools/live/get-web-live-uikit-integration.js +0 -52
- package/tools/live/get-web-live-uikit-integration.js.map +0 -1
- package/tools/live/get_native_live_uikit_extra_features.js +0 -105
- package/tools/live/get_native_live_uikit_extra_features.js.map +0 -1
- package/tools/live/get_native_live_uikit_interaction.js +0 -101
- package/tools/live/get_native_live_uikit_interaction.js.map +0 -1
- package/tools/native_live/get-native-live-api.js +0 -31
- package/tools/native_live/get-native-live-api.js.map +0 -1
- package/tools/room/get-web-room-feature-detail.js.map +0 -1
- package/tools/room/get-web-room-integration.js.map +0 -1
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js +0 -28
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-sdk-faq.js +0 -32
- package/tools/rtcengine/get-trtc-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-api.js +0 -28
- package/tools/rtcengine/get-trtc-web-sdk-api.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-faq.js +0 -30
- package/tools/rtcengine/get-trtc-web-sdk-faq.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-integration.js +0 -29
- package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +0 -1
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js +0 -45
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +0 -1
- package/tools/trtc/get-trtc-native-api.js +0 -31
- package/tools/trtc/get-trtc-native-api.js.map +0 -1
- package/utils/handle-component-name.js +0 -33
- package/utils/handle-component-name.js.map +0 -1
- /package/resource/doc/{chatuikit/android/workflow.md → callkit/core-sdk/.gitkeep} +0 -0
- /package/resource/doc/{tuicallkit/faq/common/error_code.md → callkit/faq/common/error-code.md} +0 -0
- /package/resource/doc/{tuicallkit/react/faq.md → callkit/faq/web-faq.md} +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/common/server_error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/faq/web_sdk/error_code.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/flutter/faq.md +0 -0
- /package/resource/doc/{chatuikit → chatkit}/react/faq.md +0 -0
- /package/resource/doc/roomkit/faq/common/{error_code.md → error-code.md} +0 -0
|
@@ -0,0 +1,490 @@
|
|
|
1
|
+
TUIKit Compose is a Jetpack Compose component library based on Tencent Cloud IM SDK, providing complete solutions for instant messaging features such as chat, conversation list, and contact management. This document describes how to manually integrate these components and implement core functionality.
|
|
2
|
+
|
|
3
|
+
## Key Concepts
|
|
4
|
+
|
|
5
|
+
TUIKit Compose provides a complete set of instant messaging UI components, depending on the AtomicXCore data layer below and capable of building various functional Pages above.
|
|
6
|
+
- Page Layer: Complete functional pages encapsulated based on TUIKit Compose components: ChatPage, ContactsPage, ConversationsPage, which you can use directly.
|
|
7
|
+
|
|
8
|
+
- TUIKit Compose (UI Component Layer): Jetpack Compose components built on AtomicXCore, which you can embed into your existing App pages.
|
|
9
|
+
|
|
10
|
+
- AtomicXCore (Data Layer): Provides data management and business logic, including various Stores and Managers.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
- Android Studio Ladybug | 2024.2.1 and above
|
|
14
|
+
|
|
15
|
+
- Android 5.0 and above system version
|
|
16
|
+
|
|
17
|
+
- Gradle 8.9 and above
|
|
18
|
+
|
|
19
|
+
- Android Gradle Plugin 8.6 and above
|
|
20
|
+
|
|
21
|
+
- JDK 17 and above
|
|
22
|
+
|
|
23
|
+
- Kotlin 1.9.0 and above
|
|
24
|
+
|
|
25
|
+
- A valid Tencent Cloud account and Chat application. You can refer to [Enable Service](https://trtc.io/document/45907?product=chat&menulabel=uikit&platform=android) to get the following information from the console:
|
|
26
|
+
|
|
27
|
+
- SDKAppID: The ID of the Chat application obtained from the console, which is the unique identifier of the application
|
|
28
|
+
|
|
29
|
+
- SDKSecretKey: The secret key of the application
|
|
30
|
+
|
|
31
|
+
> **Note:**
|
|
32
|
+
>
|
|
33
|
+
> - This project currently only supports manual integration and does not support integration through package managers like Maven.
|
|
34
|
+
> - To ensure a stable build environment, please strictly follow the official compatibility requirements for configuration:
|
|
35
|
+
> - For compatibility between Gradle, Android Gradle Plugin, JDK and Android Studio, please refer to the Android official documentation: [Version Notes](https://developer.android.com/build/releases/gradle-plugin#updating-gradle).
|
|
36
|
+
> - For version correspondence between Kotlin, Android Gradle Plugin and Gradle, please refer to the Kotlin official documentation: [Kotlin-Gradle Plugin Compatibility](https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin).
|
|
37
|
+
|
|
38
|
+
> We recommend that you choose a version combination that fully matches your project requirements according to the above guidelines.
|
|
39
|
+
>
|
|
40
|
+
|
|
41
|
+
## Integrate and Import Components
|
|
42
|
+
|
|
43
|
+
### Download Source Code
|
|
44
|
+
1. Download [TUIKit Compose](https://github.com/Tencent-RTC/TUIKit_android_compose) source code from GitHub:
|
|
45
|
+
|
|
46
|
+
``` bash
|
|
47
|
+
git clone https://github.com/Tencent-RTC/TUIKit_Android_Compose.git
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Project directory structure description:
|
|
51
|
+
|
|
52
|
+
``` bash
|
|
53
|
+
atomic-x/
|
|
54
|
+
├── src/main/
|
|
55
|
+
│ ├── java/io/trtc/tuikit/atomicx/ # UI component source code (required integration)
|
|
56
|
+
│ ├── messagelist/ # Message list component
|
|
57
|
+
│ ├── messageinput/ # Message input component
|
|
58
|
+
│ ├── conversationlist/ # Conversation list component
|
|
59
|
+
│ ├── contactlist/ # Contact list component
|
|
60
|
+
│ ├── basecomponent/ # Base components
|
|
61
|
+
│ └── ... # Other UI components
|
|
62
|
+
│ # Resource files (required integration)
|
|
63
|
+
│ ├── res/ # Common resources
|
|
64
|
+
│ ├── res-message-list/ # Message list component resources
|
|
65
|
+
│ ├── res-message-input/ # Message input component resources
|
|
66
|
+
│ ├── res-conversation-list/ # Conversation list component resources
|
|
67
|
+
│ └── ... # Other component resources
|
|
68
|
+
chat/
|
|
69
|
+
├── uikit/src/main/java/io/trtc/tuikit/chat/pages # Page components (reference implementation)
|
|
70
|
+
│ ├── ChatPage.kt
|
|
71
|
+
│ ├── ContactsPage.kt
|
|
72
|
+
│ └── ConversationsPage.kt
|
|
73
|
+
└── demo/ # Sample application (optional reference)
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Integrate Components
|
|
77
|
+
1. Copy the component directory completely to your Android project, as shown in the figure below, where ComposeDemo is the sample project and TUIKit_Android_Compose is the component source code downloaded from GitHub:
|
|
78
|
+
|
|
79
|
+
2. Add TUIKit Compose components in your settings.gradle.kts/settings.gradle file:
|
|
80
|
+
|
|
81
|
+
> **Note:**
|
|
82
|
+
>
|
|
83
|
+
|
|
84
|
+
> TUIKit_Android_Compose can be placed anywhere, as long as the relative path is correctly set in settings.gradle.
|
|
85
|
+
>
|
|
86
|
+
|
|
87
|
+
【Kotlin DSL (Recommended)】
|
|
88
|
+
``` java
|
|
89
|
+
// settings.gradle.kts
|
|
90
|
+
include(":atomicx")
|
|
91
|
+
project(":atomicx").projectDir = file("../TUIKit_Android_Compose/atomic-x")
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
【Groovy DSL】
|
|
95
|
+
``` java
|
|
96
|
+
// settings.gradle
|
|
97
|
+
include ':atomicx'
|
|
98
|
+
project(':atomicx').projectDir = new File(settingsDir, '../TUIKit_Android_Compose/atomic-x')
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
3. Add the following dependencies in the build.gradle.kts/build.gradle of the app module:
|
|
102
|
+
|
|
103
|
+
【Kotlin DSL (Recommended)】
|
|
104
|
+
``` java
|
|
105
|
+
// app/build.gradle.kts
|
|
106
|
+
dependencies {
|
|
107
|
+
implementation(project(":atomicx"))
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
【Groovy DSL】
|
|
112
|
+
``` java
|
|
113
|
+
// app/build.gradle
|
|
114
|
+
dependencies {
|
|
115
|
+
api project(':atomicx')
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
> **Note:**
|
|
120
|
+
>
|
|
121
|
+
> - When using the local integration solution, if you need to upgrade, you need to get the latest component code from GitHub and overwrite the TUIKit Compose directory in your local project.
|
|
122
|
+
> - When there are conflicts between private modifications and remote changes, manual merging and conflict resolution are required.
|
|
123
|
+
|
|
124
|
+
### Configure Project
|
|
125
|
+
1. Find the AndroidManifest.xml file in the app directory, add `tools:replace="android:allowBackup"` in the `application` node to override the settings in the component and use your own settings.
|
|
126
|
+
|
|
127
|
+
``` java
|
|
128
|
+
// app/src/main/AndroidManifest.xml
|
|
129
|
+
<application
|
|
130
|
+
android:name=".BaseApplication"
|
|
131
|
+
android:allowBackup="false"
|
|
132
|
+
android:icon="@drawable/app_ic_launcher"
|
|
133
|
+
android:label="@string/app_name"
|
|
134
|
+
android:largeHeap="true"
|
|
135
|
+
android:theme="@style/AppTheme"
|
|
136
|
+
tools:replace="android:allowBackup">
|
|
137
|
+
```
|
|
138
|
+
2. Configure dependencies.
|
|
139
|
+
|
|
140
|
+
Add the following dependencies in your project's gradle/libs.versions.toml file:
|
|
141
|
+
|
|
142
|
+
``` python
|
|
143
|
+
# gradle/libs.versions.toml
|
|
144
|
+
[versions]
|
|
145
|
+
agp = "8.13.0"
|
|
146
|
+
kotlin = "2.0.21"
|
|
147
|
+
coreKtx = "1.10.1"
|
|
148
|
+
junit = "4.13.2"
|
|
149
|
+
junitVersion = "1.1.5"
|
|
150
|
+
espressoCore = "3.5.1"
|
|
151
|
+
appcompat = "1.7.1"
|
|
152
|
+
material = "1.13.0"
|
|
153
|
+
runner = "1.0.2"
|
|
154
|
+
espressoCoreVersion = "3.0.2"
|
|
155
|
+
appcompatV7 = "28.0.0"
|
|
156
|
+
|
|
157
|
+
tuicore = "8.6.7021"
|
|
158
|
+
lifecycleRuntimeKtx = "2.8.7"
|
|
159
|
+
ui = "1.8.0"
|
|
160
|
+
foundation = "1.8.0"
|
|
161
|
+
composeBom = "2024.09.00"
|
|
162
|
+
activityCompose = "1.10.1"
|
|
163
|
+
activity = "1.8.0"
|
|
164
|
+
constraintlayout = "2.2.1"
|
|
165
|
+
|
|
166
|
+
[libraries]
|
|
167
|
+
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
|
|
168
|
+
junit = { group = "junit", name = "junit", version.ref = "junit" }
|
|
169
|
+
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "junitVersion" }
|
|
170
|
+
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
|
|
171
|
+
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
|
|
172
|
+
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
|
|
173
|
+
runner = { group = "com.android.support.test", name = "runner", version.ref = "runner" }
|
|
174
|
+
espresso-core = { group = "com.android.support.test.espresso", name = "espresso-core", version.ref = "espressoCoreVersion" }
|
|
175
|
+
appcompat-v7 = { group = "com.android.support", name = "appcompat-v7", version.ref = "appcompatV7" }
|
|
176
|
+
|
|
177
|
+
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycleRuntimeKtx" }
|
|
178
|
+
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
|
|
179
|
+
androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "foundation" }
|
|
180
|
+
androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "ui" }
|
|
181
|
+
androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
|
|
182
|
+
androidx-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
|
|
183
|
+
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
|
|
184
|
+
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
|
|
185
|
+
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
|
|
186
|
+
androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
|
|
187
|
+
androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" }
|
|
188
|
+
tuicore = { module = "com.tencent.liteav.tuikit:tuicore", version.ref = "tuicore" }
|
|
189
|
+
com-tencent-mmkv = { group = "com.tencent", name = "mmkv", version = "1.3.14" }
|
|
190
|
+
|
|
191
|
+
[plugins]
|
|
192
|
+
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
193
|
+
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
|
194
|
+
android-library = { id = "com.android.library", version.ref = "agp" }
|
|
195
|
+
|
|
196
|
+
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
|
|
197
|
+
```
|
|
198
|
+
3. Enable Compose support.
|
|
199
|
+
|
|
200
|
+
Add the following configuration in the build.gradle.kts/build.gradle of the app module:
|
|
201
|
+
|
|
202
|
+
【Kotlin DSL (Recommended)】
|
|
203
|
+
``` java
|
|
204
|
+
// app/build.gradle.kts
|
|
205
|
+
plugins {
|
|
206
|
+
// Add Compose plugin
|
|
207
|
+
alias(libs.plugins.kotlin.compose)
|
|
208
|
+
}
|
|
209
|
+
android {
|
|
210
|
+
// Enable Compose
|
|
211
|
+
buildFeatures {
|
|
212
|
+
compose = true
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
【Groovy DSL】
|
|
218
|
+
``` java
|
|
219
|
+
// app/build.gradle
|
|
220
|
+
plugins {
|
|
221
|
+
// Add Compose plugin
|
|
222
|
+
id libs.plugins.kotlin.compose.get().pluginId
|
|
223
|
+
}
|
|
224
|
+
android {
|
|
225
|
+
// Enable Compose
|
|
226
|
+
buildFeatures {
|
|
227
|
+
compose true
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
4. Configure obfuscation rules.
|
|
233
|
+
|
|
234
|
+
Add the following obfuscation rules to your app/proguard-rules.pro file:
|
|
235
|
+
|
|
236
|
+
``` java
|
|
237
|
+
-keep class com.tencent.** { *; }
|
|
238
|
+
```
|
|
239
|
+
5. Click **File > Sync Project with Gradle Files** in Android Studio to integrate components.
|
|
240
|
+
|
|
241
|
+
## Integration Steps
|
|
242
|
+
|
|
243
|
+
### Step 1: Configure User Authentication
|
|
244
|
+
|
|
245
|
+
Get UserSig based on UserID in [Chat Console](https://console.trtc.io/usersig) for subsequent user authentication during login.
|
|
246
|
+
|
|
247
|
+
### Step 2: User Login
|
|
248
|
+
|
|
249
|
+
You can only use the component functions normally after login authentication. You can call the login interface and pass in the SDKAPPID and userSig obtained above for login authentication:
|
|
250
|
+
``` swift
|
|
251
|
+
// User login
|
|
252
|
+
LoginStore.shared.login(context, SDKAPPID, userID, userSig,
|
|
253
|
+
object : CompletionHandler {
|
|
254
|
+
override fun onSuccess() {
|
|
255
|
+
// Login successful, can navigate to chat or conversation page
|
|
256
|
+
}
|
|
257
|
+
override fun onFailure(code: Int, desc: String) {
|
|
258
|
+
// Login failed, can show error dialog
|
|
259
|
+
}
|
|
260
|
+
})
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
> **Note:**
|
|
264
|
+
>
|
|
265
|
+
|
|
266
|
+
> In a formal production environment, it is recommended to generate UserSig on your server side. When UserSig is needed, your App should send a request to the business server to get dynamic UserSig for authentication. For details, see [Server-side UserSig Generation](https://console.trtc.io/usersig).
|
|
267
|
+
>
|
|
268
|
+
|
|
269
|
+
### Step 3: Build Conversation List Interface
|
|
270
|
+
|
|
271
|
+
You can build a conversation list page based on the ConversationList component in TUIKit Compose. The built-in functions of ConversationList are:
|
|
272
|
+
- Display user's conversation list, including single chat and group chat conversations
|
|
273
|
+
|
|
274
|
+
- Support user operations on individual conversations: pin, delete, clear conversation messages, etc.
|
|
275
|
+
|
|
276
|
+
You can integrate ConversationList directly into existing App pages, or build a complete new conversation list page. One assembled UI effect is shown in the figure below:
|
|
277
|
+
|
|
278
|
+
To encapsulate ConversationList as a conversation list page, you can refer to the implementation in the `chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ConversationsPage.kt` file. `ConversationsPage` mainly does the following:
|
|
279
|
+
|
|
280
|
+
1. Added headerView above ConversationList.
|
|
281
|
+
|
|
282
|
+
2. Pass click conversation list cell events.
|
|
283
|
+
|
|
284
|
+
The core sample code is shown below:
|
|
285
|
+
|
|
286
|
+
``` swift
|
|
287
|
+
@Composable
|
|
288
|
+
fun ConversationsPage(
|
|
289
|
+
onConversationClick: (ConversationInfo) -> Unit = {},
|
|
290
|
+
editContent: @Composable () -> Unit = {},
|
|
291
|
+
) {
|
|
292
|
+
val colors = LocalTheme.current.colors
|
|
293
|
+
Column(
|
|
294
|
+
modifier = Modifier
|
|
295
|
+
.fillMaxSize()
|
|
296
|
+
.background(Colors.Transparent)
|
|
297
|
+
) {
|
|
298
|
+
|
|
299
|
+
PageHeader(stringResource(R.string.chat_uikit_chat)) {
|
|
300
|
+
editContent()
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
|
|
304
|
+
ConversationList(modifier = Modifier.navigationBarsPadding(), onConversationClick = onConversationClick)
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
### Step 4: Build Chat Interface
|
|
311
|
+
|
|
312
|
+
You can build a chat page based on the MessageList and MessageInput components in TUIKit Compose.
|
|
313
|
+
|
|
314
|
+
The built-in functions of MessageList are:
|
|
315
|
+
- Display single chat or group chat message lists.
|
|
316
|
+
|
|
317
|
+
- Support operations on individual messages: view large images of image messages, play video or voice messages, copy text messages, recall messages, delete messages, etc.
|
|
318
|
+
|
|
319
|
+
The built-in functions of MessageInput are:
|
|
320
|
+
|
|
321
|
+
- Support users to compose and send various types of messages: text, emoji, images, voice, video, files, etc.
|
|
322
|
+
|
|
323
|
+
You can integrate MessageList and MessageInput directly into existing App pages, or build a complete new chat page. One assembled UI effect is shown in the figure below:
|
|
324
|
+
|
|
325
|
+
To assemble MessageList and MessageInput into a chat page, you can refer to the implementation in the `chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ChatPage.kt` file. `ChatPage` mainly does the following:
|
|
326
|
+
|
|
327
|
+
1. Added headerView at the top to display the conversation name.
|
|
328
|
+
|
|
329
|
+
2. Vertically concatenated MessageList and MessageInput according to mobile user habits.
|
|
330
|
+
|
|
331
|
+
The core sample code is shown below:
|
|
332
|
+
|
|
333
|
+
``` swift
|
|
334
|
+
@Composable
|
|
335
|
+
fun ChatPage(
|
|
336
|
+
conversationID: String,
|
|
337
|
+
locateMessage: MessageInfo? = null,
|
|
338
|
+
onUserClick: (String) -> Unit,
|
|
339
|
+
onChatHeaderClick: (String) -> Unit,
|
|
340
|
+
onBackClick: () -> Unit,
|
|
341
|
+
) {
|
|
342
|
+
...
|
|
343
|
+
|
|
344
|
+
val avatarUrl = conversationState.value?.avatarURL
|
|
345
|
+
val displayName = conversationState.value?.title
|
|
346
|
+
val colors = LocalTheme.current.colors
|
|
347
|
+
Scaffold(
|
|
348
|
+
modifier = Modifier
|
|
349
|
+
.background(color = colors.bgColorOperate)
|
|
350
|
+
.fillMaxSize()
|
|
351
|
+
.wrapContentHeight(), topBar = {
|
|
352
|
+
Box(
|
|
353
|
+
modifier = Modifier
|
|
354
|
+
.background(color = colors.bgColorOperate)
|
|
355
|
+
.fillMaxWidth()
|
|
356
|
+
.statusBarsPadding()
|
|
357
|
+
) {
|
|
358
|
+
ChatHeader(
|
|
359
|
+
avatarUrl = avatarUrl,
|
|
360
|
+
name = displayName ?: "",
|
|
361
|
+
onBackClick = onBackClick,
|
|
362
|
+
onAvatarClick = {
|
|
363
|
+
onChatHeaderClick(conversationID)
|
|
364
|
+
}
|
|
365
|
+
)
|
|
366
|
+
}
|
|
367
|
+
},
|
|
368
|
+
bottomBar = {
|
|
369
|
+
Box(
|
|
370
|
+
modifier = Modifier
|
|
371
|
+
.fillMaxWidth()
|
|
372
|
+
.background(color = colors.bgColorOperate)
|
|
373
|
+
) {
|
|
374
|
+
MessageInput(modifier = Modifier.navigationBarsPadding(), conversationID = conversationID)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
}) { padding ->
|
|
378
|
+
Box(
|
|
379
|
+
modifier = Modifier
|
|
380
|
+
.padding(padding)
|
|
381
|
+
) {
|
|
382
|
+
MessageList(conversationID = conversationID, locateMessage = locateMessage) {
|
|
383
|
+
onUserClick(it)
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
### Step 5: Build Contact Interface
|
|
391
|
+
|
|
392
|
+
You can build a contact page based on the ContactList component in TUIKit Compose. The built-in functions of ContactList are:
|
|
393
|
+
- View friend request list.
|
|
394
|
+
|
|
395
|
+
- View joined group list.
|
|
396
|
+
|
|
397
|
+
- Handle group invitations and applications.
|
|
398
|
+
|
|
399
|
+
- Manage blacklist.
|
|
400
|
+
|
|
401
|
+
- View friends.
|
|
402
|
+
|
|
403
|
+
You can integrate ContactList directly into existing Apps, or build a complete new contact list page. One assembled UI effect is shown in the figure below:
|
|
404
|
+
|
|
405
|
+
To encapsulate ContactList as a contact list page, you can refer to the implementation in the `chat/uikit/src/main/java/io/trtc/tuikit/chat/pages/ContactsPage.kt` file. `ContactsPage` mainly does the following:
|
|
406
|
+
|
|
407
|
+
1. Added headerView above ContactList.
|
|
408
|
+
|
|
409
|
+
2. Pass click contact list cell events.
|
|
410
|
+
|
|
411
|
+
The core sample code is shown below:
|
|
412
|
+
|
|
413
|
+
``` swift
|
|
414
|
+
@Composable
|
|
415
|
+
fun ContactsPage(
|
|
416
|
+
onContactClick: (ContactInfo) -> Unit = {},
|
|
417
|
+
onGroupClick: (ContactInfo) -> Unit = {},
|
|
418
|
+
editContent: @Composable () -> Unit = {},
|
|
419
|
+
) {
|
|
420
|
+
|
|
421
|
+
val colors = LocalTheme.current.colors
|
|
422
|
+
Column(
|
|
423
|
+
modifier = Modifier
|
|
424
|
+
.fillMaxSize()
|
|
425
|
+
.background(Colors.Transparent)
|
|
426
|
+
) {
|
|
427
|
+
PageHeader(stringResource(R.string.chat_uikit_contacts)) {
|
|
428
|
+
editContent()
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
Box(
|
|
432
|
+
modifier = Modifier
|
|
433
|
+
.fillMaxSize()
|
|
434
|
+
.navigationBarsPadding(), contentAlignment = Alignment.Center
|
|
435
|
+
) {
|
|
436
|
+
ContactList(onGroupClick = onGroupClick, onContactClick = onContactClick)
|
|
437
|
+
}
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### Step 6: Improve Navigation Logic Between Interfaces
|
|
443
|
+
|
|
444
|
+
ConversationsPage, ChatPage, and ContactsPage expose some user click events. You can customize events to implement interactions between pages:
|
|
445
|
+
| Page | Callback | Suggested Navigation Logic |
|
|
446
|
+
| --- | --- | --- |
|
|
447
|
+
| **ConversationsPage** | `onConversationClick: (ConversationInfo) -> Unit` | Triggered when clicking a conversation in the conversation list, suggest navigating to chat page (ChatPage). |
|
|
448
|
+
| **ContactsPage** | `onContactClick: (ContactInfo) -> Unit` | Triggered when clicking a contact cell, suggest navigating to user info page (C2CChatSetting). |
|
|
449
|
+
| `onGroupClick: (ContactInfo) -> Unit` | Triggered when clicking a group cell, suggest navigating to group chat page (ChatPage). | |
|
|
450
|
+
| **ChatPage** | `onUserClick: (String) -> Unit` | Triggered when clicking user avatar or nickname in messages, suggest navigating to user info page (C2CChatSetting). |
|
|
451
|
+
| `onChatHeaderClick: (String) -> Unit` | Triggered when clicking avatar in navigation bar, suggest navigating to user info page (C2CChatSetting) or group chat info page (GroupChatSetting) | |
|
|
452
|
+
| `onBackClick: () -> Unit` | Triggered when clicking back button, suggest returning to previous page. | |
|
|
453
|
+
|
|
454
|
+
**chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt** and **chat/demo/app/src/main/java/io/trtc/tuikit/chat/chat/ChatActivity.kt** serve as the glue layer for the above Pages, implementing callback events for each Page. The core sample code is as follows:
|
|
455
|
+
``` java
|
|
456
|
+
// chat/demo/app/src/main/java/io/trtc/tuikit/chat/MainActivity.kt
|
|
457
|
+
|
|
458
|
+
// Click conversation list cell to navigate
|
|
459
|
+
ConversationsPage(onConversationClick = {
|
|
460
|
+
activity?.startActivity(
|
|
461
|
+
Intent(activity, ChatActivity::class.java).apply {
|
|
462
|
+
putExtra("conversationID", it.conversationID)
|
|
463
|
+
}
|
|
464
|
+
)
|
|
465
|
+
})
|
|
466
|
+
|
|
467
|
+
// Click contact page to navigate
|
|
468
|
+
ContactsPage(onGroupClick = {
|
|
469
|
+
ChatSettingActivity.start(context, "", it.contactID, true)
|
|
470
|
+
}, onContactClick = {
|
|
471
|
+
ChatSettingActivity.start(context, it.contactID, "", true)
|
|
472
|
+
})
|
|
473
|
+
```
|
|
474
|
+
``` java
|
|
475
|
+
// chat/demo/app/src/main/java/io/trtc/tuikit/chat/chat/ChatActivity.kt
|
|
476
|
+
|
|
477
|
+
// Click chat page to navigate
|
|
478
|
+
ChatPage(
|
|
479
|
+
conversationID = conversationID,
|
|
480
|
+
locateMessage = message,
|
|
481
|
+
onUserClick = {
|
|
482
|
+
handleChatSettingNavigation(it)
|
|
483
|
+
}, onChatHeaderClick = {
|
|
484
|
+
val userID = getUserID(conversationID)
|
|
485
|
+
val groupID = getGroupID(conversationID)
|
|
486
|
+
handleChatSettingNavigation(userID, groupID)
|
|
487
|
+
}, onBackClick = { finish() })
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
You can refer to the above callback descriptions and reference code to implement interaction logic between Pages.
|