@tencentcloud/sdk-mcp 1.7.3 → 1.7.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.
- package/CHANGELOG.md +23 -0
- package/README.md +22 -23
- package/knowledge/path-meta.js +23 -1
- package/package.json +1 -1
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +4 -0
- package/resource/integration/callkit/preset/flutter/integration.md +8 -4
- package/resource/integration/callkit/preset/ios/integration.md +16 -15
- package/resource/integration/callkit/preset/react/integration.md +2 -2
- package/resource/integration/callkit/preset/vue/integration.md +9 -12
- package/resource/integration/chat/preset/android/integration.md +5 -147
- package/resource/integration/chat/preset/flutter/integration.md +22 -130
- package/resource/integration/chat/preset/ios/integration.md +12 -279
- package/resource/integration/chat/preset/react/integration.md +27 -1
- package/resource/integration/chat/preset/uni-app/integration.md +5 -1
- package/resource/integration/chat/preset/vue/integration.md +21 -31
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -3
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
- package/resource/integration/roomkit/preset/vue/integration.md +152 -652
- package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
- package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
- package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
- package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +2 -2
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -5
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +7 -7
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +10 -10
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +18 -16
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +16 -14
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +2 -86
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +2 -104
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
- package/resource/knowledge/callkit/faq/android.md +4 -4
- package/resource/knowledge/callkit/faq/common.md +4 -4
- package/resource/knowledge/callkit/faq/error-code.md +62 -36
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
- package/resource/knowledge/callkit/preset/android/api.md +10 -10
- package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
- package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
- package/resource/knowledge/callkit/preset/ios/api.md +9 -9
- package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
- package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
- package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
- package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
- package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
- package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
- package/resource/knowledge/chat/preset/android-view/integration.md +54 -102
- package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +194 -926
- package/resource/knowledge/chat/preset/react/features/search.md +9 -214
- package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
- package/resource/knowledge/chat/preset/vue/features/message-input.md +4 -4
- package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
- package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
- package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +3 -3
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +3 -170
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +3 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +3 -3
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +3 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +3 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +13 -78
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +5 -70
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +10 -10
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -4
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +4 -4
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +7 -7
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
- package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
- package/resource/knowledge/push/api-reference/unity.md +10 -10
- package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
- package/resource/knowledge/push/config/donut.md +3 -3
- package/resource/knowledge/push/config/harmonyos.md +12 -12
- package/resource/knowledge/push/config/ios.md +2 -2
- package/resource/knowledge/push/integration/android.md +90 -1067
- package/resource/knowledge/push/integration/donut.md +11 -11
- package/resource/knowledge/push/integration/flutter.md +38 -24
- package/resource/knowledge/push/integration/harmonyos.md +1 -11
- package/resource/knowledge/push/integration/ios.md +29 -40
- package/resource/knowledge/push/integration/react-native.md +1 -1
- package/resource/knowledge/push/integration/uni-app.md +1 -1
- package/resource/knowledge/push/integration/unity.md +4 -4
- package/resource/knowledge/push/integration/unreal-engine.md +9 -9
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +6 -6
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +13 -13
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +5 -5
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +6 -6
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
- package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
- package/resource/knowledge/roomkit/core-sdk/vue/recording.md +3 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
- package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +3 -6
- package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +0 -15
- package/resource/knowledge/roomkit/preset/android/integration.md +5 -202
- package/resource/knowledge/roomkit/preset/flutter/integration.md +17 -13
- package/resource/knowledge/roomkit/preset/harmonyos/integration.md +10 -2
- package/resource/knowledge/roomkit/preset/ios/integration.md +7 -204
- package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
- package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +244 -500
- package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
- package/server.js +1 -1
- package/utils/preflight-route.js +203 -185
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
|
@@ -1,205 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
<style>
|
|
4
|
-
.vsdk-survey-card * {
|
|
5
|
-
box-sizing: border-box;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.vsdk-survey-card {
|
|
9
|
-
position: relative;
|
|
10
|
-
display: flex;
|
|
11
|
-
align-items: center;
|
|
12
|
-
justify-content: space-between;
|
|
13
|
-
gap: 20px;
|
|
14
|
-
padding: 18px 22px;
|
|
15
|
-
margin: 16px 0;
|
|
16
|
-
border-radius: 14px;
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
background: linear-gradient(180deg, #FFFFFF 0%, #F8FBFF 100%);
|
|
19
|
-
border: 1px solid #D7E8FF;
|
|
20
|
-
box-shadow: 0 4px 16px rgba(0,110,255,.05);
|
|
21
|
-
transition: all .25s ease;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.vsdk-survey-card::before{
|
|
25
|
-
content:"";
|
|
26
|
-
position:absolute;
|
|
27
|
-
right:-60px;
|
|
28
|
-
top:-60px;
|
|
29
|
-
width:180px;
|
|
30
|
-
height:180px;
|
|
31
|
-
background:radial-gradient(circle,
|
|
32
|
-
rgba(0,110,255,.16) 0%,
|
|
33
|
-
rgba(0,110,255,.08) 45%,
|
|
34
|
-
transparent 75%);
|
|
35
|
-
pointer-events:none;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.vsdk-survey-card::after{
|
|
39
|
-
content:"";
|
|
40
|
-
position:absolute;
|
|
41
|
-
left:-40px;
|
|
42
|
-
bottom:-60px;
|
|
43
|
-
width:120px;
|
|
44
|
-
height:120px;
|
|
45
|
-
background:radial-gradient(circle,
|
|
46
|
-
rgba(76,169,255,.08),
|
|
47
|
-
transparent 70%);
|
|
48
|
-
pointer-events:none;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.vsdk-survey-card:hover{
|
|
52
|
-
border-color:#006EFF;
|
|
53
|
-
box-shadow:
|
|
54
|
-
0 10px 28px rgba(0,110,255,.10),
|
|
55
|
-
0 0 36px rgba(0,110,255,.08);
|
|
56
|
-
transform:translateY(-2px);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.vsdk-card-left{
|
|
60
|
-
display:flex;
|
|
61
|
-
align-items:center;
|
|
62
|
-
gap:14px;
|
|
63
|
-
flex:1;
|
|
64
|
-
min-width:0;
|
|
65
|
-
position:relative;
|
|
66
|
-
z-index:1;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.vsdk-ico{
|
|
70
|
-
width:46px;
|
|
71
|
-
height:46px;
|
|
72
|
-
flex:0 0 46px;
|
|
73
|
-
border-radius:12px;
|
|
74
|
-
background:linear-gradient(180deg,#EDF5FF,#DCEBFF);
|
|
75
|
-
display:flex;
|
|
76
|
-
align-items:center;
|
|
77
|
-
justify-content:center;
|
|
78
|
-
font-size:22px;
|
|
79
|
-
box-shadow:
|
|
80
|
-
inset 0 1px 0 rgba(255,255,255,.8),
|
|
81
|
-
0 6px 18px rgba(0,110,255,.12);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.vsdk-text{
|
|
85
|
-
min-width:0;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
.vsdk-title{
|
|
89
|
-
display:flex;
|
|
90
|
-
align-items:center;
|
|
91
|
-
gap:8px;
|
|
92
|
-
flex-wrap:wrap;
|
|
93
|
-
font-size:18px;
|
|
94
|
-
font-weight:600;
|
|
95
|
-
color:#1F2329;
|
|
96
|
-
line-height:1.4;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.vsdk-badge{
|
|
100
|
-
padding:2px 8px;
|
|
101
|
-
border-radius:999px;
|
|
102
|
-
background:#EAF3FF;
|
|
103
|
-
color:#006EFF;
|
|
104
|
-
font-size:11px;
|
|
105
|
-
font-weight:600;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.vsdk-desc{
|
|
109
|
-
margin-top:6px;
|
|
110
|
-
font-size:13px;
|
|
111
|
-
line-height:1.7;
|
|
112
|
-
color:#4E5969;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.vsdk-card-right{
|
|
116
|
-
flex-shrink:0;
|
|
117
|
-
position:relative;
|
|
118
|
-
z-index:1;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.vsdk-cta{
|
|
122
|
-
display:inline-flex;
|
|
123
|
-
align-items:center;
|
|
124
|
-
justify-content:center;
|
|
125
|
-
min-width:112px;
|
|
126
|
-
height:40px;
|
|
127
|
-
padding:0 22px;
|
|
128
|
-
border-radius:8px;
|
|
129
|
-
background:#006EFF;
|
|
130
|
-
color:#FFFFFF;
|
|
131
|
-
text-decoration:none;
|
|
132
|
-
font-size:14px;
|
|
133
|
-
font-weight:600;
|
|
134
|
-
box-shadow:0 8px 20px rgba(0,110,255,.25);
|
|
135
|
-
transition:all .2s ease;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.vsdk-cta:hover{
|
|
139
|
-
background:#0052D9;
|
|
140
|
-
box-shadow:0 10px 24px rgba(0,110,255,.35);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
@media (max-width:768px){
|
|
144
|
-
|
|
145
|
-
.vsdk-survey-card{
|
|
146
|
-
flex-direction:column;
|
|
147
|
-
align-items:flex-start;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.vsdk-card-left{
|
|
151
|
-
width:100%;
|
|
152
|
-
align-items:flex-start;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
.vsdk-title{
|
|
156
|
-
font-size:16px;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.vsdk-desc{
|
|
160
|
-
font-size:12px;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.vsdk-card-right{
|
|
164
|
-
width:100%;
|
|
165
|
-
margin-top:14px;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
.vsdk-cta{
|
|
169
|
-
width:100%;
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
}
|
|
173
|
-
</style>
|
|
174
|
-
|
|
175
|
-
<div class="vsdk-survey-card">
|
|
176
|
-
|
|
177
|
-
<div class="vsdk-card-left">
|
|
178
|
-
|
|
179
|
-
<div class="vsdk-ico">💡</div>
|
|
180
|
-
|
|
181
|
-
<div class="vsdk-text">
|
|
182
|
-
|
|
183
|
-
<div class="vsdk-title">
|
|
184
|
-
有接入卡点?30 秒反馈
|
|
185
|
-
<span class="vsdk-badge">全部选填</span>
|
|
186
|
-
</div>
|
|
187
|
-
|
|
188
|
-
<div class="vsdk-desc">
|
|
189
|
-
正在了解或评估视频会议 SDK?UI、功能、文档或套餐开通如有卡点,欢迎填写反馈。
|
|
190
|
-
</div>
|
|
191
|
-
|
|
192
|
-
</div>
|
|
193
|
-
|
|
194
|
-
</div>
|
|
195
|
-
|
|
196
|
-
<div class="vsdk-card-right">
|
|
197
|
-
<a class="vsdk-cta" href="https://wj.qq.com/s2/27395009/ac34/" target="_blank">
|
|
198
|
-
填写反馈
|
|
199
|
-
</a>
|
|
200
|
-
</div>
|
|
201
|
-
|
|
202
|
-
</div>
|
|
1
|
+
本文档介绍如何在 uniapp 业务项目中集成 TUIRoomKit,快速获得开箱即用的多人音视频会议能力。
|
|
203
2
|
|
|
204
3
|
## 前提条件
|
|
205
4
|
|
|
@@ -211,371 +10,316 @@ TUIRoomKit 是腾讯云提供的一站式多人视频会议解决方案,集成
|
|
|
211
10
|
- **SDKSecretKey**:应用密钥,用于初始化配置文件的密钥信息。
|
|
212
11
|
|
|
213
12
|
### 环境准备
|
|
13
|
+
- **IDE**: HBuilderX 升级到新版本。
|
|
214
14
|
|
|
215
|
-
|
|
216
|
-
> HBuilderX 4.64 和 4.65 版本对 UTS 插件打包存在已知兼容性问题,建议使用 4.66 或更高版本。
|
|
217
|
-
>
|
|
15
|
+
- **语言**: nvue。
|
|
218
16
|
|
|
219
|
-
-
|
|
17
|
+
- **运行环境**: Node.js v12 版本及以上。
|
|
220
18
|
|
|
221
|
-
-
|
|
19
|
+
- **包管理**: npm (版本需与 Node 版本匹配)。
|
|
222
20
|
|
|
223
|
-
|
|
21
|
+
- **支持平台**: uni-app 打包 App。
|
|
224
22
|
|
|
225
|
-
|
|
23
|
+
## 集成步骤
|
|
226
24
|
|
|
227
|
-
|
|
228
|
-
``` bash
|
|
229
|
-
git clone
|
|
230
|
-
```
|
|
25
|
+
### 步骤1:创建项目
|
|
231
26
|
|
|
232
|
-
|
|
233
|
-
- 将源码中 `TUIKit_uni-app/App/uni_modules` 目录下的 `tuikit-atomic-x` 文件夹,完整拷贝到您项目根目录下的 `uni_modules` 文件夹中。
|
|
27
|
+
打开 HBuilderX,在菜单栏中选择**文件 > 新建 > 项目**,创建一个名为 `room-example` 的 uni-app vue3 项目。
|
|
234
28
|
|
|
235
|
-
|
|
29
|
+
### 步骤2:安装 TUIKit 插件
|
|
236
30
|
|
|
237
|
-
|
|
31
|
+
进入[【官方】腾讯云聊天+通话+直播响应式 SDK](https://ext.dcloud.net.cn/plugin)。点击**下载插件并导入 HBuilderX**,将插件导入 `room-example` 项目中。
|
|
238
32
|
|
|
239
|
-
|
|
240
|
-
- 将源码中 `TUIKit_uni-app/App/pages` 目录下的文件,完整拷贝到您项目根目录下的同名文件夹中。
|
|
33
|
+
### 步骤3:配置原生模块与 Android 权限
|
|
241
34
|
|
|
242
|
-
|
|
35
|
+
【Android 权限配置】
|
|
243
36
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
>
|
|
37
|
+
``` json
|
|
38
|
+
<uses-permission android:name="android.permission.CAMERA"/>
|
|
39
|
+
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
|
40
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
|
41
|
+
<uses-permission android:name="android.permission.INTERNET"/>
|
|
42
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
|
43
|
+
```
|
|
252
44
|
|
|
253
|
-
|
|
254
|
-
1. 配置 `manifest.json`
|
|
45
|
+
【iOS 权限配置】
|
|
255
46
|
|
|
256
|
-
|
|
47
|
+
``` java
|
|
48
|
+
"privacyDescription" : {
|
|
49
|
+
"NSCameraUsageDescription" : "应用需要访问您的相机以进行直播",
|
|
50
|
+
"NSMicrophoneUsageDescription" : "应用需要访问您的麦克风以进行直播"
|
|
51
|
+
},
|
|
52
|
+
"UIBackgroundModes" : [ "audio" ]
|
|
53
|
+
```
|
|
257
54
|
|
|
258
|
-
|
|
55
|
+
### 步骤4:集成 TUIKit
|
|
56
|
+
1. **拷贝 TUIKit 页面及静态资源**:将 `uni_modules/tuikit-atomic-x/quickstart_room/`下的`pages/*` 拷贝到项目 `page` 目录,`static/*` 拷贝到项目 `static` 目录下。
|
|
259
57
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
|
265
|
-
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>"
|
|
266
|
-
```
|
|
267
|
-
- iOS 平台(ios 节点):在 `privacyDescription` 对象中,请确保包含以下描述:
|
|
58
|
+
【Windows 端】
|
|
59
|
+
``` bash
|
|
60
|
+
xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart_room\static\*" "static\" && xcopy /E /I /Y "uni_modules\tuikit-atomic-x\quickstart_room\pages\*" "pages\"
|
|
61
|
+
```
|
|
268
62
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
63
|
+
【Mac 端】
|
|
64
|
+
``` bash
|
|
65
|
+
cp -r uni_modules/tuikit-atomic-x/quickstart_room/static/* static/ && cp -r uni_modules/tuikit-atomic-x/quickstart_room/pages/* pages/
|
|
66
|
+
```
|
|
273
67
|
|
|
274
|
-
|
|
68
|
+
2. **配置页面路由:**替换 `pages.json` 内容,注册所需页面路由:
|
|
69
|
+
|
|
70
|
+
``` json
|
|
71
|
+
{
|
|
72
|
+
"pages": [
|
|
73
|
+
{
|
|
74
|
+
"path": "pages/login/login",
|
|
75
|
+
"style": {
|
|
76
|
+
"navigationStyle": "custom"
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"path": "pages/index/index",
|
|
81
|
+
"style": {
|
|
82
|
+
"navigationStyle": "custom"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"path": "pages/scenes/room/index",
|
|
87
|
+
"style": {
|
|
88
|
+
"navigationStyle": "custom"
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"path": "pages/scenes/room/join/index",
|
|
93
|
+
"style": {
|
|
94
|
+
"navigationStyle": "custom"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"path": "pages/scenes/room/create/index",
|
|
99
|
+
"style": {
|
|
100
|
+
"navigationStyle": "custom"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"path": "pages/scenes/room/schedule/index",
|
|
105
|
+
"style": {
|
|
106
|
+
"navigationStyle": "custom"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"path": "pages/scenes/room/scheduleDetail/index",
|
|
111
|
+
"style": {
|
|
112
|
+
"navigationStyle": "custom"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"path": "pages/scenes/room/main/index",
|
|
117
|
+
"style": {
|
|
118
|
+
"navigationStyle": "custom",
|
|
119
|
+
"disableScroll": true,
|
|
120
|
+
"disableSwipeBack": true
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"path": "pages/scenes/room/roomInvite/index",
|
|
125
|
+
"style": {
|
|
126
|
+
"navigationStyle": "custom",
|
|
127
|
+
"disableScroll": true,
|
|
128
|
+
"disableSwipeBack": true,
|
|
129
|
+
"backgroundColor": "#000000",
|
|
130
|
+
"app-plus": {
|
|
131
|
+
"titleNView": false,
|
|
132
|
+
"animationType": "slide-in-bottom"
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"globalStyle": {
|
|
138
|
+
"navigationBarTextStyle": "black",
|
|
139
|
+
"navigationBarTitleText": "腾讯云 IM",
|
|
140
|
+
"navigationBarBackgroundColor": "#EBF0F6",
|
|
141
|
+
"backgroundColor": "#F8F8F8"
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
3. **初始化来电邀请服务**:在 `App.vue` 的 `onLaunch` 里初始化 `initRoomCallService`。
|
|
146
|
+
|
|
147
|
+
``` typescript
|
|
148
|
+
// App.vue
|
|
149
|
+
<script lang="ts">
|
|
150
|
+
import { initRoomCallService } from '@/uni_modules/tuikit-atomic-x/server/roomCallService';
|
|
151
|
+
|
|
152
|
+
export default {
|
|
153
|
+
onLaunch: function () {
|
|
154
|
+
initRoomCallService();
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
</script>
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
## 运行和测试
|
|
275
161
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
2. 制作自定义基座。
|
|
162
|
+
> **说明:**
|
|
163
|
+
> 接入过程中遇到任何卡点或有改进建议,欢迎通过 [视频会议 SDK 接入反馈问卷](https://wj.qq.com/s2/27395009/ac34/) 反馈,官方会及时跟进处理。
|
|
164
|
+
>
|
|
280
165
|
|
|
281
|
-
|
|
282
|
-
>
|
|
283
|
-
> 由于 TUIRoomKit 包含原生代码(UTS 插件),您**必须**制作自定义调试基座才能在真机上运行。
|
|
284
|
-
>
|
|
166
|
+
### 步骤1:**制作自定义基座**
|
|
285
167
|
|
|
286
|
-
|
|
168
|
+
点击**运行** > **运行到手机或模拟器** > **制作自定义调试基座**。
|
|
287
169
|
|
|
288
|
-
|
|
170
|
+
> **说明:**
|
|
171
|
+
> 首次制作自定义基座需要下载 Gradle 依赖,Android 通常需要 10~20 分钟,iOS 需要 5~10 分钟。过程中请勿中断。
|
|
172
|
+
>
|
|
289
173
|
|
|
290
|
-
|
|
174
|
+
### 步骤2:**登录**
|
|
291
175
|
|
|
292
|
-
|
|
176
|
+
在 `pages/login/login.vue` 中,填入 `SDKAppID`、 `userID`、`SecretKey`,点击**登录**。
|
|
177
|
+
| 参数 | 类型 | 说明 |
|
|
178
|
+
| --- | --- | --- |
|
|
179
|
+
| SDKAppID | Number | SDKAppID 是 RoomKit 客户应用的唯一标识。您可以在 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 创建新应用获取 。<br><strong>说明:</strong><br>SDKAppID 是 RoomKit 客户应用的唯一标识。我们建议每一个独立的 App 都申请一个新的 SDKAppID。不同 SDKAppID 之间是天然隔离的,不能互通。 |
|
|
180
|
+
| SecretKey | String | SecretKey 是 RoomKit 客户应用的密钥。您可以在 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 对应应用获取。<br><strong>安全提示:</strong><br>- 项目示例支持通过 <code>genTestUserSig</code> 函数生成 <code>userSig</code>。该方法中 <code>SecretKey</code> 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量。<strong>该方法仅适合本地跑通功能调试</strong>。 正确的 UserSig 签发方式请参见 <a href="https://cloud.tencent.com/document/product/647/17275#formal">服务端生成 UserSig</a>。<br>- 敏感信息(SecretKey)仅用于 Demo 测试,不可提交到代码仓库或用于生产环境。 |
|
|
181
|
+
| userID | String | 用户的唯一标识符,由您定义,只能包含大小写字母(a-z,A-Z)、数字(0-9)、下划线和连字符。 |
|
|
293
182
|
|
|
294
|
-
|
|
295
|
-
``` typescript
|
|
296
|
-
import { useLoginState } from "@/uni_modules/tuikit-atomic-x/state/LoginState";
|
|
183
|
+
``` java
|
|
297
184
|
|
|
185
|
+
import { ref } from 'vue'
|
|
186
|
+
import { useLoginState } from '@/uni_modules/tuikit-atomic-x/state/LoginState';
|
|
187
|
+
import { genTestUserSig } from '@/uni_modules/tuikit-atomic-x/debug/GenerateTestUserSig';
|
|
298
188
|
const { login } = useLoginState();
|
|
299
189
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
190
|
+
const sdkAppId = 0; // SDKAppID
|
|
191
|
+
const userId = ref(''); // userID
|
|
192
|
+
const secretKey = ''; // SecretKey
|
|
193
|
+
|
|
194
|
+
// 登录
|
|
195
|
+
login({
|
|
196
|
+
sdkAppID: sdkAppId,
|
|
197
|
+
userID: userId.value,
|
|
198
|
+
userSig: genTestUserSig({
|
|
199
|
+
SDKAppID: sdkAppId,
|
|
200
|
+
userID: userId.value,
|
|
201
|
+
secretKey: secretKey
|
|
202
|
+
}).userSig,
|
|
203
|
+
success: () => {
|
|
204
|
+
uni.reLaunch({ url: '/pages/scenes/room/index' })
|
|
205
|
+
},
|
|
206
|
+
fail: (code: number, msg: string) => {
|
|
207
|
+
uni.showToast({ title: msg || '登录失败', icon: 'none' })
|
|
208
|
+
}
|
|
209
|
+
})
|
|
308
210
|
```
|
|
309
211
|
|
|
310
|
-
|
|
311
|
-
| 参数 | 类型 | 说明 |
|
|
312
|
-
| --- | --- | --- |
|
|
313
|
-
| SDKAppID | Number | 从 <a href="https://console.cloud.tencent.com/trtc">TRTC 控制台 > 应用管理</a> 获取。 |
|
|
314
|
-
| userID | String | 当前用户的唯一 ID,仅包含英文字母、数字、连字符和下划线。 |
|
|
315
|
-
| userSig | String | 用于腾讯云鉴权的票据。请注意:<br>- 开发环境:您可以采用本地 <code>GenerateTestUserSig.genTestSig</code> 函数生成 UserSig 或者通过 <a href="https://console.cloud.tencent.com/im/tool-usersig">UserSig 辅助工具</a> 生成临时的 UserSig。<br>- 生产环境:为了防止密钥泄露,请务必采用服务端生成 UserSig 的方式。详细信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275#formal">服务端生成 UserSig</a>。<br>更多信息请参见 <a href="https://cloud.tencent.com/document/product/647/17275">如何计算及使用 UserSig</a>。 |
|
|
212
|
+
### 步骤3:**运行项目**
|
|
316
213
|
|
|
317
|
-
|
|
214
|
+
点击**运行** > **运行到手机或模拟器** > **运行到 Android/iOS 基座**,使用制作好的**自定义基座**运行到手机。
|
|
318
215
|
|
|
319
|
-
|
|
216
|
+
## AI 助手:知识咨询与代码集成
|
|
320
217
|
|
|
321
|
-
|
|
322
|
-
``` json
|
|
323
|
-
{
|
|
324
|
-
"pages": [
|
|
325
|
-
// ... 您项目已有的其他页面配置
|
|
326
|
-
{
|
|
327
|
-
"path": "pages/scenes/room/main/index",
|
|
328
|
-
"style": {
|
|
329
|
-
"navigationBarTitleText": "",
|
|
330
|
-
"disableSwipeBack": true, // 禁止右滑返回,防止会中误操作退出
|
|
331
|
-
"app-plus": {
|
|
332
|
-
"titleNView": false // 隐藏原生导航栏,使用页面内的自定义导航
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
]
|
|
337
|
-
// ... 其他配置
|
|
338
|
-
}
|
|
339
|
-
```
|
|
218
|
+
您在接入视频会议 SDK 过程中,可以通过 MCP 使用 AI 助手,快速完成知识咨询、报错排查和集成代码生成。支持 Web/Android/iOS/Flutter/uni-app/HarmonyOS 等平台,答案基于官方文档。适用于查询 Room 组件和 AtomicXCore SDK 用法以及集成文档等场景,[立即体验,提出您的第一个问题](https://cloud.tencent.com/document/product/647/129285)。
|
|
340
219
|
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
#### 创建房间
|
|
344
|
-
|
|
345
|
-
在您需要创建多人视频会议的地方(具体由您的业务决定,在其点击事件里执行),调用 `uni.navigateTo` 或 `uni.redirectTo` 方法,即可进入多人视频会议主页面。
|
|
346
|
-
``` typescript
|
|
347
|
-
// 示例:在一个按钮的点击事件中
|
|
348
|
-
function startBroadcast() {
|
|
349
|
-
const roomID = '123456'; //房间id
|
|
350
|
-
const roomName = '123456'; //房间名称
|
|
351
|
-
const query = [
|
|
352
|
-
'mode=create',
|
|
353
|
-
`roomID=${encodeURIComponent(roomID)}`,
|
|
354
|
-
`roomName=${encodeURIComponent(roomName)}`,
|
|
355
|
-
'autoEnableCamera=1', //进房是否开启摄像头(1 开启, 0 关闭)
|
|
356
|
-
'autoEnableMicrophone=1', //进房是否开启麦克风(1 开启, 0 关闭)
|
|
357
|
-
'autoEnableSpeaker=1', //进房是否开启扬声器(1 开启, 0 关闭)
|
|
358
|
-
].join('&');
|
|
359
|
-
uni.navigateTo({ url: `/pages/scenes/room/main/index?${query}` }); // URL 对应 pages.json 中配置的 path
|
|
360
|
-
}
|
|
361
|
-
```
|
|
220
|
+
## 高级功能
|
|
362
221
|
|
|
363
|
-
|
|
364
|
-
> **navigateTo** 与 **redirectTo**
|
|
365
|
-
>
|
|
366
|
-
> - `uni.navigateTo`:保留当前页面,跳转到新页面,用户可以从多人视频会议主页返回到上一页。适用于创建房间前可以取消的场景。
|
|
367
|
-
> - `uni.redirectTo`:关闭当前页面,跳转到新页面,用户无法返回。适用于支持人直接进入主流程的场景,不需要保存上个界面, 您可以根据自己的业务需求选择使用。
|
|
368
|
-
|
|
369
|
-
#### 加入房间
|
|
370
|
-
|
|
371
|
-
在您需要加入多人视频会议的地方(具体由您的业务决定,在其点击事件里执行),调用 `uni.navigateTo` 或 `uni.redirectTo` 方法,即可进入多人视频会议主页面。
|
|
372
|
-
``` typescript
|
|
373
|
-
// 示例:在一个按钮的点击事件中
|
|
374
|
-
function startBroadcast() {
|
|
375
|
-
const roomID = '123456'; //房间id
|
|
376
|
-
const query = [
|
|
377
|
-
'mode=join',
|
|
378
|
-
`roomID=${encodeURIComponent(roomID)}`,
|
|
379
|
-
'autoEnableCamera=1', //进房是否开启摄像头(1 开启, 0 关闭)
|
|
380
|
-
'autoEnableMicrophone=1', //进房是否开启麦克风(1 开启, 0 关闭)
|
|
381
|
-
'autoEnableSpeaker=1', //进房是否开启扬声器(1 开启, 0 关闭)
|
|
382
|
-
].join('&');
|
|
383
|
-
uni.navigateTo({ url: `/pages/scenes/room/main/index?${query}` }); // URL 对应 pages.json 中配置的 path
|
|
384
|
-
}
|
|
385
|
-
```
|
|
222
|
+
### 屏幕共享
|
|
386
223
|
|
|
387
|
-
|
|
224
|
+
#### Android - 无需配置
|
|
388
225
|
|
|
389
|
-
|
|
226
|
+
开箱即用。
|
|
390
227
|
|
|
391
|
-
|
|
228
|
+
#### iOS - 需配置 Broadcast Upload Extension
|
|
392
229
|
|
|
393
|
-
|
|
230
|
+
##### **步骤1:生成并绑定** Extension
|
|
394
231
|
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|/static/images/room/room_switch_camera.png|顶部操作栏切换摄像头图标。|
|
|
398
|
-
|/static/images/room/room_speakerphone.png|顶部操作栏扬声器图标。|
|
|
399
|
-
|/static/images/room/room_earpiece.png|顶部操作栏听筒图标。|
|
|
232
|
+
使用您的账号 [登录](https://developer.apple.com/),进行以下操作,注意完成后需要下载对应的 Provisioning Profile。
|
|
233
|
+
1. 单击 Certificates, IDs & Profiles。
|
|
400
234
|
|
|
401
|
-
|
|
235
|
+
2. 在右侧的界面中单击加号。
|
|
402
236
|
|
|
403
|
-
|
|
404
|
-
|---------|---------|
|
|
405
|
-
|/static/images/room/room_member.png|底部操作栏成员图标。|
|
|
406
|
-
|/static/images/room/room_mic_on.png|底部操作栏麦克风开启图标。|
|
|
407
|
-
|/static/images/room/room_mic_off.png|底部操作栏麦克风关闭图标。|
|
|
408
|
-
|/static/images/room/room_camera_on.png|底部操作栏摄像头开启图标。|
|
|
409
|
-
|/static/images/room/room_camera_off.png|底部操作栏摄像头关闭图标。|
|
|
237
|
+
3. 选择 App Groups,单击 Continue。
|
|
410
238
|
|
|
411
|
-
|
|
239
|
+
4. 在弹出的表单中填写 Description 和 Identifier,其中 Identifier 需要传入接口中的对应的 AppGroup 参数。完成后单击 Continue。
|
|
412
240
|
|
|
413
|
-
|
|
414
|
-
|---------|---------|
|
|
415
|
-
|/static/images/room/room_video_view_mic_on.png|视频流用户麦克风开启图标。|
|
|
416
|
-
|/static/images/room/room_video_view_mic_off.png|视频流用户麦克风关闭图标。|
|
|
417
|
-
|/static/images/room/room_video_view_owner.png|视频流用户主持人角色图标。|
|
|
418
|
-
|/static/images/room/room_video_view_admin.png|底部操作栏管理员角色图标。|
|
|
241
|
+
5. 回到 Identifier 页面,左上边的菜单中选择 App IDs,然后单击您的 App ID(主 App 与 Extension 的 AppID 需要进行同样的配置)。
|
|
419
242
|
|
|
420
|
-
|
|
243
|
+
6. 选中 App Groups 并单击 Edit。
|
|
421
244
|
|
|
422
|
-
|
|
245
|
+
7. 在弹出的表单中选择您之前创建的 App Group,单击 Continue 返回编辑页,单击 Save 保存。
|
|
423
246
|
|
|
424
|
-
|
|
425
|
-
``` typescript
|
|
426
|
-
<template>
|
|
427
|
-
<text class="bottom-text">解除静音</text>
|
|
428
|
-
</template>
|
|
247
|
+
##### **步骤2:配置屏幕共享扩展。**
|
|
429
248
|
|
|
430
|
-
|
|
431
|
-
.bottom-text {
|
|
432
|
-
color: #FFFFFF;
|
|
433
|
-
font-size: 20rpx;
|
|
434
|
-
margin-top: 6rpx;
|
|
435
|
-
text-overflow: ellipsis;
|
|
436
|
-
}
|
|
437
|
-
</style>
|
|
438
|
-
```
|
|
249
|
+
2. 在 `nativeResources/ios` 下新建 `ios-extension.json` 文件,配置文件内容如下:
|
|
439
250
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
<style>
|
|
447
|
-
.bottom-text {
|
|
448
|
-
color: red;
|
|
449
|
-
font-size: 24rpx;
|
|
450
|
-
margin-top: 6rpx;
|
|
451
|
-
text-overflow: ellipsis;
|
|
452
|
-
}
|
|
453
|
-
</style>
|
|
251
|
+
|参数|说明|
|
|
252
|
+
|---------|---------|
|
|
253
|
+
|identifier|步骤1 中 Apple 开发者后台创建的 Extension 的 Bundle ID。|
|
|
254
|
+
|profile|`nativeResources/ios` 下的 .mobileprovision 的文件名。|
|
|
255
|
+
|entitlements.com.apple.security.application-groups|步骤1 中 Apple 开发者后台创建的 App Group ID。|
|
|
454
256
|
|
|
455
|
-
```
|
|
257
|
+
``` java
|
|
258
|
+
{
|
|
259
|
+
"ScreenShareExtension.appex": {
|
|
260
|
+
"identifier": "xxx",
|
|
261
|
+
"profile": "xxx.mobileprovision",
|
|
262
|
+
"entitlements": {
|
|
263
|
+
"com.apple.security.application-groups": ["xxx"]
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
```
|
|
456
268
|
|
|
457
|
-
|
|
269
|
+
3. 在 `nativeResources/ios` 下新建 UniApp.entitlements 文件,配置文件内容如下:
|
|
458
270
|
|
|
459
|
-
|
|
271
|
+
|**参数**|**说明**|
|
|
272
|
+
|---------|---------|
|
|
273
|
+
|com.apple.security.application-groups|步骤1 中 Apple 开发者后台创建的 App Group ID。|
|
|
460
274
|
|
|
461
|
-
|
|
275
|
+
``` xml
|
|
276
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
277
|
+
<plist version="1.0">
|
|
278
|
+
<dict>
|
|
279
|
+
<key>com.apple.security.application-groups</key>
|
|
280
|
+
<array>
|
|
281
|
+
<string>xxx</string>
|
|
282
|
+
</array>
|
|
283
|
+
</dict>
|
|
284
|
+
</plist>
|
|
285
|
+
```
|
|
462
286
|
|
|
463
|
-
|
|
464
|
-
``` typescript
|
|
465
|
-
<template>
|
|
466
|
-
<image class="bottom-icon" src="/static/images/room/room_mic_on.png" mode="aspectFit"/>
|
|
467
|
-
<text class="bottom-text">解除静音</text>
|
|
468
|
-
</template>
|
|
287
|
+
4. 在 项目根目录下新建 `Info.plist` 文件,配置文件内容如下:
|
|
469
288
|
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
height: 48rpx;
|
|
474
|
-
}
|
|
475
|
-
</style>
|
|
476
|
-
```
|
|
289
|
+
|**参数**|**说明**|
|
|
290
|
+
|---------|---------|
|
|
291
|
+
|TUIRoomAppGroup|步骤1 中 Apple 开发者后台创建的 App Group ID。|
|
|
477
292
|
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
<
|
|
481
|
-
<
|
|
482
|
-
<
|
|
483
|
-
</
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
width: 70rpx;
|
|
488
|
-
height: 70rpx;
|
|
489
|
-
}
|
|
490
|
-
</style>
|
|
293
|
+
``` xml
|
|
294
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
295
|
+
<plist version="1.0">
|
|
296
|
+
<dict>
|
|
297
|
+
<key>TUIRoomAppGroup</key>
|
|
298
|
+
<string>xxx</string>
|
|
299
|
+
</dict>
|
|
300
|
+
</plist>
|
|
301
|
+
```
|
|
491
302
|
|
|
492
|
-
|
|
303
|
+
##### **步骤3:**重新制作自定义基座**。**
|
|
493
304
|
|
|
494
|
-
|
|
305
|
+
点击**运行** > **运行到手机或模拟器** > **制作 iOS 自定义调试基座。**
|
|
495
306
|
|
|
496
|
-
###
|
|
307
|
+
### 预定会议和会中邀请
|
|
497
308
|
|
|
498
|
-
|
|
309
|
+
TUIRoomKit 内置的邀请参会和预定会议选人组件,底层默认依赖腾讯云 IM 的用户关系链(好友列表)。如果您希望在这些组件中展示您企业内部的组织架构或好友列表,请先通过服务端 REST API 将您的业务联系人同步至腾讯云 IM 系统中:
|
|
310
|
+
1. 使用 [账号管理 > 导入多个账号](https://cloud.tencent.com/document/product/269/4919) REST API 接口批量导入用户账号。
|
|
499
311
|
|
|
500
|
-
|
|
501
|
-
``` typescript
|
|
502
|
-
<!-- 底部操作栏 -->
|
|
503
|
-
<view class="bottom-bar">
|
|
504
|
-
<MembersButton />
|
|
505
|
-
<!-- <MicButton /> --> <!-- 隐藏麦克风图标 -->
|
|
506
|
-
<CameraButton />
|
|
507
|
-
</view>
|
|
508
|
-
```
|
|
509
|
-
|
|
510
|
-
将其注释掉即可实现隐藏按钮。
|
|
511
|
-
|
|
512
|
-
### 新增按钮
|
|
513
|
-
|
|
514
|
-
在您需要新增的位置,插入对应的按钮实现。
|
|
515
|
-
|
|
516
|
-
以底部栏新增“更多”按钮为例:
|
|
517
|
-
``` typescript
|
|
518
|
-
<template>
|
|
519
|
-
......
|
|
520
|
-
<!-- 底部操作栏 -->
|
|
521
|
-
<view class="bottom-bar">
|
|
522
|
-
......
|
|
523
|
-
<view class="action-button-item">
|
|
524
|
-
<image class="bottom-icon" src="/static/images/more.png" mode="aspectFit" />
|
|
525
|
-
<text class="bottom-text">更多</text>
|
|
526
|
-
</view>
|
|
527
|
-
</view>
|
|
528
|
-
</template>
|
|
529
|
-
|
|
530
|
-
<style>
|
|
531
|
-
.bottom-icon {
|
|
532
|
-
width: 48rpx;
|
|
533
|
-
height: 48rpx;
|
|
534
|
-
}
|
|
535
|
-
.bottom-text {
|
|
536
|
-
color: #FFFFFF;
|
|
537
|
-
font-size: 20rpx;
|
|
538
|
-
margin-top: 6rpx;
|
|
539
|
-
text-overflow: ellipsis;
|
|
540
|
-
text-align: center;
|
|
541
|
-
}
|
|
542
|
-
</style>
|
|
543
|
-
```
|
|
312
|
+
2. 使用 [好友管理 > 导入好友](https://cloud.tencent.com/document/product/269/8301) REST API 接口批量导入用户关系链。
|
|
544
313
|
|
|
545
314
|
## 常见问题
|
|
546
315
|
|
|
547
|
-
####
|
|
316
|
+
#### **该 TUIKit 插件是否支持编译到 H5 或微信小程序?**
|
|
548
317
|
|
|
549
|
-
|
|
318
|
+
**不支持。**由于新版 TUIKit 基于 **UTS (Uni-app Type Script)** 插件架构开发,深度依赖 Android 和 iOS 的原生能力(如原生渲染引擎、本地数据库、音视频编解码),因此仅支持打包为 **App (Android/iOS)**。
|
|
550
319
|
|
|
551
|
-
####
|
|
320
|
+
#### **我的现有项目全是** `.vue` **页面(Webview 渲染),能直接集成吗?**
|
|
552
321
|
|
|
553
|
-
|
|
322
|
+
**可以混用,但需要注意页面模式。**
|
|
554
323
|
|
|
555
324
|
nvue 页面和 vue 页面可以互相跳转,但是 vue 页面的子组件不建议是 nvue 组件。TUIKit 的 UI 组件是 nvue 组件,因此使用 TUIKit 所在的**页面(pages)**必须也是 nvue 文件。
|
|
556
325
|
|
|
557
|
-
#### **Q:页面样式错乱、布局塌陷?**
|
|
558
|
-
|
|
559
|
-
A:**没有严格遵守 nvue 的 Flex 布局规范。**
|
|
560
|
-
|
|
561
|
-
nvue 页面中:
|
|
562
|
-
- 默认 `flex-direction` 是 `column`(纵向),而非 Web 的 `row`。
|
|
563
|
-
|
|
564
|
-
- 文本必须包裹在 `<text>` 组件中,不能直接写在 `<div>` 或 `<view>` 里。
|
|
565
|
-
|
|
566
|
-
- 不支持简写属性(例如 `margin: 10px 20px`),必须写全(`margin-top`, `margin-left` 等)。
|
|
567
|
-
|
|
568
|
-
#### **Q:**运行报错 "uni is not defined" 或组件无法加载?
|
|
569
|
-
|
|
570
|
-
A:请检查是否制作并使用了**自定义调试基座**。
|
|
571
|
-
|
|
572
|
-
由于插件包含原生代码(Java/Objective-C),标准基座不包含这些原生库。
|
|
573
|
-
- **解决步骤:** 请严格按照文档“运行和测试-步骤2”操作,在 HBuilderX 中点击 **运行** > **运行到手机或模拟器** > **制作自定义调试基座**。制作完成后,运行时请务必选择**运行到 Android/iOS 基座**,并勾选“使用自定义基座”。
|
|
574
|
-
|
|
575
|
-
#### **Q:制作自定义基座时一直失败或卡顿怎么办?**
|
|
576
|
-
|
|
577
|
-
A:这通常是本地原生编译环境(Gradle 或 CocoaPods)配置问题导致的。
|
|
578
|
-
- **Android:** 请检查本地 JDK 版本是否兼容,以及网络是否能正常访问 Maven/Google 仓库。
|
|
579
|
-
|
|
580
|
-
- **iOS:** 请确保已安装 CocoaPods 且版本更新,同时检查网络环境是否能访问 GitHub 或 CDN 库。
|
|
581
|
-
|