@tencent-rtc/mcp 1.4.6 → 1.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cursor-setting.png +0 -0
- package/knowledge/bm25-cache.js +74 -0
- package/knowledge/bm25-cache.js.map +1 -0
- package/knowledge/bm25.js +148 -0
- package/knowledge/bm25.js.map +1 -0
- package/knowledge/build-index.js +70 -0
- package/knowledge/build-index.js.map +1 -0
- package/knowledge/chunker.js +168 -0
- package/knowledge/chunker.js.map +1 -0
- package/knowledge/content-loader.js +40 -0
- package/knowledge/content-loader.js.map +1 -0
- package/knowledge/doc-url-resolver.js +143 -0
- package/knowledge/doc-url-resolver.js.map +1 -0
- package/knowledge/extractors.js +26 -0
- package/knowledge/extractors.js.map +1 -0
- package/knowledge/path-meta.js +185 -0
- package/knowledge/path-meta.js.map +1 -0
- package/knowledge/search/exact-lookup.js +498 -0
- package/knowledge/search/exact-lookup.js.map +1 -0
- package/knowledge/search/filter-pool.js +105 -0
- package/knowledge/search/filter-pool.js.map +1 -0
- package/knowledge/search/product-scope-intent.js +41 -0
- package/knowledge/search/product-scope-intent.js.map +1 -0
- package/knowledge/search/requires-framework.js +82 -0
- package/knowledge/search/requires-framework.js.map +1 -0
- package/knowledge/search/search-knowledge.js +230 -0
- package/knowledge/search/search-knowledge.js.map +1 -0
- package/mcp-server-prompt.png +0 -0
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +10 -0
- package/resource/_schema/goal-tags.yaml +72 -0
- package/resource/_schema/products.yaml +19 -0
- package/resource/_schema/trtc-intents.yaml +27 -0
- package/resource/_schema/types.yaml +43 -0
- package/resource/index/component-slugs.json +1 -0
- package/resource/index/doc-source-urls.json +1 -0
- package/resource/index/manifest.json +1 -0
- package/resource/{doc → integration}/callkit/preset/android/integration.md +34 -28
- package/resource/integration/callkit/preset/flutter/integration.md +346 -0
- package/resource/integration/callkit/preset/ios/integration.md +408 -0
- package/resource/integration/callkit/preset/react/integration.md +362 -0
- package/resource/integration/callkit/preset/vue/integration.md +356 -0
- package/resource/integration/chat/preset/android/integration.md +500 -0
- package/resource/integration/chat/preset/flutter/integration.md +370 -0
- package/resource/integration/chat/preset/ios/integration.md +566 -0
- package/resource/integration/chat/preset/react/integration.md +490 -0
- package/resource/integration/chat/preset/vue/integration.md +504 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-list-integration.md +26 -22
- package/resource/{doc → integration}/livekit/preset/live/vue/live-player-desk-integration.md +22 -18
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +309 -0
- package/resource/{doc → integration}/livekit/preset/live/vue/live-pusher-integration.md +47 -39
- package/resource/integration/roomkit/preset/vue/integration.md +562 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +828 -0
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +897 -0
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +363 -0
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +1111 -0
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +1132 -0
- package/resource/{doc → knowledge}/callkit/core-sdk/flutter/offline-push.md +174 -151
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +1084 -0
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +1252 -0
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +534 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +953 -0
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +1061 -0
- package/resource/knowledge/callkit/faq/android.md +92 -0
- package/resource/{doc/callkit/faq/android-faq.md → knowledge/callkit/faq/common.md} +11 -12
- package/resource/knowledge/callkit/faq/error-code.md +67 -0
- package/resource/knowledge/callkit/faq/flutter.md +52 -0
- package/resource/knowledge/callkit/faq/ios.md +104 -0
- package/resource/knowledge/callkit/faq/web.md +74 -0
- package/resource/knowledge/callkit/preset/android/api.md +412 -0
- package/resource/knowledge/callkit/preset/flutter/api.md +22 -0
- package/resource/knowledge/callkit/preset/ios/api.md +234 -0
- package/resource/knowledge/callkit/preset/web/api.md +83 -0
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +74 -0
- package/resource/knowledge/chat/preset/android/features/contact-list.md +43 -0
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +117 -0
- package/resource/knowledge/chat/preset/android/features/language.md +136 -0
- package/resource/knowledge/chat/preset/android/features/message-input.md +57 -0
- package/resource/knowledge/chat/preset/android/features/message-list.md +142 -0
- package/resource/knowledge/chat/preset/android/features/search.md +64 -0
- package/resource/knowledge/chat/preset/android/features/theme.md +222 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +300 -0
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +64 -0
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +40 -0
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +129 -0
- package/resource/knowledge/chat/preset/flutter/features/language.md +104 -0
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +54 -0
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +158 -0
- package/resource/knowledge/chat/preset/flutter/features/search.md +59 -0
- package/resource/knowledge/chat/preset/flutter/features/theme.md +261 -0
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +94 -0
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +119 -0
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +134 -0
- package/resource/knowledge/chat/preset/ios/features/language.md +125 -0
- package/resource/knowledge/chat/preset/ios/features/message-input.md +69 -0
- package/resource/knowledge/chat/preset/ios/features/message-list.md +162 -0
- package/resource/knowledge/chat/preset/ios/features/search.md +93 -0
- package/resource/knowledge/chat/preset/ios/features/theme.md +270 -0
- package/resource/{doc/chatkit/ios → knowledge/chat/preset/ios-uikit}/integration.md +160 -158
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +101 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/contact-list.md +43 -41
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +215 -0
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +339 -0
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +101 -0
- package/resource/knowledge/chat/preset/react/features/conversation-search.md +61 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/message-input.md +117 -156
- package/resource/knowledge/chat/preset/react/features/message-list.md +297 -0
- package/resource/{doc/chatkit/react/components → knowledge/chat/preset/react/features}/search.md +65 -59
- package/resource/knowledge/chat/preset/react/features/theme.md +93 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +79 -0
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +277 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +234 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +331 -0
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +216 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/conversation-search.md +13 -13
- package/resource/knowledge/chat/preset/vue/features/message-input.md +551 -0
- package/resource/knowledge/chat/preset/vue/features/message-list.md +350 -0
- package/resource/{doc/chatkit/vue/components → knowledge/chat/preset/vue/features}/search.md +79 -73
- package/resource/knowledge/chat/preset/vue/features/theme.md +136 -0
- package/resource/knowledge/chat/urls/error-code.md +17 -0
- package/resource/knowledge/chat/urls/product.md +43 -0
- package/resource/knowledge/chat/urls/restapi.md +204 -0
- package/resource/knowledge/chat/urls/sdk/android.md +80 -0
- package/resource/knowledge/chat/urls/sdk/flutter.md +71 -0
- package/resource/knowledge/chat/urls/sdk/ios.md +80 -0
- package/resource/knowledge/chat/urls/sdk/web.md +80 -0
- package/resource/knowledge/chat/urls/webhook.md +68 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +286 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +174 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +329 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +55 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +434 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +362 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +466 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +173 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +488 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +219 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +282 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +212 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +153 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +312 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +404 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +334 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +426 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +166 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +52 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +281 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +150 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +438 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +190 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +291 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +192 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +146 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +309 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +370 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +339 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +503 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +188 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +51 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +289 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +78 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +487 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +183 -0
- package/resource/knowledge/livekit/core-sdk/api-reference/web/index.md +736 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-base-beauty.md +17 -15
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-gift.md +102 -89
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-integration.md +45 -43
- package/resource/{doc → knowledge}/livekit/core-sdk/live/android/live-live-list.md +23 -20
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audience-list.md +41 -41
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-audio-effect.md +70 -69
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-barrage.md +68 -71
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-base-beauty.md +43 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-co-guest-interaction.md +59 -56
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-gift.md +103 -105
- package/resource/knowledge/livekit/core-sdk/live/flutter/live-host-interaction.md +869 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-integration.md +84 -87
- package/resource/{doc → knowledge}/livekit/core-sdk/live/flutter/live-live-list.md +43 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-base-beauty.md +15 -14
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-co-guest-interaction.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-host-interaction.md +41 -37
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-integration.md +40 -40
- package/resource/{doc → knowledge}/livekit/core-sdk/live/ios/live-live-list.md +19 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audience-list.md +53 -47
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-gift.md +94 -81
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-integration.md +45 -42
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/android/voice-room-list.md +23 -20
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audience-list.md +260 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-audio-effect.md +598 -0
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-barrage.md +490 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-co-guest-interaction.md +65 -59
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-gift.md +424 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/flutter/voice-integration.md +69 -76
- package/resource/knowledge/livekit/core-sdk/voice/flutter/voice-room-list.md +726 -0
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audience-list.md +11 -10
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-audio-effect.md +28 -24
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-barrage.md +22 -18
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-co-guest-interaction.md +41 -33
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-gift.md +54 -50
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-host-interaction.md +35 -30
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-integration.md +49 -46
- package/resource/{doc → knowledge}/livekit/core-sdk/voice/ios/voice-room-list.md +19 -18
- package/resource/knowledge/livekit/faq/error-code.md +193 -0
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/barrage.md +56 -53
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-audience-list.md +22 -21
- package/resource/{doc/livekit/preset/live/vue/components → knowledge/livekit/preset/live/vue/features}/live-view.md +34 -32
- package/resource/knowledge/push/config/android.md +92 -0
- package/resource/knowledge/push/config/harmonyos.md +83 -0
- package/resource/knowledge/push/config/ios.md +254 -0
- package/resource/knowledge/push/config/react-native.md +254 -0
- package/resource/knowledge/push/config/unity.md +209 -0
- package/resource/knowledge/push/config/unreal-engine.md +194 -0
- package/resource/knowledge/push/integration/android.md +404 -0
- package/resource/knowledge/push/integration/flutter.md +465 -0
- package/resource/knowledge/push/integration/harmonyos.md +63 -0
- package/resource/knowledge/push/integration/ios.md +246 -0
- package/resource/knowledge/push/integration/react-native.md +366 -0
- package/resource/knowledge/push/integration/uni-app.md +208 -0
- package/resource/knowledge/push/integration/unity.md +389 -0
- package/resource/knowledge/push/integration/unreal-engine.md +390 -0
- package/resource/knowledge/push/overview/prepare.md +60 -0
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +241 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +588 -0
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +364 -0
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +340 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +230 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +797 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +233 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +569 -0
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +325 -0
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +322 -0
- package/resource/knowledge/roomkit/core-sdk/vue/call-user-to-room.md +221 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/device-detection.md +49 -48
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +461 -0
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +216 -0
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +370 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-participant-state.md +61 -60
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +280 -0
- package/resource/{doc/roomkit/vue/features → knowledge/roomkit/core-sdk/vue}/room-view.md +57 -56
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +319 -0
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +267 -0
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +261 -0
- package/resource/knowledge/roomkit/preset/android/integration.md +396 -0
- package/resource/knowledge/roomkit/preset/flutter/integration.md +404 -0
- package/resource/knowledge/roomkit/preset/ios/integration.md +369 -0
- package/resource/knowledge/roomkit/preset/react/integration.md +576 -0
- package/resource/knowledge/rtcengine/web/how_to_run_web_sdk_demo.md +44 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/21-advanced-auto-play-policy.md +8 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/22-advanced-audio-mixer.md +19 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/23-advanced-support-detection.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/24-advanced-network-quality.md +8 -8
- package/resource/{doc → knowledge}/rtcengine/web/plugin/25-advanced-device-change.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +6 -6
- package/resource/{doc → knowledge}/rtcengine/web/plugin/27-advanced-small-stream.md +3 -3
- package/resource/{doc → knowledge}/rtcengine/web/plugin/29-advanced-water-mark.md +18 -0
- package/resource/{doc → knowledge}/rtcengine/web/plugin/31-advanced-plugins-overview.md +1 -1
- package/resource/{doc → knowledge}/rtcengine/web/plugin/34-advanced-proxy.md +2 -2
- package/resource/{doc → knowledge}/rtcengine/web/plugin/35-advanced-ai-denoiser.md +1 -1
- package/resource/knowledge/trtc/android/TRTCCloud.md +1915 -0
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +1029 -0
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +1095 -0
- package/resource/knowledge/trtc/android/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/android/TXBeautyManager.md +415 -0
- package/resource/knowledge/trtc/android/TXDeviceManager.md +169 -0
- package/resource/knowledge/trtc/android/TXLiteAVCode.md +125 -0
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +2069 -0
- package/resource/knowledge/trtc/c++/ITRTCStatistics.md +73 -0
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +502 -0
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +391 -0
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +1191 -0
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +931 -0
- package/resource/knowledge/trtc/c++/TXLiteAVCode.md +127 -0
- package/resource/knowledge/trtc/ios/TRTCCloud.md +2118 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDef.md +975 -0
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +1131 -0
- package/resource/knowledge/trtc/ios/TRTCStatistics.md +68 -0
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +423 -0
- package/resource/knowledge/trtc/ios/TXBeautyManager.md +416 -0
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +387 -0
- package/resource/knowledge/trtc/ios/TXLiteAVCode.md +127 -0
- package/server.js +35 -10
- package/server.js.map +1 -1
- package/tools/call/get_native_call_uikit_integration.js +2 -3
- package/tools/call/get_native_call_uikit_integration.js.map +1 -1
- package/tools/call/get_native_callkit_core_integration.js +2 -5
- package/tools/call/get_native_callkit_core_integration.js.map +1 -1
- package/tools/call/get_web_call_uikit_integration.js +2 -3
- package/tools/call/get_web_call_uikit_integration.js.map +1 -1
- package/tools/chat/get_native_chat_uikit_integration.js +2 -3
- package/tools/chat/get_native_chat_uikit_integration.js.map +1 -1
- package/tools/chat/get_web_chat_uikit_integration.js +2 -3
- package/tools/chat/get_web_chat_uikit_integration.js.map +1 -1
- package/tools/common/present_framework_choice.js +19 -13
- package/tools/common/present_framework_choice.js.map +1 -1
- package/tools/common/record_answer.js +19 -25
- package/tools/common/record_answer.js.map +1 -1
- package/tools/common/record_feedback.js +17 -30
- package/tools/common/record_feedback.js.map +1 -1
- package/tools/common/search_trtc_knowledge.js +45 -0
- package/tools/common/search_trtc_knowledge.js.map +1 -0
- package/tools/definitions/get_native_call_uikit_integration_def.js +3 -1
- package/tools/definitions/get_native_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_callkit_core_integration_def.js +5 -3
- package/tools/definitions/get_native_callkit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_native_chat_uikit_integration_def.js +5 -2
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_native_livekit_core_integration_def.js +6 -5
- package/tools/definitions/get_native_livekit_core_integration_def.js.map +1 -1
- package/tools/definitions/get_web_call_uikit_integration_def.js +4 -2
- package/tools/definitions/get_web_call_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_chat_uikit_integration_def.js +2 -0
- package/tools/definitions/get_web_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_live_uikit_integration_def.js +5 -5
- package/tools/definitions/get_web_live_uikit_integration_def.js.map +1 -1
- package/tools/definitions/get_web_room_core_integration_def.js +50 -0
- package/tools/definitions/get_web_room_core_integration_def.js.map +1 -0
- package/tools/definitions/get_web_room_uikit_integration_def.js +5 -4
- package/tools/definitions/get_web_room_uikit_integration_def.js.map +1 -1
- package/tools/definitions/integration-boundary.js +6 -0
- package/tools/definitions/integration-boundary.js.map +1 -0
- package/tools/definitions/present_framework_choice_def.js +12 -10
- package/tools/definitions/present_framework_choice_def.js.map +1 -1
- package/tools/definitions/record_answer_def.js +19 -17
- package/tools/definitions/record_answer_def.js.map +1 -1
- package/tools/definitions/record_feedback_def.js +14 -13
- package/tools/definitions/record_feedback_def.js.map +1 -1
- package/tools/definitions/search_trtc_knowledge_def.js +40 -0
- package/tools/definitions/search_trtc_knowledge_def.js.map +1 -0
- package/tools/index.js +5 -36
- package/tools/index.js.map +1 -1
- package/tools/live/get_native_livekit_core_integration.js +1 -3
- package/tools/live/get_native_livekit_core_integration.js.map +1 -1
- package/tools/live/get_web_live_uikit_integration.js +2 -4
- package/tools/live/get_web_live_uikit_integration.js.map +1 -1
- package/tools/room/get_web_room_core_integration.js +48 -0
- package/tools/room/get_web_room_core_integration.js.map +1 -0
- package/tools/room/get_web_room_uikit_integration.js +2 -3
- package/tools/room/get_web_room_uikit_integration.js.map +1 -1
- package/utils/generate-structured-result.js +24 -30
- package/utils/generate-structured-result.js.map +1 -1
- package/utils/get-doc-content.js +14 -8
- package/utils/get-doc-content.js.map +1 -1
- package/utils/report-cls-client.js +18 -20
- package/utils/report-cls-client.js.map +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/callkit/core-sdk/.gitkeep +0 -0
- package/resource/doc/callkit/core-sdk/android/answer-call.md +0 -852
- package/resource/doc/callkit/core-sdk/android/make-call.md +0 -954
- package/resource/doc/callkit/core-sdk/android/offline-push.md +0 -361
- package/resource/doc/callkit/core-sdk/flutter/answer-call.md +0 -1160
- package/resource/doc/callkit/core-sdk/flutter/make-call.md +0 -1205
- package/resource/doc/callkit/core-sdk/ios/answer-call.md +0 -1090
- package/resource/doc/callkit/core-sdk/ios/make-call.md +0 -1248
- package/resource/doc/callkit/core-sdk/ios/offline-push.md +0 -485
- package/resource/doc/callkit/core-sdk/uni-app/answer-call.md +0 -950
- package/resource/doc/callkit/core-sdk/uni-app/make-call.md +0 -1052
- package/resource/doc/callkit/faq/common/error-code.md +0 -47
- package/resource/doc/callkit/faq/flutter-faq.md +0 -115
- package/resource/doc/callkit/faq/ios-faq.md +0 -115
- package/resource/doc/callkit/faq/web-faq.md +0 -36
- package/resource/doc/callkit/preset/android/api.md +0 -296
- package/resource/doc/callkit/preset/flutter/api.md +0 -410
- package/resource/doc/callkit/preset/flutter/integration.md +0 -164
- package/resource/doc/callkit/preset/ios/api.md +0 -80
- package/resource/doc/callkit/preset/ios/integration.md +0 -187
- package/resource/doc/callkit/preset/react/api.md +0 -501
- package/resource/doc/callkit/preset/react/integration.md +0 -86
- package/resource/doc/callkit/preset/vue/api.md +0 -501
- package/resource/doc/callkit/preset/vue/integration.md +0 -83
- package/resource/doc/chatkit/android/faq.md +0 -111
- package/resource/doc/chatkit/android/features/theme.md +0 -219
- package/resource/doc/chatkit/android/integration.md +0 -490
- package/resource/doc/chatkit/faq/android_sdk/client-api.md +0 -281
- package/resource/doc/chatkit/faq/common/product.md +0 -7
- package/resource/doc/chatkit/faq/common/server.md +0 -44
- package/resource/doc/chatkit/faq/common/server_error_code.md +0 -74
- package/resource/doc/chatkit/faq/flutter_sdk/client-api.md +0 -199
- package/resource/doc/chatkit/faq/flutter_sdk/faq.md +0 -53
- package/resource/doc/chatkit/faq/ios_sdk/client-api.md +0 -235
- package/resource/doc/chatkit/faq/web_sdk/error_code.md +0 -47
- package/resource/doc/chatkit/faq/web_sdk/faq.md +0 -287
- package/resource/doc/chatkit/flutter/faq.md +0 -23
- package/resource/doc/chatkit/flutter/features/theme.md +0 -235
- package/resource/doc/chatkit/flutter/integration.md +0 -344
- package/resource/doc/chatkit/ios/faq.md +0 -111
- package/resource/doc/chatkit/ios/features/theme.md +0 -267
- package/resource/doc/chatkit/react/components/avatar.md +0 -104
- package/resource/doc/chatkit/react/components/chat-header.md +0 -148
- package/resource/doc/chatkit/react/components/chat-setting.md +0 -57
- package/resource/doc/chatkit/react/components/chat.md +0 -38
- package/resource/doc/chatkit/react/components/component-list.md +0 -37
- package/resource/doc/chatkit/react/components/conversation-actions.md +0 -174
- package/resource/doc/chatkit/react/components/conversation-list.md +0 -333
- package/resource/doc/chatkit/react/components/conversation-preview.md +0 -118
- package/resource/doc/chatkit/react/components/conversation-search.md +0 -60
- package/resource/doc/chatkit/react/components/message-list.md +0 -293
- package/resource/doc/chatkit/react/components/tuikit.md +0 -34
- package/resource/doc/chatkit/react/faq.md +0 -26
- package/resource/doc/chatkit/react/integration.md +0 -416
- package/resource/doc/chatkit/vue/components/avatar.md +0 -104
- package/resource/doc/chatkit/vue/components/chat-header.md +0 -148
- package/resource/doc/chatkit/vue/components/chat-setting.md +0 -62
- package/resource/doc/chatkit/vue/components/chat.md +0 -45
- package/resource/doc/chatkit/vue/components/component-list.md +0 -87
- package/resource/doc/chatkit/vue/components/contact-list.md +0 -271
- package/resource/doc/chatkit/vue/components/conversation-actions.md +0 -228
- package/resource/doc/chatkit/vue/components/conversation-list.md +0 -320
- package/resource/doc/chatkit/vue/components/conversation-preview.md +0 -213
- package/resource/doc/chatkit/vue/components/message-input.md +0 -1054
- package/resource/doc/chatkit/vue/components/message-list.md +0 -433
- package/resource/doc/chatkit/vue/components/tuikit.md +0 -31
- package/resource/doc/chatkit/vue/components/userpicker.md +0 -256
- package/resource/doc/chatkit/vue/faq.md +0 -36
- package/resource/doc/chatkit/vue/integration.md +0 -428
- package/resource/doc/livekit/core-sdk/live/flutter/live-host-interaction.md +0 -866
- package/resource/doc/livekit/faq/common/error-code.md +0 -88
- package/resource/doc/livekit/preset/live/vue/api-reference/index.md +0 -780
- package/resource/doc/livekit/preset/live/vue/components/co-guest-panel.md +0 -91
- package/resource/doc/livekit/preset/live/vue/components/live-scene-panel.md +0 -112
- package/resource/doc/livekit/preset/live/vue/components/stream-mixer.md +0 -215
- package/resource/doc/livekit/preset/live/vue/live-player-h5-integration.md +0 -300
- package/resource/doc/roomkit/faq/common/error-code.md +0 -67
- package/resource/doc/roomkit/vue/features/call-user-to-room.md +0 -220
- package/resource/doc/roomkit/vue/features/device-state.md +0 -460
- package/resource/doc/roomkit/vue/features/free-beauty-panel.md +0 -215
- package/resource/doc/roomkit/vue/features/room-chat.md +0 -369
- package/resource/doc/roomkit/vue/features/room-state.md +0 -282
- package/resource/doc/roomkit/vue/features/schedule-room.md +0 -318
- package/resource/doc/roomkit/vue/features/screen-share.md +0 -265
- package/resource/doc/roomkit/vue/features/virtual-background.md +0 -271
- package/resource/doc/roomkit/vue/integration.md +0 -315
- package/resource/doc/rtcengine/faq/common/error_code.md +0 -1
- package/resource/doc/rtcengine/faq/web_sdk/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/.gitkeep +0 -0
- package/resource/doc/rtcengine/web/how_to_run_web_sdk_demo.md +0 -59
- package/resource/doc/trtc/C++/ITRTCCloud.md +0 -1970
- package/resource/doc/trtc/C++/ITRTCStatistics.md +0 -70
- package/resource/doc/trtc/C++/ITXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/C++/ITXDeviceManager.md +0 -387
- package/resource/doc/trtc/C++/TRTCCloudCallback.md +0 -1082
- package/resource/doc/trtc/C++/TRTCTypeDef.md +0 -925
- package/resource/doc/trtc/C++/TXLiteAVCode.md +0 -129
- package/resource/doc/trtc/android/TRTCCloud.md +0 -1815
- package/resource/doc/trtc/android/TRTCCloudDef.md +0 -992
- package/resource/doc/trtc/android/TRTCCloudListener.md +0 -1004
- package/resource/doc/trtc/android/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/android/TXAudioEffectManager.md +0 -469
- package/resource/doc/trtc/android/TXBeautyManager.md +0 -402
- package/resource/doc/trtc/android/TXDeviceManager.md +0 -173
- package/resource/doc/trtc/android/TXLiteAVCode.md +0 -127
- package/resource/doc/trtc/iOS/TRTCCloud.md +0 -2028
- package/resource/doc/trtc/iOS/TRTCCloudDef.md +0 -958
- package/resource/doc/trtc/iOS/TRTCCloudDelegate.md +0 -1046
- package/resource/doc/trtc/iOS/TRTCStatistics.md +0 -65
- package/resource/doc/trtc/iOS/TXAudioEffectManager.md +0 -397
- package/resource/doc/trtc/iOS/TXBeautyManager.md +0 -403
- package/resource/doc/trtc/iOS/TXDeviceManager.md +0 -381
- package/resource/doc/trtc/iOS/TXLiteAVCode.md +0 -130
- package/tools/call/get_callkit_api.js +0 -33
- package/tools/call/get_callkit_api.js.map +0 -1
- package/tools/chat/get_native_chat_uikit_feature_detail.js +0 -35
- package/tools/chat/get_native_chat_uikit_feature_detail.js.map +0 -1
- package/tools/chat/get_web_chat_uikit_component_detail.js +0 -35
- package/tools/chat/get_web_chat_uikit_component_detail.js.map +0 -1
- package/tools/common/get_faq.js +0 -266
- package/tools/common/get_faq.js.map +0 -1
- package/tools/common/record_skill_session.js +0 -69
- package/tools/common/record_skill_session.js.map +0 -1
- package/tools/definitions/get_callkit_api_def.js +0 -29
- package/tools/definitions/get_callkit_api_def.js.map +0 -1
- package/tools/definitions/get_faq_def.js +0 -49
- package/tools/definitions/get_faq_def.js.map +0 -1
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js +0 -31
- package/tools/definitions/get_native_chat_uikit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_native_livekit_core_features_def.js +0 -34
- package/tools/definitions/get_native_livekit_core_features_def.js.map +0 -1
- package/tools/definitions/get_native_trtc_sdk_docs_def.js +0 -32
- package/tools/definitions/get_native_trtc_sdk_docs_def.js.map +0 -1
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +0 -31
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_api_def.js +0 -30
- package/tools/definitions/get_web_livekit_api_def.js.map +0 -1
- package/tools/definitions/get_web_livekit_component_detail_def.js +0 -32
- package/tools/definitions/get_web_livekit_component_detail_def.js.map +0 -1
- package/tools/definitions/get_web_roomkit_feature_detail_def.js +0 -31
- package/tools/definitions/get_web_roomkit_feature_detail_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_api_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_api_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_integration_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_integration_def.js.map +0 -1
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js +0 -27
- package/tools/definitions/get_web_trtc_sdk_plugin_def.js.map +0 -1
- package/tools/definitions/record_skill_session_def.js +0 -31
- package/tools/definitions/record_skill_session_def.js.map +0 -1
- package/tools/live/get_native_livekit_core_features.js +0 -68
- package/tools/live/get_native_livekit_core_features.js.map +0 -1
- package/tools/live/get_web_livekit_api.js +0 -33
- package/tools/live/get_web_livekit_api.js.map +0 -1
- package/tools/live/get_web_livekit_component_detail.js +0 -35
- package/tools/live/get_web_livekit_component_detail.js.map +0 -1
- package/tools/room/get_web_roomkit_feature_detail.js +0 -69
- package/tools/room/get_web_roomkit_feature_detail.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_api.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_api.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_integration.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_integration.js.map +0 -1
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js +0 -32
- package/tools/rtcengine/get_web_trtc_sdk_plugin.js.map +0 -1
- package/tools/trtc/get_native_trtc_sdk_docs.js +0 -74
- package/tools/trtc/get_native_trtc_sdk_docs.js.map +0 -1
- package/utils/build-session-directives.js +0 -120
- package/utils/build-session-directives.js.map +0 -1
- package/utils/handle-framework.js +0 -9
- package/utils/handle-framework.js.map +0 -1
- package/utils/handle-state-name.js +0 -29
- package/utils/handle-state-name.js.map +0 -1
- package/utils/report-runtime-error-cls-client.js +0 -91
- package/utils/report-runtime-error-cls-client.js.map +0 -1
- /package/resource/{doc/livekit/preset/live/vue/faq.md → knowledge/push/config/donut.md} +0 -0
- /package/resource/{doc/roomkit/vue/faq.md → knowledge/push/integration/donut.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/api.md +0 -0
- /package/resource/{doc/rtcengine/faq/web/web.md → knowledge/rtcengine/web/faq.md} +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/how_to_integrated_web_sdk.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/28-advanced-beauty.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/30-advanced-cross-room-link.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/37-advanced-voice-changer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/39-advanced-video-decoder.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/40-advanced-video-mixer.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +0 -0
- /package/resource/{doc → knowledge}/rtcengine/web/plugin/43-advanced-face-detection.md +0 -0
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
TUIKit SwiftUI is a SwiftUI UI component library built on the Chat SDK, offering a complete solution for instant messaging features such as chat, conversation lists, and contact management. This guide explains how to manually integrate the components and implement core functionalities.
|
|
2
|
+
|
|
3
|
+
## Key Concepts
|
|
4
|
+
|
|
5
|
+
TUIKit SwiftUI provides a comprehensive set of instant messaging UI components, built on top of the AtomicXCore data layer, and can be used to construct various functional pages.
|
|
6
|
+
- Page Layer: Fully functional pages built using TUIKit SwiftUI components, including ChatPage, ContactsPage, and ConversationsPage. You can use these pages directly in your app.
|
|
7
|
+
|
|
8
|
+
- TUIKit SwiftUI (UI Component Layer): SwiftUI UI components based on AtomicXCore, which can be embedded into your existing app pages.
|
|
9
|
+
|
|
10
|
+
- AtomicXCore (Data Layer): Handles data management and business logic, including various Stores and Managers.
|
|
11
|
+
|
|
12
|
+
## Prerequisites
|
|
13
|
+
- Xcode 12.0 or later.
|
|
14
|
+
|
|
15
|
+
- iOS 14.0 or later.
|
|
16
|
+
|
|
17
|
+
- Swift 5 or later.
|
|
18
|
+
|
|
19
|
+
- A valid Tencent Cloud account and Chat application. See [Enable the Service](https://trtc.io/document/74511) to obtain the following information from the console:
|
|
20
|
+
|
|
21
|
+
- SDKAppID: The unique identifier for your Chat application, available in the console.
|
|
22
|
+
|
|
23
|
+
- SecretKey: The application's SecretKey.
|
|
24
|
+
|
|
25
|
+
> **Note:**
|
|
26
|
+
>
|
|
27
|
+
|
|
28
|
+
> This project currently only supports manual integration. Integration via package managers such as CocoaPods or SPM is not supported.
|
|
29
|
+
>
|
|
30
|
+
|
|
31
|
+
## Installation and Setup
|
|
32
|
+
|
|
33
|
+
### Download Source Code
|
|
34
|
+
|
|
35
|
+
Clone the [TUIKit SwiftUI](https://github.com/Tencent-RTC/TUIKit_iOS_SwiftUI/tree/main/atomic-x) source code from GitHub:
|
|
36
|
+
``` bash
|
|
37
|
+
git clone https://github.com/Tencent-RTC/TUIKit_iOS_SwiftUI.git
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
The project directory structure is as follows:
|
|
41
|
+
``` bash
|
|
42
|
+
atomic-x/
|
|
43
|
+
├── Sources/ # UI component source code (required for integration)
|
|
44
|
+
│ ├── MessageList/ # Message list component
|
|
45
|
+
│ ├── MessageInput/ # Message input component
|
|
46
|
+
│ ├── ConversationList/ # Conversation list component
|
|
47
|
+
│ ├── ContactList/ # Contact list component
|
|
48
|
+
│ ├── BaseComponent/ # Base components
|
|
49
|
+
│ └── ... # Other UI components
|
|
50
|
+
├── Resources/ # Resource files (required for integration)
|
|
51
|
+
│ ├── assets/ # Image assets
|
|
52
|
+
│ └── strings/ # Localization string files
|
|
53
|
+
chat/
|
|
54
|
+
├── uikit/ # Page components (reference implementation)
|
|
55
|
+
│ ├── ChatPage.swift
|
|
56
|
+
│ ├── ContactsPage.swift
|
|
57
|
+
│ └── ConversationsPage.swift
|
|
58
|
+
└── demo/ # Demo application (optional reference)
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Integrate Components
|
|
62
|
+
1. Copy the entire component directory into your Xcode project as shown below. SwiftUIDemo is the sample project, and TUIKit_iOS_SwiftUI is the component source code you downloaded from GitHub:
|
|
63
|
+
|
|
64
|
+
2. Update the local path for each component in your Podfile. The path should point to the location of the TUIKit_iOS_SwiftUI folder relative to your project's Podfile. Common scenarios include:
|
|
65
|
+
|
|
66
|
+
- If the TUIKit_iOS_SwiftUI folder is in the **parent directory** of your Podfile: `pod 'AtomicX/Chat', :path => '../TUIKit_iOS_SwiftUI/atomic-x/AtomicX.podspec'`
|
|
67
|
+
|
|
68
|
+
- If the TUIKit_iOS_SwiftUI folder is in the **current directory** of your Podfile: `pod 'AtomicX/Chat', :path => './TUIKit_iOS_SwiftUI/atomic-x/AtomicX.podspec'`
|
|
69
|
+
|
|
70
|
+
- If the TUIKit_iOS_SwiftUI folder is in a **subdirectory** of your Podfile: `pod 'AtomicX/Chat', :path => '/TUIKit_iOS_SwiftUI/atomic-x/AtomicX.podspec'`
|
|
71
|
+
|
|
72
|
+
For example, if your Podfile and TUIKit_iOS_SwiftUI are in the same directory, add the following to your Podfile:
|
|
73
|
+
|
|
74
|
+
``` json
|
|
75
|
+
platform :ios, '14.0'
|
|
76
|
+
|
|
77
|
+
target 'Demo' do
|
|
78
|
+
use_frameworks! :linkage => :static
|
|
79
|
+
|
|
80
|
+
pod 'AtomicX/Chat', :path => './TUIKit_iOS_SwiftUI/atomic-x/AtomicX.podspec'
|
|
81
|
+
pod 'ChatUIKit', :path => './TUIKit_iOS_SwiftUI/chat/uikit/ChatUIKit.podspec'
|
|
82
|
+
pod 'AtomicXCore', '3.4.0'
|
|
83
|
+
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
#Pods config
|
|
87
|
+
post_install do |installer|
|
|
88
|
+
installer.pods_project.targets.each do |target|
|
|
89
|
+
target.build_configurations.each do |config|
|
|
90
|
+
|
|
91
|
+
config.build_settings['SWIFT_VERSION'] = '5.0'
|
|
92
|
+
|
|
93
|
+
#Do not strip Swift symbols
|
|
94
|
+
config.build_settings['STRIP_SWIFT_SYMBOLS'] = 'NO'
|
|
95
|
+
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
|
|
96
|
+
|
|
97
|
+
#Fix Xcode14 Bundle target error
|
|
98
|
+
config.build_settings['EXPANDED_CODE_SIGN_IDENTITY'] = ""
|
|
99
|
+
config.build_settings['CODE_SIGNING_REQUIRED'] = "NO"
|
|
100
|
+
config.build_settings['CODE_SIGNING_ALLOWED'] = "NO"
|
|
101
|
+
config.build_settings['ENABLE_BITCODE'] = "NO"
|
|
102
|
+
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = "14.0"
|
|
103
|
+
|
|
104
|
+
end
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
3. After updating your Podfile, run the following command to install the local TUIKit SwiftUI components:
|
|
111
|
+
|
|
112
|
+
``` bash
|
|
113
|
+
pod install
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
The `pod install` command will automatically install all required dependencies:
|
|
117
|
+
|
|
118
|
+
> **Notice:**
|
|
119
|
+
>
|
|
120
|
+
> - For local integration, to upgrade, download the latest component code from [GitHub](https://github.com/Tencent-RTC/TUIKit_iOS_SwiftUI/tree/main/atomic-x) and overwrite your local TUIKit SwiftUI directory.
|
|
121
|
+
> - If you have made private modifications that conflict with the remote repository, you will need to manually merge and resolve those conflicts.
|
|
122
|
+
|
|
123
|
+
### Project Configuration
|
|
124
|
+
1. **Configure Build Settings**
|
|
125
|
+
|
|
126
|
+
In your project's Build Settings, set the following:
|
|
127
|
+
|
|
128
|
+
- Swift Language Version: Swift 5.
|
|
129
|
+
|
|
130
|
+
- iOS Deployment Target: 14.0 or later.
|
|
131
|
+
|
|
132
|
+
2. **Configure Info.plist**
|
|
133
|
+
|
|
134
|
+
Add the required permissions to your Info.plist:
|
|
135
|
+
|
|
136
|
+
``` xml
|
|
137
|
+
<key>NSCameraUsageDescription</key>
|
|
138
|
+
<string>The app needs access to the camera to take photos and videos</string>
|
|
139
|
+
<key>NSMicrophoneUsageDescription</key>
|
|
140
|
+
<string>The app needs access to the microphone to record audio</string>
|
|
141
|
+
<key>NSPhotoLibraryUsageDescription</key>
|
|
142
|
+
<string>The app needs access to the photo library to select images and videos</string>
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Implementation
|
|
146
|
+
|
|
147
|
+
### Step 1: Configure User Authentication
|
|
148
|
+
|
|
149
|
+
In the [Tencent RTC Console](https://console.trtc.io/), obtain the UserSig for your UserID. UserSig is required for authentication during login.
|
|
150
|
+
|
|
151
|
+
### Step 2: User Login
|
|
152
|
+
|
|
153
|
+
You must complete authentication before using any component features. Call the login API and pass the SDKAppID and UserSig you obtained above to authenticate:
|
|
154
|
+
``` swift
|
|
155
|
+
import AtomicXCore
|
|
156
|
+
|
|
157
|
+
// User login
|
|
158
|
+
LoginStore.shared.login(sdkAppID: sdkAppID, userID: userID, userSig: userSig, completion: { [weak self] result in
|
|
159
|
+
guard let self = self else { return }
|
|
160
|
+
switch result {
|
|
161
|
+
case .success:
|
|
162
|
+
// Login successful, you can navigate to the chat or conversation page
|
|
163
|
+
case .failure(let error):
|
|
164
|
+
// Login failed, you can show an error dialog
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
> **Warning:**
|
|
170
|
+
>
|
|
171
|
+
|
|
172
|
+
> In a production environment, generate UserSig on your server. When UserSig is needed, your app should request a dynamic UserSig from your business server for authentication. See [Server-side UserSig Generation](https://trtc.io/document/34385).
|
|
173
|
+
>
|
|
174
|
+
|
|
175
|
+
### Step 3: Build the Conversation List Interface
|
|
176
|
+
|
|
177
|
+
Use the ConversationList component in TUIKit SwiftUI to create a conversation list page. ConversationList includes the following features:
|
|
178
|
+
- Displays the user's conversation list, including C2C Chat and Group Chat.
|
|
179
|
+
|
|
180
|
+
- Supports operations on individual conversations: pin, delete, clear conversation messages, and more.
|
|
181
|
+
|
|
182
|
+
You can embed ConversationList directly into your app pages or build a standalone conversation list page. Example UI after assembly:
|
|
183
|
+
|
|
184
|
+
To wrap ConversationList as a conversation list page, refer to the implementation in `chat/uikit/ConversationsPage.swift`. The `ConversationsPage` does the following:
|
|
185
|
+
|
|
186
|
+
1. Adds a headerView above ConversationList.
|
|
187
|
+
|
|
188
|
+
2. Implements the conversation list cell tap event.
|
|
189
|
+
|
|
190
|
+
3. Supports creating conversations and groups:
|
|
191
|
+
|
|
192
|
+
1. Tapping the "+" button in the top right allows you to create a new conversation or group.
|
|
193
|
+
|
|
194
|
+
2. Select a friend from the contact list to start a C2C Chat.
|
|
195
|
+
|
|
196
|
+
3. Select multiple friends to create a Group Chat.
|
|
197
|
+
|
|
198
|
+
``` swift
|
|
199
|
+
import AtomicX
|
|
200
|
+
import AtomicXCore
|
|
201
|
+
import SwiftUI
|
|
202
|
+
|
|
203
|
+
public struct ConversationsPage: View {
|
|
204
|
+
...
|
|
205
|
+
|
|
206
|
+
public var body: some View {
|
|
207
|
+
VStack(spacing: 0) {
|
|
208
|
+
headerView
|
|
209
|
+
ConversationList(
|
|
210
|
+
onConversationClick: { conversation in
|
|
211
|
+
// Customize onConversationClick event
|
|
212
|
+
onShowMessage?(NavigationInfo(conversation: conversation))
|
|
213
|
+
}
|
|
214
|
+
)
|
|
215
|
+
.environmentObject(themeState)
|
|
216
|
+
}
|
|
217
|
+
.onReceive(contactListStore.state.subscribe(StatePublisherSelector(keyPath: \ContactListState.friendList))) { friendList in
|
|
218
|
+
if self.friendList != friendList {
|
|
219
|
+
self.friendList = friendList
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
.onAppear {
|
|
223
|
+
contactListStore.fetchFriendList(completion: { _ in })
|
|
224
|
+
}
|
|
225
|
+
.overlay(
|
|
226
|
+
// Show this menu when "+" is tapped.
|
|
227
|
+
ChatsMenuOverlay(
|
|
228
|
+
showChatsMenu: $showChatsMenu,
|
|
229
|
+
showStartConversation: $showStartConversation,
|
|
230
|
+
showUserPicker: $showUserPicker
|
|
231
|
+
)
|
|
232
|
+
)
|
|
233
|
+
...
|
|
234
|
+
}
|
|
235
|
+
...
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
private var headerView: some View {
|
|
239
|
+
HStack {
|
|
240
|
+
Text(LocalizedChatString("TabChats"))
|
|
241
|
+
.font(.system(size: 34, weight: .semibold))
|
|
242
|
+
.tracking(0.3)
|
|
243
|
+
.foregroundColor(themeState.colors.textColorPrimary)
|
|
244
|
+
.background(themeState.colors.listColorDefault)
|
|
245
|
+
.padding(.leading, 16)
|
|
246
|
+
Spacer()
|
|
247
|
+
if AppBuilderConfig.shared.enableCreateConversation {
|
|
248
|
+
Button(action: {
|
|
249
|
+
showChatsMenu.toggle()
|
|
250
|
+
}) {
|
|
251
|
+
Image(systemName: "plus")
|
|
252
|
+
.font(.system(size: 20))
|
|
253
|
+
.foregroundColor(themeState.colors.buttonColorPrimaryDefault)
|
|
254
|
+
.frame(width: 28, height: 28)
|
|
255
|
+
.cornerRadius(14)
|
|
256
|
+
}
|
|
257
|
+
.padding(.trailing, 16)
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
.padding(.top, 12)
|
|
261
|
+
.padding(.bottom, 16)
|
|
262
|
+
}
|
|
263
|
+
```
|
|
264
|
+
|
|
265
|
+
### Step 4: Build the Chat Interface
|
|
266
|
+
|
|
267
|
+
Use the MessageList and MessageInput components in TUIKit SwiftUI to create a chat page.
|
|
268
|
+
- MessageList:
|
|
269
|
+
|
|
270
|
+
- Displays C2C Chat or Group Chat message lists.
|
|
271
|
+
|
|
272
|
+
- Supports actions on individual messages: view images, play video or voice messages, copy text, recall messages, delete messages, and more.
|
|
273
|
+
|
|
274
|
+
- MessageInput:
|
|
275
|
+
|
|
276
|
+
- Allows users to compose and send various message types: text, emoji, images, voice, video, files, and more.
|
|
277
|
+
|
|
278
|
+
You can embed MessageList and MessageInput directly into your app pages or build a complete chat page. Example UI after assembly:
|
|
279
|
+
|
|
280
|
+
To assemble MessageList and MessageInput as a chat page, refer to the implementation in `chat/uikit/ChatPage.swift`. The `ChatPage` does the following:
|
|
281
|
+
|
|
282
|
+
1. Adds a headerView at the top to display the conversation name.
|
|
283
|
+
|
|
284
|
+
2. Arranges MessageList and MessageInput vertically to match mobile usage patterns.
|
|
285
|
+
|
|
286
|
+
Core sample code:
|
|
287
|
+
|
|
288
|
+
``` swift
|
|
289
|
+
import AtomicX
|
|
290
|
+
import AtomicXCore
|
|
291
|
+
import SwiftUI
|
|
292
|
+
|
|
293
|
+
public struct ChatPage: View {
|
|
294
|
+
...
|
|
295
|
+
|
|
296
|
+
public var body: some View {
|
|
297
|
+
return VStack(spacing: 0) {
|
|
298
|
+
self.navigationBarView
|
|
299
|
+
|
|
300
|
+
Divider()
|
|
301
|
+
.background(self.themeState.colors.strokeColorPrimary)
|
|
302
|
+
|
|
303
|
+
VStack(spacing: 0) {
|
|
304
|
+
MessageList(
|
|
305
|
+
conversationID: self.conversation.id,
|
|
306
|
+
listStyle: self.listStyle,
|
|
307
|
+
locateMessage: self.locateMessage,
|
|
308
|
+
onUserClick: { userID in
|
|
309
|
+
onUserAvatarClick?(userID)
|
|
310
|
+
}
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
self.messageInputAreaView
|
|
314
|
+
}
|
|
315
|
+
.ignoresSafeArea(.keyboard)
|
|
316
|
+
}
|
|
317
|
+
.toast(toast)
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Header
|
|
321
|
+
private var navigationBarView: some View {
|
|
322
|
+
HStack {
|
|
323
|
+
Button(action: {
|
|
324
|
+
onBack?()
|
|
325
|
+
}) {
|
|
326
|
+
Image(systemName: "chevron.left")
|
|
327
|
+
.font(.system(size: 18, weight: .semibold))
|
|
328
|
+
.foregroundColor(themeState.colors.textColorLink)
|
|
329
|
+
}
|
|
330
|
+
.padding(.leading, 16)
|
|
331
|
+
|
|
332
|
+
Button(action: {
|
|
333
|
+
onNavigationAvatarClick?()
|
|
334
|
+
}) {
|
|
335
|
+
HStack(spacing: 12) {
|
|
336
|
+
Avatar(
|
|
337
|
+
url: conversation.avatarURL,
|
|
338
|
+
name: conversation.title ?? conversation.conversationID,
|
|
339
|
+
size: .s
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
VStack(alignment: .leading, spacing: 2) {
|
|
343
|
+
Text(conversation.title ?? conversation.conversationID)
|
|
344
|
+
.font(.system(size: 17, weight: .semibold))
|
|
345
|
+
.foregroundColor(themeState.colors.textColorPrimary)
|
|
346
|
+
.lineLimit(1)
|
|
347
|
+
|
|
348
|
+
if conversation.type == .group {
|
|
349
|
+
Text("Group Chat")
|
|
350
|
+
.font(.system(size: 12))
|
|
351
|
+
.foregroundColor(themeState.colors.textColorSecondary)
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
.buttonStyle(PlainButtonStyle())
|
|
357
|
+
|
|
358
|
+
Spacer()
|
|
359
|
+
}
|
|
360
|
+
.frame(height: 44)
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
// MessageInput
|
|
364
|
+
private var messageInputAreaView: some View {
|
|
365
|
+
VStack(spacing: 0) {
|
|
366
|
+
MessageInput(
|
|
367
|
+
text: $messageText,
|
|
368
|
+
conversationID: conversation.id,
|
|
369
|
+
style: inputStyle,
|
|
370
|
+
onHeightChange: { height in
|
|
371
|
+
self.inputAreaHeight = height
|
|
372
|
+
}
|
|
373
|
+
)
|
|
374
|
+
.padding(.bottom, 8)
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
...
|
|
379
|
+
}
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Step 5: Build the Contacts Interface
|
|
383
|
+
|
|
384
|
+
Use the ContactList component in TUIKit SwiftUI to create a contacts page. ContactList includes the following features:
|
|
385
|
+
- View friend requests
|
|
386
|
+
|
|
387
|
+
- View joined groups
|
|
388
|
+
|
|
389
|
+
- Handle group invitations and applications
|
|
390
|
+
|
|
391
|
+
- Manage the blacklist
|
|
392
|
+
|
|
393
|
+
- View friends
|
|
394
|
+
|
|
395
|
+
You can embed ContactList directly into your app or build a standalone contacts page. Example UI after assembly:
|
|
396
|
+
|
|
397
|
+
To wrap ContactList as a contacts page, refer to the implementation in `chat/uikit/ContactsPage.swift`. The `ContactsPage` does the following:
|
|
398
|
+
|
|
399
|
+
1. Adds a headerView above ContactList.
|
|
400
|
+
|
|
401
|
+
2. Implements the contact list cell tap event.
|
|
402
|
+
|
|
403
|
+
3. Supports adding contacts and groups:
|
|
404
|
+
|
|
405
|
+
1. Tapping the "+" button in the top right allows you to add contacts or groups.
|
|
406
|
+
|
|
407
|
+
2. Search for contacts by UserID.
|
|
408
|
+
|
|
409
|
+
3. Search for groups by GroupID.
|
|
410
|
+
|
|
411
|
+
``` swift
|
|
412
|
+
import AtomicX
|
|
413
|
+
import AtomicXCore
|
|
414
|
+
import SwiftUI
|
|
415
|
+
|
|
416
|
+
public struct ContactsPage: View {
|
|
417
|
+
...
|
|
418
|
+
|
|
419
|
+
public var body: some View {
|
|
420
|
+
VStack(spacing: 0) {
|
|
421
|
+
headerView
|
|
422
|
+
ContactList(
|
|
423
|
+
contactStore: contactStore,
|
|
424
|
+
onShowMessage: onShowMessage,
|
|
425
|
+
onContactClick: onContactClick,
|
|
426
|
+
onGroupClick: onGroupClick,
|
|
427
|
+
onNewFriendsClick: onNewFriendsClick,
|
|
428
|
+
onGroupApplicationsClick: onGroupApplicationsClick,
|
|
429
|
+
onGroupListClick: onGroupListClick,
|
|
430
|
+
onBlackListClick: onBlackListClick
|
|
431
|
+
)
|
|
432
|
+
}
|
|
433
|
+
.overlay(
|
|
434
|
+
Group {
|
|
435
|
+
if showAddContactMenu {
|
|
436
|
+
VStack {
|
|
437
|
+
HStack {
|
|
438
|
+
Spacer()
|
|
439
|
+
AddContactPopView(
|
|
440
|
+
onDismiss: {
|
|
441
|
+
showAddContactMenu = false
|
|
442
|
+
},
|
|
443
|
+
onShowAddFriend: {
|
|
444
|
+
showAddFriend = true
|
|
445
|
+
},
|
|
446
|
+
onShowJoinGroup: {
|
|
447
|
+
showJoinGroup = true
|
|
448
|
+
}
|
|
449
|
+
)
|
|
450
|
+
.padding(.trailing, 16)
|
|
451
|
+
.padding(.top, 50)
|
|
452
|
+
}
|
|
453
|
+
Spacer()
|
|
454
|
+
}
|
|
455
|
+
.background(
|
|
456
|
+
Color.clear
|
|
457
|
+
.contentShape(Rectangle())
|
|
458
|
+
.onTapGesture {
|
|
459
|
+
showAddContactMenu = false
|
|
460
|
+
}
|
|
461
|
+
)
|
|
462
|
+
.animation(.easeInOut(duration: 0.2), value: showAddContactMenu)
|
|
463
|
+
}
|
|
464
|
+
}
|
|
465
|
+
)
|
|
466
|
+
.sheet(isPresented: $showAddFriend) {
|
|
467
|
+
AddFriendView(contactStore: contactStore)
|
|
468
|
+
}
|
|
469
|
+
.sheet(isPresented: $showJoinGroup) {
|
|
470
|
+
JoinGroupView(contactStore: contactStore)
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
private var headerView: some View {
|
|
475
|
+
HStack {
|
|
476
|
+
Text(LocalizedChatString("TabContacts"))
|
|
477
|
+
.font(.system(size: 34, weight: .semibold))
|
|
478
|
+
.tracking(0.3)
|
|
479
|
+
.foregroundColor(themeState.colors.textColorPrimary)
|
|
480
|
+
.padding(.leading, 16)
|
|
481
|
+
Spacer()
|
|
482
|
+
Button(action: {
|
|
483
|
+
showAddContactMenu = true
|
|
484
|
+
}) {
|
|
485
|
+
Image(systemName: "plus")
|
|
486
|
+
.font(.system(size: 20))
|
|
487
|
+
.foregroundColor(themeState.colors.buttonColorPrimaryDefault)
|
|
488
|
+
.frame(width: 28, height: 28)
|
|
489
|
+
.cornerRadius(14)
|
|
490
|
+
}
|
|
491
|
+
.padding(.trailing, 16)
|
|
492
|
+
}
|
|
493
|
+
.padding(.top, 12)
|
|
494
|
+
.padding(.bottom, 16)
|
|
495
|
+
}
|
|
496
|
+
|
|
497
|
+
...
|
|
498
|
+
}
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Step 6: Refine Page Navigation Logic
|
|
502
|
+
|
|
503
|
+
ConversationsPage, ChatPage, and ContactsPage expose several user interaction events. You can customize these events to implement navigation between pages:
|
|
504
|
+
| Page | Webhook | Recommended Navigation Logic |
|
|
505
|
+
| --- | --- | --- |
|
|
506
|
+
| <strong>ConversationsPage</strong> | <code>onConversationClick: ((NavigationInfo) -> Void)?</code> | Triggered when a conversation is tapped in the conversation list; recommended to navigate to the chat page (ChatPage). |
|
|
507
|
+
| <strong>ContactPage</strong> | <code>onContactClick: ((AZOrderedListItem) -> Void)?</code> | Triggered when a contact cell is tapped; recommended to navigate to the contact detail page (C2CChatSetting). |
|
|
508
|
+
| <code>onGroupClick: ((AZOrderedListItem) -> Void)?</code> | Triggered when a group cell is tapped; recommended to navigate to the group chat page (ChatPage). | |
|
|
509
|
+
| <strong>ChatPage</strong> | <code>onBack: (() -> Void)?</code> | Triggered when the back button is tapped; recommended to return to the previous page. |
|
|
510
|
+
| <code>onUserAvatarClick: ((String) -> Void)?</code> | Triggered when a user avatar is tapped in a message; recommended to navigate to the user info page (C2CChatSetting). | |
|
|
511
|
+
| <code>onNavigationAvatarClick: (() -> Void)?</code> | Triggered when the avatar in the navigation bar is tapped; recommended to navigate to the user info page (C2CChatSetting) or group info page (GroupChatSetting). | |
|
|
512
|
+
|
|
513
|
+
**chat/demo/ChatDemo/Pages/HomePage.swift** acts as the glue layer for these pages, implementing the callback events for each page.
|
|
514
|
+
``` swift
|
|
515
|
+
// Navigate when a conversation list cell is tapped
|
|
516
|
+
ConversationsPage(
|
|
517
|
+
onShowMessage: { navigationInfo in
|
|
518
|
+
showChatPage(conversation: navigationInfo.conversation, locateMessage: navigationInfo.locateMessage)
|
|
519
|
+
}
|
|
520
|
+
)
|
|
521
|
+
|
|
522
|
+
// Navigate from the contacts page
|
|
523
|
+
ContactsPage(
|
|
524
|
+
onContactClick: { user in
|
|
525
|
+
showContactDetail(user)
|
|
526
|
+
},
|
|
527
|
+
onGroupClick: { group in
|
|
528
|
+
let conversation = createConversationFromGroup(group)
|
|
529
|
+
showChatPage(conversation: conversation)
|
|
530
|
+
}
|
|
531
|
+
)
|
|
532
|
+
|
|
533
|
+
// ChatNavPage wraps ChatPage with a navigation bar
|
|
534
|
+
ChatNavPage(
|
|
535
|
+
conversation: conversation,
|
|
536
|
+
locateMessage: currentLocateMessage,
|
|
537
|
+
onBack: {
|
|
538
|
+
dismissChatPage()
|
|
539
|
+
},
|
|
540
|
+
onContactDelete: {
|
|
541
|
+
dismissChatPage()
|
|
542
|
+
},
|
|
543
|
+
onGroupDelete: {
|
|
544
|
+
dismissChatPage()
|
|
545
|
+
},
|
|
546
|
+
onNavigateToChat: { newConversation in
|
|
547
|
+
// First dismiss current chat page, then navigate to the new chat
|
|
548
|
+
dismissChatPage()
|
|
549
|
+
DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
|
|
550
|
+
showChatPage(conversation: newConversation)
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
)
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
Refer to the callback descriptions and sample code above to implement navigation and interaction logic between pages.
|
|
557
|
+
|
|
558
|
+
## FAQs
|
|
559
|
+
|
|
560
|
+
### **Login failed with signature error, what should I do?**
|
|
561
|
+
|
|
562
|
+
Check that your SDKAppID and userSig are correct and that the userSig has not expired. Refer to the Configure User Authentication section above to regenerate the userSig if needed.
|
|
563
|
+
|
|
564
|
+
## Contact Us
|
|
565
|
+
|
|
566
|
+
If you have any questions or suggestions during integration or usage, feel free to [Contact Us](https://trtc.io/contact) to submit feedback.
|