@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.
Files changed (135) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +22 -23
  3. package/knowledge/path-meta.js +23 -1
  4. package/package.json +1 -1
  5. package/resource/index/manifest.json +1 -1
  6. package/resource/integration/callkit/preset/android/integration.md +4 -0
  7. package/resource/integration/callkit/preset/flutter/integration.md +8 -4
  8. package/resource/integration/callkit/preset/ios/integration.md +16 -15
  9. package/resource/integration/callkit/preset/react/integration.md +2 -2
  10. package/resource/integration/callkit/preset/vue/integration.md +9 -12
  11. package/resource/integration/chat/preset/android/integration.md +5 -147
  12. package/resource/integration/chat/preset/flutter/integration.md +22 -130
  13. package/resource/integration/chat/preset/ios/integration.md +12 -279
  14. package/resource/integration/chat/preset/react/integration.md +27 -1
  15. package/resource/integration/chat/preset/uni-app/integration.md +5 -1
  16. package/resource/integration/chat/preset/vue/integration.md +21 -31
  17. package/resource/integration/livekit/preset/live/android/live-host-integration.md +4 -0
  18. package/resource/integration/livekit/preset/live/ios/live-host-integration.md +4 -0
  19. package/resource/integration/livekit/preset/live/ios/prepare-integration.md +3 -3
  20. package/resource/integration/livekit/preset/live/vue/live-list-integration.md +3 -4
  21. package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +0 -1
  22. package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +0 -1
  23. package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +4 -9
  24. package/resource/integration/roomkit/preset/vue/integration.md +152 -652
  25. package/resource/knowledge/callkit/best-practice/android/video-chat-dating.md +490 -0
  26. package/resource/knowledge/callkit/best-practice/flutter/android-keep-call-alive-background.md +79 -0
  27. package/resource/knowledge/callkit/best-practice/flutter/background-incoming-call-no-notification.md +99 -0
  28. package/resource/knowledge/callkit/best-practice/flutter/ios-keep-call-alive-background.md +93 -0
  29. package/resource/knowledge/callkit/best-practice/flutter/ios-startup-crash-version-voip.md +68 -0
  30. package/resource/knowledge/callkit/core-sdk/android/answer-call.md +2 -2
  31. package/resource/knowledge/callkit/core-sdk/android/make-call.md +5 -5
  32. package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +7 -7
  33. package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +10 -10
  34. package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -1
  35. package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +18 -16
  36. package/resource/knowledge/callkit/core-sdk/ios/make-call.md +16 -14
  37. package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +19 -19
  38. package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +16 -16
  39. package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +2 -86
  40. package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +2 -104
  41. package/resource/knowledge/callkit/core-sdk/web/call-event.md +2 -2
  42. package/resource/knowledge/callkit/faq/android.md +4 -4
  43. package/resource/knowledge/callkit/faq/common.md +4 -4
  44. package/resource/knowledge/callkit/faq/error-code.md +62 -36
  45. package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +1 -1
  46. package/resource/knowledge/callkit/preset/android/api.md +10 -10
  47. package/resource/knowledge/callkit/preset/harmonyos/api.md +362 -0
  48. package/resource/knowledge/callkit/preset/harmonyos/integration.md +322 -0
  49. package/resource/knowledge/callkit/preset/ios/api.md +9 -9
  50. package/resource/knowledge/callkit/preset/miniprogram/api-uniapp.md +293 -0
  51. package/resource/knowledge/callkit/preset/miniprogram/api.md +19 -19
  52. package/resource/knowledge/callkit/preset/miniprogram/integration.md +292 -0
  53. package/resource/knowledge/callkit/preset/miniprogram/uniapp-integration.md +521 -0
  54. package/resource/knowledge/callkit/preset/uni-app/api.md +49 -0
  55. package/resource/knowledge/callkit/preset/uni-app/integration.md +353 -0
  56. package/resource/knowledge/chat/preset/android-view/integration.md +54 -102
  57. package/resource/knowledge/chat/preset/ios/features/language.md +5 -5
  58. package/resource/knowledge/chat/preset/ios-uikit/integration.md +194 -926
  59. package/resource/knowledge/chat/preset/react/features/search.md +9 -214
  60. package/resource/knowledge/chat/preset/react/h5/integration.md +965 -0
  61. package/resource/knowledge/chat/preset/vue/features/chat-header.md +0 -36
  62. package/resource/knowledge/chat/preset/vue/features/contact-list.md +0 -34
  63. package/resource/knowledge/chat/preset/vue/features/conversation-list.md +0 -39
  64. package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +0 -74
  65. package/resource/knowledge/chat/preset/vue/features/message-input.md +4 -4
  66. package/resource/knowledge/chat/preset/vue/features/search.md +9 -790
  67. package/resource/knowledge/chat/preset/vue/h5/integration.md +724 -0
  68. package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +3 -3
  69. package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +3 -3
  70. package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +3 -3
  71. package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -3
  72. package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +3 -3
  73. package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +3 -3
  74. package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +3 -3
  75. package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +3 -170
  76. package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +1 -1
  77. package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +3 -3
  78. package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +1 -1
  79. package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +3 -3
  80. package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +3 -3
  81. package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +1 -1
  82. package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +3 -3
  83. package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +2 -2
  84. package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +13 -78
  85. package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +5 -70
  86. package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +10 -10
  87. package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -1
  88. package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -4
  89. package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +1 -1
  90. package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +1 -1
  91. package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +4 -4
  92. package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +7 -7
  93. package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +1 -24
  94. package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +0 -3
  95. package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -5
  96. package/resource/knowledge/push/api-reference/harmonyos.md +9 -9
  97. package/resource/knowledge/push/api-reference/unity.md +10 -10
  98. package/resource/knowledge/push/api-reference/unreal-engine.md +11 -11
  99. package/resource/knowledge/push/config/donut.md +3 -3
  100. package/resource/knowledge/push/config/harmonyos.md +12 -12
  101. package/resource/knowledge/push/config/ios.md +2 -2
  102. package/resource/knowledge/push/integration/android.md +90 -1067
  103. package/resource/knowledge/push/integration/donut.md +11 -11
  104. package/resource/knowledge/push/integration/flutter.md +38 -24
  105. package/resource/knowledge/push/integration/harmonyos.md +1 -11
  106. package/resource/knowledge/push/integration/ios.md +29 -40
  107. package/resource/knowledge/push/integration/react-native.md +1 -1
  108. package/resource/knowledge/push/integration/uni-app.md +1 -1
  109. package/resource/knowledge/push/integration/unity.md +4 -4
  110. package/resource/knowledge/push/integration/unreal-engine.md +9 -9
  111. package/resource/knowledge/roomkit/core-sdk/android/room-state.md +6 -6
  112. package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +13 -13
  113. package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +5 -5
  114. package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -4
  115. package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +6 -6
  116. package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -4
  117. package/resource/knowledge/roomkit/core-sdk/vue/device-detection.md +0 -9
  118. package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -9
  119. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +3 -3
  120. package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -3
  121. package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +0 -16
  122. package/resource/knowledge/roomkit/core-sdk/vue/schedule-room.md +0 -3
  123. package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +3 -6
  124. package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +0 -15
  125. package/resource/knowledge/roomkit/preset/android/integration.md +5 -202
  126. package/resource/knowledge/roomkit/preset/flutter/integration.md +17 -13
  127. package/resource/knowledge/roomkit/preset/harmonyos/integration.md +10 -2
  128. package/resource/knowledge/roomkit/preset/ios/integration.md +7 -204
  129. package/resource/knowledge/roomkit/preset/react/integration.md +0 -202
  130. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +244 -500
  131. package/resource/knowledge/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +25 -6
  132. package/server.js +1 -1
  133. package/utils/preflight-route.js +203 -185
  134. package/utils/report-cls-client.js +1 -1
  135. package/utils/report-es-client.js +1 -1
