@tencent-rtc/mcp 1.3.3 → 1.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/package.json +1 -1
  2. package/resource/doc/chatuikit/android/features/theme.md +363 -0
  3. package/resource/doc/chatuikit/{android/client_api_Android.md → faq/android_sdk/client-api.md} +0 -2
  4. package/resource/doc/chatuikit/faq/common/product.md +8 -0
  5. package/resource/doc/chatuikit/faq/flutter_sdk/faq.md +53 -0
  6. package/resource/doc/chatuikit/{iOS/client_api_iOS.md → faq/ios_sdk/client-api.md} +0 -2
  7. package/resource/doc/chatuikit/flutter/features/theme.md +379 -0
  8. package/resource/doc/chatuikit/flutter/integration.md +413 -0
  9. package/resource/doc/chatuikit/flutter/workflow.md +941 -0
  10. package/resource/doc/chatuikit/iOS/features/theme.md +416 -0
  11. package/resource/doc/chatuikit/iOS/workflow.md +0 -0
  12. package/resource/doc/chatuikit/react/components/chat-setting.md +86 -0
  13. package/resource/doc/chatuikit/react/components/contact-list.md +1093 -0
  14. package/resource/doc/chatuikit/react/components/search.md +745 -0
  15. package/resource/doc/chatuikit/vue/components/chat-setting.md +64 -0
  16. package/resource/doc/chatuikit/vue/components/contact-list.md +679 -0
  17. package/resource/doc/chatuikit/vue/components/search.md +1384 -0
  18. package/resource/doc/livekit/live/android/workflow.md +137 -6
  19. package/resource/doc/livekit/live/ios/live-audience-list.md +339 -0
  20. package/resource/doc/livekit/live/ios/live-audio-effect.md +370 -0
  21. package/resource/doc/livekit/live/ios/live-barrage.md +517 -0
  22. package/resource/doc/livekit/live/ios/live-base-beauty.md +247 -0
  23. package/resource/doc/livekit/live/ios/live-co-guest-interaction.md +518 -0
  24. package/resource/doc/livekit/live/ios/live-gift.md +783 -0
  25. package/resource/doc/livekit/live/ios/live-host-interaction.md +815 -0
  26. package/resource/doc/livekit/live/ios/live-integration.md +931 -0
  27. package/resource/doc/livekit/live/ios/live-live-list.md +485 -0
  28. package/resource/doc/livekit/live/ios/workflow.md +454 -0
  29. package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +87 -0
  30. package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +87 -0
  31. package/resource/doc/rtcengine/web/plugin/22-advanced-audio-mixer.md +175 -0
  32. package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +221 -0
  33. package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +140 -0
  34. package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +99 -0
  35. package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +451 -0
  36. package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +151 -0
  37. package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +322 -0
  38. package/resource/doc/rtcengine/web/plugin/29-advanced-water-mark.md +149 -0
  39. package/resource/doc/rtcengine/web/plugin/30-advanced-cross-room-link.md +96 -0
  40. package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +330 -0
  41. package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +248 -0
  42. package/resource/doc/rtcengine/web/plugin/35-advanced-ai-denoiser.md +81 -0
  43. package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +242 -0
  44. package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +99 -0
  45. package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +33 -0
  46. package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +379 -0
  47. package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +91 -0
  48. package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +315 -0
  49. package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +180 -0
  50. package/tools/chat/get-native-chat-feature-detail.js +30 -0
  51. package/tools/chat/get-native-chat-feature-detail.js.map +1 -0
  52. package/tools/chat/get-native-chat-integration.js +30 -12
  53. package/tools/chat/get-native-chat-integration.js.map +1 -1
  54. package/tools/common/get-faq.js +2 -4
  55. package/tools/common/get-faq.js.map +1 -1
  56. package/tools/definitions/get_native_chat_feature_detail_def.js +32 -0
  57. package/tools/definitions/get_native_chat_feature_detail_def.js.map +1 -0
  58. package/tools/definitions/get_native_chat_uikit_integration_def.js +19 -7
  59. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  60. package/tools/definitions/{get_native_live_extra_features_def.js → get_native_live_uikit_extra_features_def.js} +3 -3
  61. package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +1 -0
  62. package/tools/definitions/{get_native_live_interaction_def.js → get_native_live_uikit_interaction_def.js} +3 -3
  63. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +1 -0
  64. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +49 -10
  65. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
  66. package/tools/definitions/record_prompt_def.js +42 -11
  67. package/tools/definitions/record_prompt_def.js.map +1 -1
  68. package/tools/definitions/record_result_def.js +1 -1
  69. package/tools/index.js +6 -4
  70. package/tools/index.js.map +1 -1
  71. package/tools/live/{get_native_live_extra_features.js → get_native_live_uikit_extra_features.js} +4 -4
  72. package/tools/live/get_native_live_uikit_extra_features.js.map +1 -0
  73. package/tools/live/{get_native_live_interaction.js → get_native_live_uikit_interaction.js} +4 -4
  74. package/tools/live/get_native_live_uikit_interaction.js.map +1 -0
  75. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +1 -1
  76. package/tools/rtcengine/get-trtc-sdk-faq.js +32 -0
  77. package/tools/rtcengine/get-trtc-sdk-faq.js.map +1 -0
  78. package/tools/rtcengine/get-trtc-web-sdk-faq.js +1 -1
  79. package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +1 -1
  80. package/tools/rtcengine/get-trtc-web-sdk-plugin.js +45 -0
  81. package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +1 -0
  82. package/utils/handle-component-name.js +0 -16
  83. package/utils/handle-component-name.js.map +1 -1
  84. package/utils/report-cls-client.js +1 -1
  85. package/utils/report-es-client.js +1 -1
  86. package/resource/doc/chatuikit/android/generate_UserSig.md +0 -306
  87. package/resource/doc/chatuikit/android/integrarte_only_tuichat_Android.md +0 -290
  88. package/resource/doc/chatuikit/android/quick_start_Android.md +0 -138
  89. package/resource/doc/chatuikit/android/show_typing_Android.md +0 -43
  90. package/resource/doc/chatuikit/flutter/generate_UserSig.md +0 -306
  91. package/resource/doc/chatuikit/flutter/integrate_tuikit_Flutter.md +0 -133
  92. package/resource/doc/chatuikit/iOS/generate_UserSig.md +0 -306
  93. package/resource/doc/chatuikit/iOS/integrate_only_tuichat_iOS.md +0 -748
  94. package/resource/doc/chatuikit/iOS/quick_start_iOS.md +0 -163
  95. package/resource/doc/chatuikit/iOS/show_typing_iOS.md +0 -52
  96. package/tools/definitions/get_native_live_extra_features_def.js.map +0 -1
  97. package/tools/definitions/get_native_live_interaction_def.js.map +0 -1
  98. package/tools/live/get_native_live_extra_features.js.map +0 -1
  99. package/tools/live/get_native_live_interaction.js.map +0 -1
  100. /package/resource/doc/chatuikit/android/{integrate_tuikit_Android.md → integration.md} +0 -0
  101. /package/resource/doc/chatuikit/{faq/native_sdk/faq.md → android/workflow.md} +0 -0
  102. /package/resource/doc/chatuikit/{flutter/client_api_Flutter.md → faq/flutter_sdk/client-api.md} +0 -0
  103. /package/resource/doc/chatuikit/iOS/{integrate_tuikit_iOS.md → integration.md} +0 -0
  104. /package/resource/doc/chatuikit/react/components/{chatheader.md → chat-header.md} +0 -0
  105. /package/resource/doc/chatuikit/vue/components/{chatheader.md → chat-header.md} +0 -0