@@ -1,9 +1,9 @@
1
1
  ## 前提条件
2
- 1. 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/intro/) 中开启推送服务,默认支持在线推送。
2
+ - 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/intro/) 中开启推送服务,默认支持在线推送。
3
3
 
4
- 2. 如果您需要使用离线推送,请先完成对应原生平台的推送前提配置:请参见 [iOS 前提条件](https://cloud.tencent.com/document/product/269/100627#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6) 和 [Android 前提条件](https://cloud.tencent.com/document/product/269/100626#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6)。
4
+ - 如果您需要使用离线推送,请先完成对应原生平台的推送前提配置:请参见 [iOS 前提条件](https://cloud.tencent.com/document/product/269/100627#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6) 和 [Android 前提条件](https://cloud.tencent.com/document/product/269/100626#.E5.89.8D.E6.8F.90.E6.9D.A1.E4.BB.B6)。
5
5
 
6
- 3. 微信开发者工具版本需 ≥ 1.06.2410152,您可进入 [下载地址](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 进行版本下载。
6
+ - 微信开发者工具版本需 ≥ 1.06.2410152,您可进入 [下载地址](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 进行版本下载。
7
7
 
8
8
  ## 操作步骤
9
9
 
@@ -60,18 +60,18 @@
60
60
  1. 配置证书和描述文件。
61
61
 
62
62
  请参见 [微信小程序多端框架配置文档](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/handbook/certificate/ios.html) 或 [腾讯云推送厂商配置文档](https://cloud.tencent.com/document/product/269/100624) 以生成 iOS 应用运行时所需的证书和 Provisioning Profile,这些文件将在后续配置中使用。您需要准备以下文件:
63
- - **开发证书.p12**
63
+ - **开发证书.p12**
64
64
 
65
- - **主 App 描述文件.mobileprovision**
65
+ - **主 App 描述文件.mobileprovision**
66
66
 
67
67
  2. Apple Developer 平台 Bundle ID 配置。
68
68
 
69
69
  请参见 [Apple Developer 平台 Bundle ID 配置指引](https://dev.weixin.qq.com/docs/miniapp/handbook/web/set-bundleid.html),配置时请勾选以下能力:
70
- - **Push Notification**
70
+ - **Push Notification**
71
71
 
72
- - **App Group (按需配置:字段配置可参见** [生成 App GroupID](https://cloud.tencent.com/document/product/269/100624#778049b7-7ce0-4953-95fd-da523cca0bd4)**)**
72
+ - **App Group (按需配置:字段配置可参见** [生成 App GroupID](https://cloud.tencent.com/document/product/269/100624#778049b7-7ce0-4953-95fd-da523cca0bd4)**)**
73
73
 
74
- - Donut 建议的权限:Access WiFi Information、Associated Domains、Hotspot、Wireless Accessory Configuration;如果使用苹果登录,还需开启 Sign In with Apple(更多其他权限开发者按需开启,并非越多越好哈)
74
+ - Donut 建议的权限:Access WiFi Information、Associated Domains、Hotspot、Wireless Accessory Configuration;如果使用苹果登录,还需开启 Sign In with Apple(更多其他权限开发者按需开启,并非越多越好哈)
75
75
 
76
76
  3. 在 Donut 控制台里绑定移动应用的 Bundle ID。
77
77
 
@@ -106,11 +106,11 @@
106
106
  >
107
107
 
108
108
  您需要准备以下文件:
109
- - **开发证书.p12 (之前步骤已经准备完毕)**
109
+ - **开发证书.p12 (之前步骤已经准备完毕)**
110
110
 
111
- - **主 App 描述文件.mobileprovision (之前步骤已经准备完毕)**
111
+ - **主 App 描述文件.mobileprovision (之前步骤已经准备完毕)**
112
112
 
113
- - **Service Extension 的描述文件.mobileprovision(本次功能需要新增的描述文件)**
113
+ - **Service Extension 的描述文件.mobileprovision(本次功能需要新增的描述文件)**
114
114
 
115
115
  当您准备好以上文件后,可以按照描述填入相关信息:
116
116
 
@@ -2,45 +2,27 @@
2
2
 
3
3
  ## 前提条件
4
4
 
5
- 开始接入前,请先完成目标平台的推送前提配置,并准备好注册所需参数。按平台查看:
6
-
7
5
  【Android】
8
6
 
9
- 请确认已 开通 Push 服务,并按需完成 Android 厂商配置(小米 / 华为 / OPPO / vivo / 荣耀 / 魅族 / Google FCM)。Flutter Android 侧至少需要准备:
10
-
11
- |资源|用途|
12
- |---------|---------|
13
- |`SDKAppID`、客户端密钥(Push Key)|调用 `registerPush`|
14
- |`timpush-configs.json`|放入 Android 应用模块 `assets`|
15
- |目标厂商配置文件(如有)|华为、荣耀、Google FCM 等按厂商要求放入工程|
16
- |工程 `applicationId`|与厂商平台应用包名一致|
17
- |TIMPush 版本号 `VERSION`|厂商通道包依赖版本,见 更新日志|
18
-
19
- 完整资源清单与获取路径见 Android 前提条件。
7
+ 请确认已 开通 Push 服务,并按需完成 Android 厂商配置(小米 / 华为 / OPPO / vivo / 荣耀 / 魅族 / Google FCM)。
20
8
 
21
9
  【iOS】
22
10
 
23
- 请确认已 开通 Push 服务 并完成 iOS 厂商配置。Flutter iOS 侧至少需要准备:
24
-
25
- |资源|用途|
26
- |---------|---------|
27
- |`SDKAppID`、Push Key|调用 `registerPush`|
28
- |证书 ID(`businessID` / `apnsCertificateID`)|腾讯云控制台上传 APNs 证书后生成,经 `registerPush` 传入|
29
- |App Group ID(可选)|仅触达统计需要,经 `registerPush` 的 `applicationGroupID` 传入|
11
+ 请确认已 开通 Push 服务 并完成 iOS 厂商配置。
30
12
 
31
- 完整资源清单见 iOS 前提条件。
13
+ 【HarmonyOS】
32
14
 
33
- 本文示例中的 `VERSION`、`SDKAppID`、`AppKey`、证书 ID、App Group ID 均为占位符,请勿在代码仓库中提交真实密钥。
15
+ 请确认已 开通 Push 服务 并完成 [HarmonyOS 厂商配置](https://cloud.tencent.com/document/product/269/108856)。
34
16
 
35
17
  ## AI 集成
36
18
 
37
- 通过 npx 安装 [@tencent-rtc/trtc-push-skill](https://www.npmjs.com/package/@tencent-rtc/trtc-push-skill/v/1.0.1#%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 到本地 AI IDE 中,辅助完成 TIMPush 离线推送集成。安装后,你可以直接向 AI 输入“集成 Flutter 离线推送”“帮我集成 Flutter TIMPush”等需求,AI 将根据项目类型引导你完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。详情可参考 AI Coding。
19
+ 通过 npx 安装 [@tencent-rtc/trtc-push-skill](https://www.npmjs.com/package/@tencent-rtc/trtc-push-skill/v/1.0.1#%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 到本地 AI IDE 中,辅助完成 TIMPush 离线推送集成。安装后,您可以直接向 AI 输入“集成 Flutter 离线推送”“帮我集成 Flutter TIMPush”等需求,AI 将根据项目类型引导您完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。详情可参考 AI Coding。
38
20
 
39
21
  ## 手动集成
40
22
 
41
23
  ### 步骤1:集成 TIMPush SDK
42
24
 
43
- 如果你想手动集成,请按顺序完成下述步骤。
25
+ 如果您想手动集成,请按顺序完成下述步骤。
44
26
 
45
27
  #### 集成 Flutter 插件
46
28
 
@@ -209,6 +191,34 @@ import tencent_cloud_chat_push
209
191
  }
210
192
  ```
211
193
 
194
+ 【HarmonyOS】
195
+ 1. 参考 [鸿蒙 Flutter 仓库文档](https://gitcode.com/CPF-Flutter/flutter_flutter/tree/oh-3.35.7-release) 的开发指南搭建环境。
196
+
197
+ 2. 在您项目的 pubspec.yaml 中依赖重写(dependency_overrides)鸿蒙适配的第三方库:
198
+
199
+ ``` java
200
+ dependency_overrides:
201
+ # ... 已有的 override 保持不变 ...
202
+ # HarmonyOS 专用(仅在使用 Flutter-OH 构建时启用,构建 Android/iOS 时请注释掉)
203
+ path_provider:
204
+ git:
205
+ url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
206
+ path: "packages/path_provider/path_provider"
207
+ ref: "provider-v2.1.5-ohos-1.0.0"
208
+ shared_preferences:
209
+ git:
210
+ url: "https://gitcode.com/openharmony-tpc/flutter_packages.git"
211
+ path: "packages/shared_preferences/shared_preferences"
212
+ ref: "shared_preferences-v2.5.4-ohos-1.0.0"
213
+ ```
214
+ 3. 添加 `timpush-configs.json` 文件到您项目中 `ohos/entry/src/main/resources/rawfile/timpush-configs.json`,文件内容中的 `businessID` 值是在厂商配置中 [腾讯云 IM 控制台配置](https://cloud.tencent.com/document/product/269/108856#e87ea0c0-b307-4ce1-b8d3-aed8e9aed5ce) 得到的证书 ID。
215
+
216
+ ``` java
217
+ {
218
+ "businessID": "替换成您的证书 ID"
219
+ }
220
+ ```
221
+
212
222
  ### 步骤2:注册推送服务
213
223
 
214
224
  registerPush 用于向 TIMPush 注册当前设备的推送 token。注册成功后,TIMPush 会为当前设备建立一个推送目标标识 `registrationID`;服务端、控制台接入测试和排查工具可以使用该标识向这台设备下发离线推送。若 App 同时接入 IM 并完成登录,也可以使用 `userID` 向该用户已建立推送关系的设备下发离线推送。
@@ -338,6 +348,10 @@ Flutter 额外确认两点:
338
348
 
339
349
  2. `ios/Runner/AppDelegate.swift` 中已实现 `applicationGroupID()`。
340
350
 
351
+ 【HarmonyOS】
352
+
353
+ 请按 [HarmonyOS 配置消息触达统计](https://cloud.tencent.com/document/product/269/108892#daa658b0-1ac0-44a8-8a47-7ec8822ebe82) 完成配置。Flutter 侧无额外 Dart 代码。
354
+
341
355
  ### 步骤4:测试推送链路
342
356
 
343
357
  完成上述集成步骤后,需要通过发送测试消息验证链路是否打通。
@@ -1,16 +1,6 @@
1
1
  ## 前提条件
2
2
 
3
- 请确认已 开通 Push 服务 并完成 厂商配置,获取到了下列信息:
4
-
5
- |资源|获取位置|用途|
6
- |---------|---------|---------|
7
- |`SDKAppID`|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|调用 `registerPush`。创建 Push 应用后,腾讯云控制台会自动创建相同 `SDKAppID` 的 Chat 应用。|
8
- |Push Key|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览** > **客户端密钥**|独立 Push 场景下,作为 `registerPush` 的 `appKey` 参数。|
9
- |Chat Key|腾讯云控制台 > 即时通信 IM > **消息服务 Chat** > **概览** > **密钥**|Chat 登录使用。不要把 Chat Key 当作 `registerPush` 的 `appKey` 传入。|
10
- |Push 服务开通状态|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|创建 Push 应用不等于已开通 Push 服务,请确认 Push 服务已开通。|
11
- |TIMPush iOS `VERSION`|更新日志|`VERSION` 是 Podfile 中 TIMPush 依赖的版本号占位符,例如 `8.9.7537`、`8.8.7357`、`8.7.7201` 等,请以实际接入版本为准。|
12
-
13
- 本文示例中的 `VERSION`、`SDKAppID`、`appKey`均为占位符,请勿在代码仓库中提交真实密钥。
3
+ 请确认已 开通 Push 服务 并完成 厂商配置。
14
4
 
15
5
  ## AI 集成
16
6
 
@@ -2,30 +2,16 @@
2
2
 
3
3
  ## 前提条件
4
4
 
5
- 请确认已 开通 Push 服务 并完成 iOS 厂商配置,获取到了下列信息:
5
+ 请确认已 开通 Push 服务 并完成 iOS 厂商配置。
6
6
 
7
- |资源|获取位置|用途|
8
- |---------|---------|---------|
9
- |`SDKAppID`|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|调用 `registerPush`。创建 Push 应用后,腾讯云控制台会自动创建相同 `SDKAppID` 的 Chat 应用。|
10
- |Push Key|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览** > **客户端密钥**|独立 Push 场景下,作为 `registerPush` 的 `appKey` 参数。|
11
- |Chat Key|腾讯云控制台 > 即时通信 IM > **消息服务 Chat** > **概览** > **密钥**|Chat 登录使用。不要把 Chat Key 当作 `registerPush` 的 `appKey` 传入。|
12
- |证书 ID|腾讯云控制台上传 APNs 证书后生成|证书 ID 即 `businessID`,在 AppDelegate 中返回给 TIMPush。|
13
- |App Group ID|Apple Developer Center / **Xcode Capabilities**|仅在需要推送触达统计时使用。|
14
- |Push 服务开通状态|腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **概览**|创建 Push 应用不等于已开通 Push 服务,请确认 Push 服务已开通。|
15
- |TIMPush iOS `VERSION`|[更新日志](https://cloud.tencent.com/document/product/269/114289)|`VERSION` 是 Podfile 中 TIMPush 依赖的版本号占位符,例如 `8.9.7537`等,请以实际接入版本为准。|
16
-
17
- 本文示例中的 `VERSION`、`SDKAppID`、`AppKey`、`businessID`、App Group ID 均为占位符,请勿在代码仓库中提交真实密钥。
18
-
19
- ## AI 集成
7
+ ## 方式1:AI 集成
20
8
 
21
9
  通过 npx 安装 [@tencent-rtc/trtc-push-skill](https://www.npmjs.com/package/@tencent-rtc/trtc-push-skill/v/1.0.1#%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) 到本地 AI IDE 中,辅助完成 TIMPush 离线推送集成。安装后,您可以直接向 AI 输入“集成 iOS 离线推送”等需求,AI 将根据项目类型引导您完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。详情可参考 AI Coding。
22
10
 
23
- ## 手动集成
11
+ ## 方式2:手动集成
24
12
 
25
13
  ### 步骤1:集成 TIMPush SDK
26
14
 
27
- 如果你想手动集成,请按顺序完成下文配置。
28
-
29
15
  #### 在主 App target 中集成 TIMPush
30
16
 
31
17
  TIMPush 通过 CocoaPods 集成。请在 `Podfile` 中为主 App target 添加 TIMPush 依赖。Podfile 示例:
@@ -54,7 +40,7 @@ end
54
40
  pod install
55
41
  ```
56
42
 
57
- 如果无法安装 TIMPush 最新版本,可先执行 `pod repo update` 更新本地 CocoaPods 仓库列表后再 `pod install`。仓库更新可能耗时较长且影响依赖解析结果,建议在确认版本后执行。
43
+ 如果无法安装 TIMPush 最新版本,可先执行 `pod repo update` 更新本地 CocoaPods 仓库列表后再 `pod install`。
58
44
 
59
45
  > **注意:**
60
46
  > 无论 Swift 还是 Objective-C 项目,都请集成 TXIMSDK_Plus_iOS_XCFramework。
@@ -117,8 +103,6 @@ import TIMPush
117
103
  }
118
104
  ```
119
105
 
120
- **验证**:在 Apple Developer Center 和 Xcode 中确认主 App 与 Notification Service Extension 已绑定到同一个 App Group ID,且 AppDelegate 返回的 `group.<#YOUR_APP_GROUP_ID#>` 与之一致。
121
-
122
106
  ### 步骤2:注册推送服务
123
107
 
124
108
  #### 调用 registerPush
@@ -145,7 +129,7 @@ registerPush 用于向 TIMPush 注册当前设备的推送 token。注册成功
145
129
 
146
130
  【App 冷启动注册 TIMPush(appKey 传 Push Key)】
147
131
 
148
- App 冷启动、用户同意隐私政策后调用 `registerPush(appKey = Push Key)`。
132
+ App 冷启动、用户同意隐私政策后调用 `registerPush(appKey = Push Key)`。建议在 `registerPush` 成功回调里调用 `getRegistrationID` 打印 `registrationID`,方便后续根据 `registrationID` 发送离线推送消息。
149
133
 
150
134
  【Swift】
151
135
  ``` swift
@@ -159,6 +143,10 @@ func registerTIMPush() {
159
143
 
160
144
  TIMPushManager.registerPush(sdkAppID, appKey: appKey, succ: { deviceToken in
161
145
  print(">>>>> TIMPush register success")
146
+ // 获取并打印出 registrationID,方便后续根据 registrationID 发送离线推送消息
147
+ TIMPushManager.getRegistrationID { registrationID in
148
+ print(">>>>> TIMPush registrationID: \(registrationID)")
149
+ }
162
150
  }, fail: { code, desc in
163
151
  print(">>>>> TIMPush register failed, code:\(code), desc:\(desc)")
164
152
  })
@@ -174,11 +162,14 @@ func registerTIMPush() {
174
162
  int sdkAppID = 0;
175
163
  // TODO: Replace @"<#YOUR_PUSH_KEY#>" with your Push Key.
176
164
  NSString *appKey = @"<#YOUR_PUSH_KEY#>";
177
-
178
165
  [TIMPushManager registerPush:sdkAppID
179
166
  appKey:appKey
180
167
  succ:^(NSData * _Nonnull deviceToken) {
181
168
  NSLog(@">>>>> TIMPush register success");
169
+ // 获取并打印出 registrationID,方便后续根据 registrationID 发送离线推送消息
170
+ [TIMPushManager getRegistrationID:^(NSString * _Nonnull registrationID) {
171
+ NSLog(@">>>>> TIMPush registrationID: %@", registrationID);
172
+ }];
182
173
  } fail:^(int code, NSString * _Nonnull desc) {
183
174
  NSLog(@">>>>> TIMPush register failed, code:%d, desc:%@", code, desc);
184
175
  }];
@@ -188,7 +179,7 @@ func registerTIMPush() {
188
179
 
189
180
  【IM 登录后注册推送(appKey 传 null)】
190
181
 
191
- 请在 IM `login` 成功回调中调用 `registerPush(appKey = nil)`。
182
+ 请在 IM `login` 成功回调中调用 `registerPush(appKey = nil)`。建议在 `registerPush` 成功回调里调用 `getRegistrationID` 打印 `registrationID`,方便后续根据 `registrationID` 发送离线推送消息。
192
183
 
193
184
  【Swift】
194
185
  ``` swift
@@ -210,6 +201,10 @@ func loginIMAndRegisterPush() {
210
201
  V2TIMManager.sharedInstance().login(userID: userID, userSig: userSig) {
211
202
  TIMPushManager.registerPush(sdkAppID, appKey: "", succ: { deviceToken in
212
203
  print(">>>>> TIMPush register success")
204
+ // 获取并打印出 registrationID,方便后续根据 registrationID 发送离线推送消息
205
+ TIMPushManager.getRegistrationID { registrationID in
206
+ print(">>>>> TIMPush registrationID: \(registrationID)")
207
+ }
213
208
  }, fail: { code, desc in
214
209
  print(">>>>> TIMPush register failed, code:\(code), desc:\(desc)")
215
210
  })
@@ -242,6 +237,10 @@ func loginIMAndRegisterPush() {
242
237
  appKey:nil
243
238
  succ:^(NSData * _Nonnull deviceToken) {
244
239
  NSLog(@">>>>> TIMPush register success");
240
+ // 获取并打印出 registrationID,方便后续根据 registrationID 发送离线推送消息
241
+ [TIMPushManager getRegistrationID:^(NSString * _Nonnull registrationID) {
242
+ NSLog(@">>>>> TIMPush registrationID: %@", registrationID);
243
+ }];
245
244
  } fail:^(int code, NSString * _Nonnull desc) {
246
245
  NSLog(@">>>>> TIMPush register failed, code:%d, desc:%@", code, desc);
247
246
  }];
@@ -253,16 +252,10 @@ func loginIMAndRegisterPush() {
253
252
 
254
253
  > **警告:**
255
254
  >
256
- > 如果你的业务仅使用即时通信 IM 聊天能力,请勿在 IM 登录前先调用 `registerPush`。否则 SDK 可能会按独立推送场景注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,可能会产生额外费用。
255
+ > 如果您的业务仅使用即时通信 IM 聊天能力,请勿在 IM 登录前先调用 `registerPush`。否则 SDK 可能会按独立推送场景注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,可能会产生额外费用。
257
256
  >
258
257
 
259
- **验证**:
260
-
261
- 1. `registerPush` 的 `onSuccess` 回调被触发。
262
-
263
- 2. 登录腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **推送排查**,按当前场景输入 `registrationID` 或 `userID`,确认 token 已上传。
264
-
265
- 3. 如触发 `onError`,可按 错误码 查询 `code` 含义。
258
+ **验证**:`registerPush` 的 `onSuccess` 回调被触发。如触发 `onError`,可按 错误码 查询 `code` 含义。
266
259
 
267
260
  #### 自定义 registrationID(可选)
268
261
 
@@ -322,7 +315,7 @@ func loginIMAndRegisterPush() {
322
315
 
323
316
  #### 在 Extension 中处理通知
324
317
 
325
- 请将 `group.<#YOUR_APP_GROUP_ID#>` 替换为您在 Apple Developer Center 和 Xcode 中配置的 App Group ID。主 App 和 Extension 必须使用同一个 App Group ID。以下 Swift 写法基于 OC 接口自动桥接,参数命名可能随 SDK 版本调整,请以 SDK 头文件 `TIMPushManager.h` 为准。
318
+ 请将 `group.<#YOUR_APP_GROUP_ID#>` 替换为您在 Apple Developer Center 和 Xcode 中配置的 App Group ID。主 App 和 Extension 必须使用同一个 App Group ID。
326
319
 
327
320
  【Swift】
328
321
  ``` swift
@@ -469,7 +462,7 @@ V2TIMMessage *message = [[V2TIMManager sharedInstance] createTextMessage:@"Hello
469
462
 
470
463
  在腾讯云控制台选择「打开应用内指定页面」。操作路径:腾讯云控制台 > 即时通信 IM > **推送服务 Push** > **推送设置** > **厂商配置** > **iOS** > **对应 APNs 证书** > **编辑** > 点击后续动作 > 打开应用内指定页面。
471
464
 
472
- #### **发送推送时携带** `ext`
465
+ #### **发送推送时携带**跳转参数
473
466
 
474
467
  发送离线推送时,通过 `ext` 字段携带跳转所需的业务信息(如目标页面、会话 ID 等)。`ext` 是一个字符串,结构由业务自定义,推荐使用 JSON 格式便于客户端解析。下文示例统一使用如下结构演示:
475
468
  ``` json
@@ -498,7 +491,7 @@ V2TIMMessage *message = [[V2TIMManager sharedInstance] createTextMessage:@"Hello
498
491
 
499
492
  通过 [`V2TIMOfflinePushInfo`](https://im.sdk.qcloud.com/doc/zh-cn/interfaceV2TIMOfflinePushInfo.html) 的 `ext` 属性携带跳转参数,再随消息一起发送。
500
493
 
501
- 如果你接入了 TUIKit,TUIKit 内置的消息发送链路会自动用 `OfflinePushExtInfo` 组装 `ext`,无需手动设置。下方示例适用于自行调用 IM SDK 发送消息的场景。
494
+ 如果您接入了 TUIKit,TUIKit 内置的消息发送链路会自动用 `OfflinePushExtInfo` 组装 `ext`,无需手动设置。下方示例适用于自行调用 IM SDK 发送消息的场景。
502
495
 
503
496
  【Swift】
504
497
  ``` swift
@@ -553,11 +546,9 @@ V2TIMMessage *message = [[V2TIMManager sharedInstance] createTextMessage:@"Hello
553
546
  }];
554
547
  ```
555
548
 
556
- #### **客户端注册监听并解析** `ext`
557
-
558
- 请在 AppDelegate 中遵循 TIMPushListener 协议,在 `didFinishLaunchingWithOptions` 中调用 addPushListener 注册监听器,并在 onNotificationClicked 中解析 `ext` 后跳转到业务页面。
549
+ #### **客户端注册监听并解析**跳转参数
559
550
 
560
- 以下示例只演示解析 `ext` 的核心逻辑,跳转部分用 `TODO` 占位,请按自身业务补充。如果您接入了 TUIKit 并使用 `OfflinePushExtInfo` 组装的 `ext`,可改为 `OfflinePushExtInfo.create(withExtString:)` 解析后再跳转。
551
+ 请在 AppDelegate 中遵循 TIMPushListener 协议,在 `didFinishLaunchingWithOptions` 中调用 addPushListener 注册监听器,并在 onNotificationClicked 中解析 `ext` 后跳转到业务页面。如果您接入了 TUIKit 并使用 `OfflinePushExtInfo` 组装的 `ext`,可改为 `OfflinePushExtInfo.create(withExtString:)` 解析后再跳转。
561
552
 
562
553
  【Swift】
563
554
  ``` swift
@@ -648,7 +639,5 @@ class AppDelegate: UIResponder, UIApplicationDelegate, TIMPushListener {
648
639
  @end
649
640
  ```
650
641
 
651
- **验证**:点击通知后 `onNotificationClicked` 被调用,且 `ext` 内容与发送时设置的一致。如果回调未触发,请检查:控制台点击动作是否选择了**打开应用内指定页面**、监听器是否在 `didFinishLaunchingWithOptions` 中注册、发送消息时是否设置了 `ext`。
652
-
653
642
  ## 接入排查
654
643
 
@@ -278,7 +278,7 @@ npm run ios
278
278
 
279
279
  ### 步骤7:消息推送触达统计
280
280
 
281
- 如果你需要统计设备触达数据,请按照 华为/荣耀/vivo/魅族/iOS 步骤完成配置。其余支持厂商不需要配置,FCM 暂不支持推送统计功能。
281
+ 如果您需要统计设备触达数据,请按照 华为/荣耀/vivo/魅族/iOS 步骤完成配置。其余支持厂商不需要配置,FCM 暂不支持推送统计功能。
282
282
 
283
283
  ## 接入排查
284
284
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  ### 步骤1:集成 TencentCloud-Push
20
20
 
21
- 如果你想手动集成,请按下述步骤依次完成下载插件并导入 HBuilderX、配置离线推送文件。
21
+ 如果您想手动集成,请按下述步骤依次完成下载插件并导入 HBuilderX、配置离线推送文件。
22
22
 
23
23
  #### 下载插件并导入 HBuilderX
24
24
  1. 完成上述「前提条件」中目标平台的厂商配置后,打开 [uni-app 腾讯云推送服务(Push)](https://ext.dcloud.net.cn/plugin),单击**下载插件并导入 HBuilderX**,将插件导入 HBuilderX 工程中。
@@ -112,7 +112,7 @@ android {
112
112
  > 以下荣耀的适配仅 7.7.5283 及以上版本需要配置。
113
113
  >
114
114
 
115
- 1. 下载配置文件添加到工程根目录 **Assets/Plugins/Android/JsonConfigs** 目录下,**该目录需要手动创建**。
115
+ 1. 下载配置文件添加到工程根目录 **Assets/Plugins/Android/JsonConfigs** 目录下,**该目录需要手动创建**。
116
116
 
117
117
  【华为】
118
118
 
@@ -128,7 +128,7 @@ android {
128
128
 
129
129
  配置文件的放置位置如下所示:
130
130
 
131
- 2. 在 **Assets/Plugins/Android/baseProjectTemplate.gradle** 文件中 **buildscript** > **dependencies** 下添加以下配置(如果是需要新增 `buildscript` 建议放在文件最上面):
131
+ 2. 在 **Assets/Plugins/Android/baseProjectTemplate.gradle** 文件中 **buildscript** > **dependencies** 下添加以下配置(如果是需要新增 `buildscript` 建议放在文件最上面):
132
132
 
133
133
  【Gradle 7.1 及以上版本】
134
134
 
@@ -233,7 +233,7 @@ allprojects {
233
233
  }
234
234
  }
235
235
  ```
236
- 3. 在 **Assets/Plugins/Android/launcherTemplate.gradle** 文件中添加下方配置:
236
+ 3. 在 **Assets/Plugins/Android/launcherTemplate.gradle** 文件中添加下方配置:
237
237
 
238
238
  ``` java
239
239
  apply plugin: 'com.google.gms.google-services'
@@ -280,7 +280,7 @@ PushManager.RegisterPush(sdkAppId: 您的sdkAppId, appKey: "客户端密钥", ne
280
280
 
281
281
  ### 步骤6:消息推送触达统计
282
282
 
283
- 如果你需要统计设备触达数据,请按照 华为/荣耀/vivo/魅族/iOS 完成配置。其余支持厂商不需要配置,FCM 暂不支持推送统计功能。
283
+ 如果您需要统计设备触达数据,请按照 华为/荣耀/vivo/魅族/iOS 完成配置。其余支持厂商不需要配置,FCM 暂不支持推送统计功能。
284
284
 
285
285
  ## 接入排查
286
286
 
@@ -20,16 +20,16 @@
20
20
 
21
21
  3. 开启远程推送能力。完成证书 ID 配置之后,您需要开启应用的 Push Notifications 能力:
22
22
 
23
- - 如果您的 UE 引擎是从源代码自行编译构建的,您可以通过 “项目设置 > iOS 中勾选 Enable Remote Notifications Support” 来开启对应能力;
23
+ - 如果您的 UE 引擎是从源代码自行编译构建的,您可以通过 “项目设置 > iOS 中勾选 Enable Remote Notifications Support” 来开启对应能力;
24
24
 
25
- - 如果您的 UE 引擎是从 Epic Game 下载的,您可以通过打开 “`<proj_dir>/Config/DefaultEngine.ini`” ,在脚本的 `IOSRuntimeSettings` 中添加:
25
+ - 如果您的 UE 引擎是从 Epic Game 下载的,您可以通过打开 “`<proj_dir>/Config/DefaultEngine.ini`” ,在脚本的 `IOSRuntimeSettings` 中添加:
26
26
 
27
27
  ``` plaintext
28
28
  // Some code
29
29
  [/Script/IOSRuntimeSettings.IOSRuntimeSettings]
30
30
  bEnableRemoteNotificationsSupport=True
31
31
  ```
32
- - 或者,您也可以选择在项目根目录中使用 Xcode 打开 UE 生成的 YourProject.xcworkspace,在 Project > Target 中,点击 Signing & Capabilities 选项,点击左上角 Capability,搜索添加 Push Notifications 能力到您的项目中
32
+ - 或者,您也可以选择在项目根目录中使用 Xcode 打开 UE 生成的 YourProject.xcworkspace,在 Project > Target 中,点击 Signing & Capabilities 选项,点击左上角 Capability,搜索添加 Push Notifications 能力到您的项目中
33
33
 
34
34
  【Android】
35
35
 
@@ -258,17 +258,17 @@ PushManager::GetInstance()->RegisterPush(您的 sdkAppId, "您的 appKey", callb
258
258
  ```
259
259
 
260
260
  ### 步骤6:消息推送触达统计
261
- - 如果你需要统计 Android 设备触达数据,请按照 华为/荣耀/vivo/魅族 配置。
261
+ - 如果您需要统计 Android 设备触达数据,请按照 华为/荣耀/vivo/魅族 配置。
262
262
 
263
- - 如果你需要统计 iOS 设备触达数据,
263
+ - 如果您需要统计 iOS 设备触达数据,
264
264
 
265
- 1. 在上文的推送参数配置章节中,将“YourGroupID”修改为自己的 App Group ID。
265
+ 1. 在上文的推送参数配置章节中,将“YourGroupID”修改为自己的 App Group ID。
266
266
 
267
- 2. 参考 iOS 配置消息触达统计 完成 App Group ID、Notification Service Extension 和 mutable-content 配置。
267
+ 2. 参考 iOS 配置消息触达统计 完成 App Group ID、Notification Service Extension 和 mutable-content 配置。
268
268
 
269
- 3. 将项目根目录的 Plugins-TIMPush-Source-ThirdParty-TIMPushLibrary-iOS 路径中的两个 framework 压缩包解压缩,并在 Xcode 项目中将内部的 .framework 文件夹添加到您的 pushservice target 之中。
269
+ 3. 将项目根目录的 Plugins-TIMPush-Source-ThirdParty-TIMPushLibrary-iOS 路径中的两个 framework 压缩包解压缩,并在 Xcode 项目中将内部的 .framework 文件夹添加到您的 pushservice target 之中。
270
270
 
271
- 4. 在 Notification Service Extension 的 -didReceiveNotificationRequest:withContentHandler: 方法中调用推送抵达率统计函数:
271
+ 4. 在 Notification Service Extension 的 -didReceiveNotificationRequest:withContentHandler: 方法中调用推送抵达率统计函数:
272
272
 
273
273
  ``` objectivec
274
274
  @implementation NotificationService
@@ -79,7 +79,7 @@ fun createAndJoinRoom() {
79
79
  | --- | --- | --- | --- |
80
80
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
81
81
  | <code>roomType</code> | <code>RoomType</code> | 是 | 房间类型<br>- <code>STANDARD</code>:标准房间(默认值)。<br>- <code>WEBINAR</code>:大型研讨会房间。<br>多人会议场景这里填写 <code>STANDARD</code> 房间类型。 |
82
- | <code>options</code> | <code>CreateRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法
82
+ | <code>options</code> | <code>CreateRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">CreateRoomOptions 结构体详细说明</a> |
83
83
  | <code>completion</code> | <code>CompletionHandler</code> | 否 | 操作完成回调,用于返回创建和加入房间的结果。若创建失败则会返回错误码和错误信息。 |
84
84
 
85
85
  ##### CreateRoomOptions 结构体详细说明
@@ -225,8 +225,8 @@ fun updateRoomInfo() {
225
225
  | 参数名 | 类型 | 必填 | 说明 |
226
226
  | --- | --- | --- | --- |
227
227
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
228
- | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法
229
- | <code>modifyFlagList</code> | <code>List<UpdateRoomOptions.ModifyFlag></code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法。 |
228
+ | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法请参考:<a href="#UpdateRoomOptionsStruct">UpdateRoomOptions 结构体详细说明</a> |
229
+ | <code>modifyFlagList</code> | <code>List<UpdateRoomOptions.ModifyFlag></code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法请参考:<a href="#UpdateRoomOptions.ModifyFlag">UpdateRoomOptions.ModifyFlag 详细说明</a>。 |
230
230
  | <code>completion</code> | <code>CompletionHandler</code> | 否 | 操作完成回调,用于返回更新房间信息的结果。若更新失败则会返回错误码和错误信息。 |
231
231
 
232
232
  **UpdateRoomOptions 结构体详细说明**
@@ -346,11 +346,11 @@ private fun subscribeCurrentRoomState() {
346
346
 
347
347
  - **更新机制与频率控制:**
348
348
 
349
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
349
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
350
350
 
351
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
351
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
352
352
 
353
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
353
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
354
354
 
355
355
  **这对开发者意味着什么?**
356
356
 
@@ -31,11 +31,11 @@
31
31
  #### **1. 预定房间**
32
32
 
33
33
  ##### 实现方式:
34
- 1. **配置预定房间初始化参数:**初始化`ScheduleRoomOptions`预定房间配置项设置房间命名,房间密码、开始时间、结束时间、参与者、房间信息等。
34
+ 1. **配置预定房间初始化参数:**初始化`ScheduleRoomOptions`预定房间配置项设置房间命名,房间密码、开始时间、结束时间、参与者、房间信息等。
35
35
 
36
- 2. **房间权限预设:**设置房间内全场成员权限,例如全体静音,全体禁画等。
36
+ 2. **房间权限预设:**设置房间内全场成员权限,例如全体静音,全体禁画等。
37
37
 
38
- 3. **预定房间:**调用`RoomStore`的`scheduleRoom`接口执行核心操作。
38
+ 3. **预定房间:**调用`RoomStore`的`scheduleRoom`接口执行核心操作。
39
39
 
40
40
  ##### 示例代码:
41
41
  ``` java
@@ -78,7 +78,7 @@ fun scheduleRoom() {
78
78
  | 参数名 | 类型 | 必填 | 说明 |
79
79
  | --- | --- | --- | --- |
80
80
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
81
- | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法。 |
81
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | - 创建房间配置对象。<br>- 详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a>。 |
82
82
  | <code>completion</code> | <code>CompletionHandler</code> | 否 | 操作完成回调,用于返回预定房间的结果。若预定失败则会返回错误码和错误信息。 |
83
83
 
84
84
  ##### ScheduleRoomOptions 结构体详细说明
@@ -89,7 +89,7 @@ fun scheduleRoom() {
89
89
  | <code>scheduleStartTime</code> | <code>Long</code> | 是 | - 预定的房间开始时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于当前时间。<br>- 推荐设置为未来的整分时间。例如:1736164800(代表 2025-01-06 20:00:00)。 |
90
90
  | <code>scheduleEndTime</code> | <code>Long</code> | 是 | - 预定的房间结束时间(Unix 时间戳,单位:秒)。<br>- 取值必须大于 <code>scheduleStartTime</code>。<br>- 建议根据预期时长设置。例如:<code>scheduleStartTime</code> + 3600(预定 1 小时时长的房间)。 |
91
91
  | <code>reminderSecondsBeforeStart</code> | <code>Int</code> | 否 | - 房间开始前的提醒时间(单位:秒)。用于系统触发开始提醒。<br>- 推荐设置为 300(5分钟)或 900(15分钟),用于在 App 端触发本地通知。 |
92
- | <code>scheduleAttendees</code> | <code>List<String></code> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预定邀请。<br>- 获取方式。 |
92
+ | <code>scheduleAttendees</code> | <code>List<String></code> | 否 | - 预定参与者的用户 ID 列表,在预定房间时设置,系统将向这些用户发送预定邀请。<br>- 获取方式请参考 <a href="#88039583-8ee8-4662-bf73-d71c3af652fe">获取指定预定房间的参与成员列表</a>。 |
93
93
  | <code>isAllMicrophoneDisabled</code> | <code>Boolean</code> | 否 | 是否全员禁止打开麦克风。开启后,除房主/管理员外,普通参与者默认禁止打开麦克风。<br>- true : 禁止。<br>- false :取消禁止 (默认值)。 |
94
94
  | <code>isAllCameraDisabled</code> | <code>Boolean</code> | 否 | 是否全员禁止打开摄像头。开启后,除房主/管理员外,普通参与者默认禁止打开摄像头。<br>- true : 禁止。<br>- false :取消禁止(默认值)。 |
95
95
  | <code>isAllScreenShareDisabled</code> | <code>Boolean</code> | 否 | 是否全员禁止发起屏幕共享。开启后,仅房主/管理员可进行屏幕共享。<br>- true : 禁止。<br>- false :取消禁止(默认值)。 |
@@ -159,8 +159,8 @@ fun updateScheduledRoom() {
159
159
  | 参数名 | 类型 | 必填 | 说明 |
160
160
  | --- | --- | --- | --- |
161
161
  | <code>roomID</code> | <code>String</code> | 是 | 字符串类型的房间唯一标识符。<br>限制长度为 0-48 字节。<br>建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
162
- | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | 预定房间配置对象。<br>详细用法。 |
163
- | <code>modifyFlagList</code> | <code>List<ScheduleRoomOptions.ModifyFlag></code> | 是 | 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>详细用法。 |
162
+ | <code>options</code> | <code>ScheduleRoomOptions</code> | 是 | 预定房间配置对象。<br>详细用法请参考:<a href="#a065626d-21a2-476e-bbaf-65bca29b44d2">ScheduleRoomOptions 结构体详细说明</a>。 |
163
+ | <code>modifyFlagList</code> | <code>List<ScheduleRoomOptions.ModifyFlag></code> | 是 | 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>开始时间</strong>、<strong>结束时间。</strong><br>详细用法请参考:<a href="#ScheduleRoomOptions.ModifyFlag">ScheduleRoomOptions.ModifyFlag 详细说明</a>。 |
164
164
  | <code>completion</code> | <code>CompletionHandler</code> | 否 | 操作完成回调,用于返回更新预定房间的结果。若更新失败则会返回错误码和错误信息。 |
165
165
 
166
166
  **ScheduleRoomOptions.ModifyFlag 详细说明**
@@ -320,17 +320,17 @@ private fun subscribeParticipantState() {
320
320
  如果您在预定房间后未收到即将开始的事件通知,请按照以下两个核心要点进行检查:
321
321
  1. **检查提醒参数配置** (`reminderSecondsBeforeStart`)
322
322
 
323
- - 触发机制:`onScheduledRoomStartingSoon` 事件的触发高度依赖于预定配置类 `ScheduleRoomOptions` 中的 `reminderSecondsBeforeStart` 属性。
323
+ - 触发机制:`onScheduledRoomStartingSoon` 事件的触发高度依赖于预定配置类 `ScheduleRoomOptions` 中的 `reminderSecondsBeforeStart` 属性。
324
324
 
325
- - 默认行为:该属性的默认值为 0,代表“不开启提醒”。
325
+ - 默认行为:该属性的默认值为 0,代表“不开启提醒”。
326
326
 
327
- - 解决建议:请确保在预定房间时明确设置该参数。该参数单位为**秒**,表示在房间开始前多少秒推送事件通知。
327
+ - 解决建议:请确保在预定房间时明确设置该参数。该参数单位为**秒**,表示在房间开始前多少秒推送事件通知。
328
328
 
329
329
  2. **验证预定时间逻辑**
330
330
 
331
- - 计算公式:系统触发提醒的前提是:预定开始时间 (`scheduleStartTime`) - 当前时间 > 提醒偏移量 (`reminderSecondsBeforeStart`)。
331
+ - 计算公式:系统触发提醒的前提是:预定开始时间 (`scheduleStartTime`) - 当前时间 > 提醒偏移量 (`reminderSecondsBeforeStart`)。
332
332
 
333
- - 场景说明:如果您的房间开始时间设置得过近(例如 5 分钟后开始),而提醒时间设置得过大(例如设置 10 分钟前提醒),系统将无法捕捉到触发时机,从而导致事件丢失。
333
+ - 场景说明:如果您的房间开始时间设置得过近(例如 5 分钟后开始),而提醒时间设置得过大(例如设置 10 分钟前提醒),系统将无法捕捉到触发时机,从而导致事件丢失。
334
334
 
335
- - 解决建议:请确保预定的开始时间距离当前时刻,大于您所设置的提醒秒数。
335
+ - 解决建议:请确保预定的开始时间距离当前时刻,大于您所设置的提醒秒数。
336
336
 
@@ -205,8 +205,8 @@ Future<void> updateRoomInfo() async {
205
205
  | 参数名 | 类型 | 必填 | 说明 |
206
206
  | --- | --- | --- | --- |
207
207
  | <code>roomID</code> | <code>String</code> | 是 | - 字符串类型的房间唯一标识符。<br>- 限制长度为 0-48 字节。<br>- 建议仅包含数字、英文字母(区分大小写)、下划线(_)和连字符(-)。避免使用空格和中文字符。 |
208
- | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法
209
- | <code>modifyFlag</code> | <code>UpdateRoomOptionsModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法。 |
208
+ | <code>options</code> | <code>UpdateRoomOptions</code> | 是 | - 更新房间属性配置对象。<br>- 详细用法请参考:<a href="#UpdateRoomOptionsStruct">UpdateRoomOptions 结构体详细说明</a> |
209
+ | <code>modifyFlag</code> | <code>UpdateRoomOptionsModifyFlag</code> | 是 | - 更新房间属性修改标志位。目前支持更新<strong>房间名称</strong>、<strong>房间密码</strong>。<br>- 详细用法请参考:<a href="#UpdateRoomOptions.ModifyFlag">UpdateRoomOptionsModifyFlag 详细说明</a>。 |
210
210
 
211
211
  **UpdateRoomOptions 结构体详细说明**
212
212
  | 参数名 | 类型 | 必填 | 说明 |
@@ -312,11 +312,11 @@ ValueListenableBuilder(
312
312
 
313
313
  - **更新机制与频率控制:**
314
314
 
315
- - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
315
+ - 无论是即时触发还是延迟触发,所有的人数变更通知都是以消息的形式在房间内广播的。
316
316
 
317
- - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
317
+ - 房间内每秒的消息总量有上限,单房间消息频控是**每秒 40 条消息**。
318
318
 
319
- - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
319
+ - **关键点:**在“弹幕风暴”消息流量极高的场景下,如果房间内的消息速率超过了 40条/秒 的阈值,为了保证核心消息(例如弹幕)的送达,**人数变更的消息可能会被频控策略丢弃**。
320
320
 
321
321
  **这对开发者意味着什么?**
322
322