@@ -1,138 +0,0 @@
1
- This document will guide you through integrating TUIKit and successfully sending your first message.
2
-
3
- ## Environment Requirements
4
- - Android Studio-Giraffe
5
-
6
- - Gradle-7.2
7
-
8
- - Android Gradle Plugin Version-7.0.0
9
-
10
- - kotlin-gradle-plugin-1.5.31
11
-
12
-
13
- ## Create an Application
14
-
15
- Before integrating TUIKit, you need to create a Chat application in the console. The steps are as follows:
16
- 1. Register a console account.
17
-
18
- 2. Go to `Applications`, click `Create Application`, and an application information input box will pop up.
19
-
20
- 3. Fill in the application name, select the product as Chat, and choose an appropriate region.
21
-
22
-
23
- After the operation is complete, you will see the application you just created in the `My Applications` list.
24
-
25
-
26
- > **Note:**
27
- >
28
-
29
- > Note down the SDKAppID of this application, as it will be used in subsequent steps. Also, keep the SDKSecretKey strictly confidential and do not disclose it to irrelevant personnel.
30
- >
31
-
32
-
33
- The steps are illustrated as follows:
34
-
35
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027983637/6a8d0b53167b11efb6495254005ac0ca.png)
36
-
37
-
38
- ## Create User Accounts
39
-
40
- Creating an application only ensures you can initialize the SDK normally. To successfully send messages, you also need to create a user account in the application. There are many ways to create an account, such as directly creating it in the console or registering via API on the client. You may choose any method that suits you best.
41
-
42
- > **Note:**
43
- >
44
-
45
- > Sending messages involves at least two users, so at this step, you need to create at least two accounts. Note down the userID of these two accounts for subsequent steps.
46
- >
47
-
48
-
49
- If you need to create an account in the console, follow these steps:
50
- 1. Click to enter the application you created above, and you will see the Chat on the left sidebar. Click to enter.
51
-
52
- 2. On the Chat submenu, click `Users` to go to the Account Management page.
53
-
54
- 3. Click `Create account`, and an account creation dialog box will pop up. It is recommended to select `General` for a regular member. Although `Nickname` is not required, we still recommend setting it. If `userID` is not displayed on the UI, you can identify different users through `Nickname`.
55
-
56
-
57
- The details are as follows:
58
-
59
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027983637/69cd0487167b11efb5545254007bbd8c.png)
60
-
61
-
62
- If you need to register through the client, no additional operations are needed. You just need to input a new `userID` in the section "Log In to TUIKit" below, and TUIKit will automatically register that `userID` for you.
63
-
64
-
65
- ## Install TUIKit
66
-
67
- The feature of sending messages in chat interactions is implemented by `TUIChat`. You need to integrate at least `TUIChat` to properly send and receive messages. Other components, such as `TUIConversation`, `TUIContact`, and `TUIGroup`, can be integrated as needed.
68
- - If you need multiple UI components, you can integrate TUIKit. For details, see [Install TUIKit](https://www.tencentcloud.com/document/product/1047/50057?lang=en&pg=).
69
-
70
- - If you only need to integrate TUIChat, see [Install TUIChat Only](https://www.tencentcloud.com/document/product/1047/60168?lang=en&pg=).
71
-
72
-
73
- ## Log In to TUIKit
74
-
75
- TUILogin provides an API to log in to TUIKit, as follows:
76
- ``` java
77
- // API location: TUICore/TUILogin.java
78
- // Called when login is clicked on the user UI
79
- TUILogin.login(context, sdkAppID, userID, userSig, new TUICallback() {
80
- @Override
81
- public void onSuccess() {
82
- }
83
-
84
- @Override
85
- public void onError(final int code, final String desc) {
86
- }
87
- });
88
- ```
89
-
90
- This API requires three parameters:
91
- - sdkAppID, the new application's SDKAppID, which was obtained in the previous steps.
92
-
93
- - userID, user1's userID, which was obtained in the previous steps. Note that it is not the user's nickname.
94
-
95
- - userSig, user1's userSig, which can be generated in real time using the development tools provided by the console. The path is: Homepage > Development Tools > UserSig Tools > Signature (UserSig) Generator, as shown below:
96
-
97
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027983637/69e13ff2167b11efb8ef5254002fd0a8.png)
98
-
99
-
100
- ## Navigate to Chat Interface
101
-
102
- To send messages, the next step is:
103
- 1. Use one of the previously registered accounts (hereinafter referred to as user1) to log in to TUIKit, and then user1 is online.
104
-
105
- 2. User1 sends a message to another account (hereinafter referred to as user2). User2 does not need to log in and does not need to have any friend relationship with user1.
106
-
107
-
108
- > **Note:**
109
- >
110
-
111
- > The following steps explain how to send a message to user2 after logging in as user1. If you wish for user1 and user2 to interact via chat, you need to use the same steps to log in as user2 and enter the chat interface with user1.
112
- >
113
-
114
-
115
- You can jump to the chat interface in the callback of user1's successful login, and then you can send a message to user2.
116
-
117
-
118
- The sample code is as follows, where chatID needs to be user2's id.
119
-
120
- ``` java
121
- Intent intent = new Intent(context, TUIC2CChatMinimalistActivity.class);
122
- intent.putExtra(TUIConstants.TUIChat.CHAT_ID, "chatID");
123
- intent.putExtra(TUIConstants.TUIChat.CHAT_TYPE, V2TIMConversation.V2TIM_C2C);
124
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
125
- context.startActivity(intent);
126
- ```
127
-
128
- ## Send Your First Message
129
-
130
- After completing the previous steps, you can jump to the following chat interface. Click the input box to send your first message:
131
-
132
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027983637/6999304c167b11efb5545254007bbd8c.png)
133
-
134
-
135
- ## Contact Us
136
-
137
- If you have any questions about this article, feel free to join the [Telegram Technical Group](https://t.me/+EPk6TMZEZMM5OGY1), where you will receive reliable technical support.
138
-
@@ -1,43 +0,0 @@
1
- ## Description
2
-
3
- TUIKit supports showing "Typing..." in a one-to-one chat in the classic UI starting from version [6.5.2803](https://www.tencentcloud.com/zh/document/product/1047/34282#6.5.2803-.402022.07.15---.E5.A2.9E.E5.BC.BA.E7.89.88).
4
-
5
- This feature is implemented using the [Online Message](https://www.tencentcloud.com/zh/document/product/1047/48019) capability of IMSDK.
6
- <table>
7
- <tr>
8
- <td rowspan="1" colSpan="1" >Enabling "Typing..."</td>
9
-
10
- <td rowspan="1" colSpan="1" >Disabling "Typing..."</td>
11
- </tr>
12
-
13
- <tr>
14
- <td rowspan="1" colSpan="1" >![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027325838/505f5e73dc7711eea122525400bb593a.jpg)</td>
15
-
16
- <td rowspan="1" colSpan="1" >![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027325838/56355b11dc7711eebb01525400b5f95f.jpg)</td>
17
- </tr>
18
- </table>
19
-
20
-
21
- ## Disabling "Typing..."
22
-
23
- In the `TUIChat` component, within the [GeneralConfig.java](https://github.com/TencentCloud/chat-uikit-android/blob/main/TUIKit/TUIChat/tuichat/src/main/java/com/tencent/qcloud/tuikit/tuichat/config/GeneralConfig.java) file, a switch for the "Typing..." feature, named **enableTypingStatus**, is provided. Its type is boolean, with a default value of `true`.
24
- ``` java
25
- public class GeneralConfig {
26
- private boolean enableTypingStatus = true;
27
- }
28
- ```
29
-
30
- To disable the typing indicator feature, simply change the default value of **enableTypingStatus** to `false`, or call the following method before initializing the chat page.
31
- ``` java
32
- TUIChatConfigs.getConfigs().getGeneralConfig().setEnableTypingStatus(false);
33
- ```
34
-
35
- ## FAQs
36
-
37
- ### Why is there no prompt for typing after the switch is turned on?
38
-
39
- The rule for showing "Typing..." in a one-to-one chat is: the other party has sent you a message within the last 30 seconds and is currently typing.
40
-
41
- ## Exchange and Feedback
42
-
43
- Join the [Telegram technical exchange group](https://t.me/+1doS9AUBmndhNGNl) or [WhatsApp discussion group](https://chat.whatsapp.com/Gfbxk7rQBqc8Rz4pzzP27A), benefit from the support of professional engineers, and solve your toughest challenges.
@@ -1,306 +0,0 @@
1
- This document outlines two authentication methods for Chat services, with a focus on UserSig, a security signature by Tencent Cloud to safeguard against unauthorized access. For basic cloud service usage, provide SDKAppID, UserID, and UserSig during SDK initialization or login.
2
- - SDKAppID is used to identify your application.
3
-
4
- - UserID is used to identify your user.
5
-
6
- - UserSig is a security signature calculated based on the first two using the HMAC SHA256 encryption algorithm. As long as attackers cannot forge the UserSig, they cannot steal your cloud service traffic.
7
-
8
-
9
- ## Obtaining a Key
10
- 1. Log in to the [Chat console](https://console.trtc.io/chat).
11
-
12
-
13
- > **Note: **
14
- >
15
-
16
- > If you do not have any app, [create an app](https://intl.cloud.tencent.com/document/product/1047/45914) and then perform [step 2](https://write.woa.com/#step2).
17
- >
18
-
19
- 2. Click the target app card to go to its basic configuration page.
20
-
21
- 3. In the **Basic Information** section, click **Display key** to the right of **Key**.
22
-
23
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100026631907/9da6a1d5f4df11efa823525400e889b2.png)
24
-
25
- 4. Click **Copy** to copy and save the key information.
26
-
27
-
28
- > **Note: **
29
- >
30
-
31
- > Store the key information properly to prevent disclosure.
32
- >
33
-
34
-
35
- ## Calculating UserSig on the Client
36
-
37
- The `GenerateTestUserSig` open-source module provided in the sample code of the Chat SDK can help you quickly generate a UserSig. You only need to configure three member variables, including SDKAPPID (SDKAppID of the app), EXPIRETIME (UserSig expiration time), and SECRETKEY (key information), and then call the genTestUserSig() function to quickly obtain a UserSig.
38
-
39
- To simplify this process, we provide the source code for computing a UserSig for the following languages and platforms. You can directly download and integrate the source code into your client.
40
- <table>
41
- <tr>
42
- <td rowspan="1" colSpan="1" >Programing Language</td>
43
-
44
- <td rowspan="1" colSpan="1" >Platform</td>
45
-
46
- <td rowspan="1" colSpan="1" >GenerateTestUserSig Source Code</td>
47
- </tr>
48
-
49
- <tr>
50
- <td rowspan="1" colSpan="1" >Java</td>
51
-
52
- <td rowspan="1" colSpan="1" >Android</td>
53
-
54
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.java](https://github.com/tencentyun/TIMSDK/blob/master/Android/Demo/app/src/main/java/com/tencent/qcloud/tim/demo/signature/GenerateTestUserSig.java)</td>
55
- </tr>
56
-
57
- <tr>
58
- <td rowspan="1" colSpan="1" >Objective-C</td>
59
-
60
- <td rowspan="1" colSpan="1" >iOS</td>
61
-
62
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.h](https://github.com/tencentyun/TIMSDK/blob/master/iOS/Demo/TUIKitDemo/Private/GenerateTestUserSig.h)</td>
63
- </tr>
64
-
65
- <tr>
66
- <td rowspan="1" colSpan="1" >Objective-C</td>
67
-
68
- <td rowspan="1" colSpan="1" >Mac</td>
69
-
70
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.h](https://github.com/tencentyun/TIMSDK/blob/master/Mac/Demo/TUIKitDemo/Debug/GenerateTestUserSig.h)</td>
71
- </tr>
72
-
73
- <tr>
74
- <td rowspan="1" colSpan="1" >C++</td>
75
-
76
- <td rowspan="1" colSpan="1" >Windows</td>
77
-
78
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.h](https://github.com/tencentyun/TIMSDK/blob/master/Windows/Demo/IMApp/GenerateTestUserSig.h)</td>
79
- </tr>
80
-
81
- <tr>
82
- <td rowspan="1" colSpan="1" >Javascript</td>
83
-
84
- <td rowspan="1" colSpan="1" >Web</td>
85
-
86
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.js](https://github.com/TencentCloud/chat-uikit-uniapp/blob/main/TUIKit/debug/GenerateTestUserSig.js)</td>
87
- </tr>
88
-
89
- <tr>
90
- <td rowspan="1" colSpan="1" >Dart</td>
91
-
92
- <td rowspan="1" colSpan="1" >Flutter</td>
93
-
94
- <td rowspan="1" colSpan="1" >[GenerateTestUserSig.dart](https://github.com/TencentCloud/chat-demo-flutter/blob/main/lib/utils/GenerateTestUserSig.dart )</td>
95
- </tr>
96
- </table>
97
-
98
-
99
- > **Note: **
100
- >
101
-
102
- > In this method, the `SECRETKEY` is vulnerable to decompilation and reverse engineering. Once your `SECRETKEY` is disclosed, attackers can steal your Tencent Cloud traffic. Therefore, **this method is only suitable for locally running a demo project and feature debugging**.
103
- The correct way to issue a UserSig is to integrate the UserSig computing code into your server and provide app-oriented APIs. When UserSig is needed, your app will send a request to the business server to obtain a dynamic UserSig. For more information, see [How to Calculate UserSig](https://write.woa.com/#GeneratingdynamicUserSig).
104
- >
105
-
106
-
107
- ## Calculating UserSig on the Server
108
-
109
- Generating a UserSig on the server provides maximum protection against the disclosure of the key used for calculating the UserSig. You only need to deploy the code for calculating the UserSig on your server and provide an app-oriented API. When a UserSig is needed, your app will send a request to the business server to obtain a dynamic UserSig.
110
- To simplify this process, we provide the source code for calculating a UserSig for the following languages and platforms. You can directly download and integrate the source code into your server.
111
- <table>
112
- <tr>
113
- <td rowspan="1" colSpan="1" >Programming Language</td>
114
-
115
- <td rowspan="1" colSpan="1" >Key Function</td>
116
-
117
- <td rowspan="1" colSpan="1" >Download URL</td>
118
- </tr>
119
-
120
- <tr>
121
- <td rowspan="1" colSpan="1" >Java</td>
122
-
123
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
124
-
125
- <td rowspan="1" colSpan="1" >[genSig](https://github.com/Tencent-RTC/tls-sig-api-v2-java/blob/main/src/main/java/com/tencentcloud/TLSSigAPIv2.java)</td>
126
- </tr>
127
-
128
- <tr>
129
- <td rowspan="1" colSpan="1" >GO</td>
130
-
131
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
132
-
133
- <td rowspan="1" colSpan="1" >[GenSig](https://github.com/Tencent-RTC/tls-sig-api-v2-golang/blob/main/tencentyun/TLSSigAPI.go)</td>
134
- </tr>
135
-
136
- <tr>
137
- <td rowspan="1" colSpan="1" >PHP</td>
138
-
139
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
140
-
141
- <td rowspan="1" colSpan="1" >[genSig](https://github.com/Tencent-RTC/tls-sig-api-v2-php/blob/main/src/TLSSigAPIv2.php)</td>
142
- </tr>
143
-
144
- <tr>
145
- <td rowspan="1" colSpan="1" >Nodejs</td>
146
-
147
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
148
-
149
- <td rowspan="1" colSpan="1" >[genSig](https://github.com/Tencent-RTC/tls-sig-api-v2-node/blob/main/TLSSigAPIv2.js)</td>
150
- </tr>
151
-
152
- <tr>
153
- <td rowspan="1" colSpan="1" >Python</td>
154
-
155
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
156
-
157
- <td rowspan="1" colSpan="1" >[gen_sig](https://github.com/Tencent-RTC/tls-sig-api-v2-python/blob/main/TLSSigAPIv2.py)</td>
158
- </tr>
159
-
160
- <tr>
161
- <td rowspan="1" colSpan="1" >C#</td>
162
-
163
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
164
-
165
- <td rowspan="1" colSpan="1" >[GenSig](https://github.com/Tencent-RTC/tls-sig-api-v2-cs/blob/main/tls-sig-api-v2-cs/TLSSigAPIv2.cs)</td>
166
- </tr>
167
-
168
- <tr>
169
- <td rowspan="1" colSpan="1" >C++</td>
170
-
171
- <td rowspan="1" colSpan="1" >HMAC-SHA256</td>
172
-
173
- <td rowspan="1" colSpan="1" >[gen_sig](https://github.com/Tencent-RTC/tls-sig-api-v2-cpp)</td>
174
- </tr>
175
- </table>
176
-
177
-
178
- Key fields in a UserSig calculation function include the SDKAppID, UserID, and UserSig validity period, as described in the following table.
179
-
180
- > **Note: **
181
- >
182
-
183
- > The following table uses the field names in the Java source code as an example. The field names may be different in other languages.
184
- >
185
-
186
- <table>
187
- <tr>
188
- <td rowspan="1" colSpan="1" >Field Name (Example)</td>
189
-
190
- <td rowspan="1" colSpan="1" >Description</td>
191
- </tr>
192
-
193
- <tr>
194
- <td rowspan="1" colSpan="1" >sdkappid</td>
195
-
196
- <td rowspan="1" colSpan="1" >SDKAppID of the app. You can obtain the SDKAppID on the app card in the [Chat console](https://console.trtc.io/chat).</td>
197
- </tr>
198
-
199
- <tr>
200
- <td rowspan="1" colSpan="1" >userId</td>
201
-
202
- <td rowspan="1" colSpan="1" >User ID (former name: `Identifier`).</td>
203
- </tr>
204
-
205
- <tr>
206
- <td rowspan="1" colSpan="1" >expire</td>
207
-
208
- <td rowspan="1" colSpan="1" >UserSig validity period, in seconds.</td>
209
- </tr>
210
-
211
- <tr>
212
- <td rowspan="1" colSpan="1" >userbuf</td>
213
-
214
- <td rowspan="1" colSpan="1" >This field is set to `null` by default because APIs without UserBuf are used in Chat by default.APIs with UserBuf may be required in some TRTC use cases, for example, when entering a room. For more information, see [Enabling Advanced Permission Control](https://intl.cloud.tencent.com/document/product/647/35157).</td>
215
- </tr>
216
-
217
- <tr>
218
- <td rowspan="1" colSpan="1" >key</td>
219
-
220
- <td rowspan="1" colSpan="1" >Key. You can obtain a key on the app details page in the [Chat console](https://console.trtc.io/chat). For more information, see [Obtaining a Key](https://write.woa.com/#getkey).</td>
221
- </tr>
222
- </table>
223
-
224
-
225
- ## Old Version of Algorithm
226
-
227
- To simplify signature computing so that customers can conveniently and quickly use Tencent Cloud services, the signature algorithm of the Chat service has been upgraded from ECDSA-SHA256 to HMAC-SHA256 since July 19, 2019. This means that all SDKAppIDs created after July 19, 2019 will use the new HMAC-SHA256 algorithm.
228
-
229
- If your SDKAppID was created before July 19, 2019, we recommend that you upgrade the signature algorithm to [HMAC-SHA256](https://write.woa.com/#GeneratingdynamicUserSig). The upgrade will not affect your business. Alternatively, you can still use the signature algorithm of an earlier version. The URLs for downloading the source code for the ECDSA-SHA256 algorithm are as follows:
230
- <table>
231
- <tr>
232
- <td rowspan="1" colSpan="1" >Programming Language</td>
233
-
234
- <td rowspan="1" colSpan="1" >Signature Algorithm</td>
235
-
236
- <td rowspan="1" colSpan="1" >Download Link</td>
237
- </tr>
238
-
239
- <tr>
240
- <td rowspan="1" colSpan="1" >Java</td>
241
-
242
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
243
-
244
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-java)</td>
245
- </tr>
246
-
247
- <tr>
248
- <td rowspan="1" colSpan="1" >GO</td>
249
-
250
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
251
-
252
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-golang)</td>
253
- </tr>
254
-
255
- <tr>
256
- <td rowspan="1" colSpan="1" >PHP</td>
257
-
258
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
259
-
260
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-php)</td>
261
- </tr>
262
-
263
- <tr>
264
- <td rowspan="1" colSpan="1" >Nodejs</td>
265
-
266
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
267
-
268
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-node)</td>
269
- </tr>
270
-
271
- <tr>
272
- <td rowspan="1" colSpan="1" >Python</td>
273
-
274
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
275
-
276
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-python)</td>
277
- </tr>
278
-
279
- <tr>
280
- <td rowspan="1" colSpan="1" >C#</td>
281
-
282
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
283
-
284
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api-cs)</td>
285
- </tr>
286
-
287
- <tr>
288
- <td rowspan="1" colSpan="1" >C++</td>
289
-
290
- <td rowspan="1" colSpan="1" >ECDSA-SHA256</td>
291
-
292
- <td rowspan="1" colSpan="1" >[GitHub](https://github.com/tencentyun/tls-sig-api)</td>
293
- </tr>
294
- </table>
295
-
296
-
297
- ## Get UserSig from the console
298
- - Log in to Tencent-RTC Console, navigate to Development Tools > [UserSig Tools](https://console.trtc.io/usersig).
299
-
300
- - Under the UserSig Generation Tool, select the corresponding SDKAppID and UserID.
301
-
302
- - Click the Generate button to compute the corresponding UserSig.
303
-
304
- ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100026631907/bf1ed039f4df11ef920e5254005ef0f7.png)
305
-
306
-
@@ -1,133 +0,0 @@
1
- TUIKit is a UI component library built on the Chat SDK. It enables rapid implementation of chat, conversation, search, relationship chain, and group management features through ready-to-use UI components. Message sending and receiving are handled by the TUIChat component. This guide explains how to quickly integrate TUIKit and implement its core features.
2
-
3
- > **Note:**
4
- >
5
-
6
- > This demo uses TRTC's emoji pack with restricted licensing.
7
- >
8
-
9
- > **Commercial Usage Options**
10
- >
11
- > - **Option A: Keep Our Emoji (Recommended)**
12
-
13
- > Upgrade to [Chat Pro Plus or Enterprise Plan](https://console.trtc.io/subscription/buy/chat?packType=pro) and use our emoji pack at no additional cost.
14
- >
15
- > - **Option B: Use Your Own**
16
-
17
- > Replace default emoji with your own custom designs, or use emoji packs with proper commercial licensing.
18
- >
19
-
20
- > ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027325838/005a2031cb3911f0a7775254005ef0f7.png)
21
- >
22
-
23
-
24
- ## Prerequisites
25
- - Flutter version >= 3.29.0, Dart version >= 3.7.0.
26
-
27
- - Android Studio 2022.3.1 or later, Android Gradle plugin version 7.3.1 or above.
28
-
29
- - Xcode 12.0 or later.
30
-
31
- - A valid Tencent Cloud account and Chat Application. Refer to [Enable the Service](https://trtc.io/zh/document/45907?product=chat&menulabel=uikit&platform=flutter) to obtain the following information from the Console:
32
-
33
- - `SDKAppID`: The unique identifier for your Chat Application.
34
-
35
- - `SDKSecretKey`: The secret key for your Application.
36
-
37
-
38
- > **Version Compatibility Notice:**
39
- >
40
-
41
- > To ensure a stable build environment, strictly follow official compatibility requirements:
42
- >
43
- > - For Gradle, Android Gradle Plugin, JDK, and Android Studio compatibility, refer to the Android official documentation: [Release Notes](https://developer.android.com/build/releases/gradle-plugin?hl=en#updating-gradle).
44
- > - For Kotlin, Android Gradle Plugin, and Gradle version mapping, refer to the Kotlin official documentation: [Kotlin-Gradle Plugin Compatibility](https://kotlinlang.org/docs/gradle-configure-project.html#apply-the-plugin).
45
- > - If Android Studio installs with a higher default JDK version, compilation may fail. We recommend using JDK 17. See: [Switching Java Versions](https://developer.android.com/build/jdks#kts)
46
- > - We recommend selecting a version combination that matches your project requirements exactly, following the guidelines above.
47
-
48
-
49
- ## Integrate TUIKit
50
- 1. If you don't have a Flutter app, refer to the [Flutter documentation](https://docs.flutter.dev/get-started/codelab) to quickly create a Flutter application. If you already have a Flutter app, skip this step.
51
-
52
- 2. Add the following dependencies to your project's root `pubspec.yaml` file:
53
-
54
- ``` yaml
55
- tencent_cloud_chat_common: ^4.1.0+1
56
- tencent_cloud_chat_conversation: ^4.1.0
57
- tencent_cloud_chat_message: ^4.1.0+3
58
- tencent_cloud_chat_contact: ^4.1.0
59
- tencent_cloud_chat_sticker: ^4.1.0
60
- tencent_cloud_chat_message_reaction: ^4.1.0
61
- tencent_cloud_chat_text_translate: ^4.1.0
62
- tencent_cloud_chat_sound_to_text: ^4.1.0
63
- ```
64
- 3. Configure Permissions
65
-
66
-
67
- TUIKit requires camera, photo library, audio recording, and network permissions. You must manually declare these permissions in your native files to enable related features.
68
-
69
-
70
-
71
-
72
- 【Android】
73
-
74
- Open `android/app/src/main/AndroidManifest.xml` file, and add the following permissions:
75
- ``` java
76
- <uses-permission android:name="android.permission.RECORD_AUDIO" />
77
- <uses-permission
78
- android:name="android.permission.READ_EXTERNAL_STORAGE"
79
- android:maxSdkVersion="32" />
80
- <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
81
- <!-- Compatibility for Android13 -->
82
- <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
83
- ```
84
-
85
- 【iOS】
86
- 1. Open `ios/Podfile`. Add the following permissions:
87
-
88
- ``` ruby
89
- post_install do |installer|
90
- installer.pods_project.targets.each do |target|
91
- flutter_additional_ios_build_settings(target)
92
- target.build_configurations.each do |config|
93
- config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
94
- config.build_settings['ENABLE_BITCODE'] = 'NO'
95
- config.build_settings["ONLY_ACTIVE_ARCH"] = "NO"
96
- end
97
- target.build_configurations.each do |config|
98
- config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
99
- '$(inherited)',
100
- 'PERMISSION_MICROPHONE=1',
101
- 'PERMISSION_CAMERA=1',
102
- 'PERMISSION_PHOTOS=1',
103
- ]
104
- end
105
- end
106
- end
107
- ```
108
- 2. Open `ios/Runner/info.plist` and add permission description keys:
109
-
110
- ``` xml
111
- <key>NSCameraUsageDescription</key>
112
- <string>Our app requires access to your camera to enable video calling and capturing photos or videos to share in your conversations.</string>
113
- <key>NSMicrophoneUsageDescription</key>
114
- <string>Our app requires access to your microphone to enable voice and video calling features.</string>
115
- <key>NSPhotoLibraryUsageDescription</key>
116
- <string>Our app requires access to your photo library to enable sharing photos, videos, and files in your conversations.</string>
117
- ```
118
-
119
-
120
- At this point, you have successfully integrated TUIKit into your project. To continue building chat, conversation, and other basic interfaces, refer to the [Demo Example](https://trtc.io/zh/document/45907?product=chat&menulabel=uikit&platform=flutter).
121
-
122
-
123
- ## FAQs
124
-
125
- ### Android Error: Unsupported class file major version 65
126
-
127
- **Cause:**
128
-
129
- This error indicates that your project uses an outdated Gradle version or your system has a Java version higher than what the project supports. (Version 65 corresponds to Java 21; each Java version has a unique class file version number.)
130
-
131
- **Solution:**
132
-
133
- Use JDK 17. See: [Switching Java Versions](https://developer.android.com/build/jdks#kts).