@tencentcloud/sdk-mcp 1.7.1 → 1.7.3

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 (44) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +13 -5
  3. package/knowledge/bm25.js +20 -11
  4. package/knowledge/search/generic-rerank.js +123 -0
  5. package/knowledge/search/search-pass.js +8 -1
  6. package/package.json +1 -1
  7. package/resource/_schema/query-normalization.yaml +6 -0
  8. package/resource/index/manifest.json +1 -1
  9. package/resource/integration/chat/preset/android/integration.md +33 -29
  10. package/resource/integration/chat/preset/flutter/integration.md +93 -92
  11. package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +1 -1
  12. package/resource/knowledge/chat/best-practice/common/web-sdk-log-level.md +76 -0
  13. package/resource/knowledge/chat/best-practice/miniprogram/desktop-wechat-miniprogram-error.md +79 -0
  14. package/resource/knowledge/chat/best-practice/miniprogram/login-timeout-2801-diagnosis.md +1 -1
  15. package/resource/knowledge/chat/preset/android-view/integration.md +37 -29
  16. package/resource/knowledge/push/config/android/fcm.md +2 -6
  17. package/resource/knowledge/push/integration/android.md +777 -425
  18. package/resource/knowledge/push/integration/donut.md +54 -71
  19. package/resource/knowledge/push/integration/flutter.md +194 -63
  20. package/resource/knowledge/push/integration/harmonyos.md +7 -2
  21. package/resource/knowledge/push/integration/ios.md +23 -93
  22. package/resource/knowledge/push/integration/react-native.md +2 -1
  23. package/resource/knowledge/push/integration/uni-app.md +28 -106
  24. package/resource/knowledge/push/integration/unity.md +2 -1
  25. package/resource/knowledge/push/integration/unreal-engine.md +2 -1
  26. package/resource/knowledge/roomkit/best-practice/vue/screen-share-auto-stop-on-leave.md +62 -0
  27. package/resource/knowledge/roomkit/core-sdk/react/network-proxy.md +84 -0
  28. package/resource/knowledge/roomkit/core-sdk/vue/network-proxy.md +84 -0
  29. package/resource/knowledge/roomkit/core-sdk/vue/recording.md +245 -0
  30. package/resource/knowledge/roomkit/core-sdk/vue/whiteboard-annotation.md +196 -0
  31. package/resource/knowledge/roomkit/faq/error-code.md +103 -0
  32. package/resource/knowledge/roomkit/preset/harmonyos/integration.md +461 -0
  33. package/resource/knowledge/roomkit/preset/react/features/network-proxy.md +80 -0
  34. package/resource/knowledge/roomkit/preset/uniapp-app/integration.md +581 -0
  35. package/resource/knowledge/roomkit/preset/vue/features/ai-caption-translation.md +69 -0
  36. package/resource/knowledge/roomkit/preset/vue/features/ai-denoiser.md +67 -0
  37. package/resource/knowledge/roomkit/preset/vue/features/network-proxy.md +80 -0
  38. package/resource/knowledge/roomkit/preset/vue/features/recording.md +85 -0
  39. package/resource/knowledge/roomkit/preset/vue/features/whiteboard-annotation.md +86 -0
  40. package/server.js +1 -1
  41. package/tools/common/search_trtc_knowledge.js +2 -0
  42. package/utils/preflight-route.js +18 -6
  43. package/utils/report-cls-client.js +1 -1
  44. package/utils/report-es-client.js +1 -1
@@ -7,27 +7,23 @@
7
7
 
8
8
  ## 操作步骤
9
9
 
10
- ### 步骤1: 推送插件配置
10
+ ### 步骤1:配置微信消息推送插件
11
11
 
12
12
  > **说明:**
13
13
  > 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 中开启推送服务,默认支持在线推送。
14
14
  >
15
15
 
16
16
  【Android】
17
-
18
- #### 插件配置
19
17
  1. 在可视化界面配置填写插件版本号,勾选开启腾讯云消息推送功能,请查看 [更新日志](https://cloud.tencent.com/document/product/269/114293) 获取插件最新版本号**。**
20
18
 
21
19
  2. 设置 Android SDK 版本。推送服务所需的微信小程序多端框架 Android SDK 最低版本为 1.4.7,推荐使用 [最新版本](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/changelog/android/changelog.html)。
22
20
 
23
21
  【iOS】
24
-
25
- #### 插件配置
26
22
  1. 在可视化界面配置填写插件版本号,勾选开启腾讯云消息推送功能,请查看 [更新日志](https://cloud.tencent.com/document/product/269/114293) 获取插件最新版本号。
27
23
 
28
24
  2. 设置 iOS SDK 版本。推送服务所需的微信小程序多端框架 iOS SDK 版本号为 `1.4.15` , 推荐使用 [最新的 SDK](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/changelog/ios/changelog.html)。
29
25
 
30
- ### 步骤2: 离线推送配置
26
+ ### 步骤2:配置离线推送厂商
31
27
 
32
28
  > **说明:**
33
29
  > 如果只使用在线推送,则无需进行厂商离线推送配置。
@@ -35,8 +31,6 @@
35
31
 
36
32
  【Android】
37
33
 
38
- #### 离线推送配置
39
-
40
34
  可参见微信小程序多端框架官方文档 [Android 配置原生资源](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/handbook/devtools/android-native-resource.html)。
41
35
  1. 配置 timpush-configs.json。
42
36
 
@@ -63,8 +57,6 @@
63
57
  厂商推送都有消息分类机制,不同类型也会有不同的推送策略。需正确 [配置推送消息分类](https://cloud.tencent.com/document/product/269/100649) 才能正常收到离线推送。
64
58
 
65
59
  【iOS】
66
-
67
- #### 离线推送配置
68
60
  1. 配置证书和描述文件。
69
61
 
70
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,这些文件将在后续配置中使用。您需要准备以下文件:
@@ -132,9 +124,7 @@
132
124
  > - TIMPushAppGroupID,当您需要使用 TIMPush 组件统计推送抵达率时,推荐您按照配置文档配置。
133
125
  > - 请您按照情况填写。
134
126
 
135
- ## 推送服务使用
136
-
137
- ### 集成 JS API
127
+ ### 步骤3:集成 Push SDK
138
128
 
139
129
  > **说明:**
140
130
  > 如何使用 npm 请查阅[官方文档](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html),此处不再赘述。
@@ -147,62 +137,44 @@
147
137
  ```
148
138
  2. 在微信开发者工具中构建 npm(**微信开发者工具** > **工具** > **构建 npm**)
149
139
 
150
- ### 使用方法
151
-
152
- ``` javascript
153
- import Push from "@tencentcloud/donut-push"
154
- const sdkAppID = 0; // 您的 SDKAppID
155
- const appKey = ''; // 客户端密钥
156
- const registrationID = ""; //用户的 registrationID
157
- const listener = (param) => {
158
- console.log('onEvent', JSON.stringify(param));
159
- }
160
- App({
161
- onLaunch: function () {
162
- // 请确保在调用 registerPush 方法之前设置好registrationID。
163
- // 如果您卸载并重新安装应用,registrationID 会发生改变。
164
- Push.setRegistrationID(registrationID)
165
- .then((res) => {
166
- console.info("setRegistrationID", JSON.stringify(res));
167
- return Push.registerPush(sdkAppID, appKey);
168
- }).then((res) => {
169
- console.info("registerPush", JSON.stringify(res));
170
- return Push.getRegistrationID();
171
- }).then((res) => {
172
- console.info("getRegistrationID", JSON.stringify(res));
173
- })
174
- .catch((res) => {
175
- console.error("registerPush failed", JSON.stringify(res));
176
- });
177
- // 监听在线推送
178
- Push.addPushListener(Push.EventName.NOTIFICATION_CLICKED, listener);
179
- }
180
- })
181
- ```
182
-
183
- ## 体验您的第一次推送
184
-
185
- 在测试推送前,请务必打开通知和状态栏。进入 [推送服务 Push > 接入测试](https://console.cloud.tencent.com/im/push-plugin-push-check) 发送您的第一条推送。
186
-
187
- ## 推送结果回调
188
-
189
- 开启推送服务后,推送结果可以通过配置基础回调的方式,将结果转发给 App 后台,详细可参见:
190
- - [普通推送结果回调](https://cloud.tencent.com/document/product/269/102567)
191
-
192
- - [全员推送结果回调](https://cloud.tencent.com/document/product/269/102568)
193
-
194
- ## 设备通知栏设置
195
-
196
- 推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
197
- - “**手机设置** > **通知** > **锁屏通知** > **隐藏或者不显示通知**”,会影响锁屏状态下推送通知显示。
198
-
199
- - “**手机设置** > **通知** > **更多通知设置** > **状态栏显示通知图标**”,会影响状态栏下推送通知的图标显示。
140
+ 示例代码如下:
141
+
142
+ ``` javascript
143
+ import Push from "@tencentcloud/donut-push"
144
+ const sdkAppID = 0; // 您的 SDKAppID
145
+ const appKey = ''; // 客户端密钥
146
+ const registrationID = ""; //用户的 registrationID
147
+ const listener = (param) => {
148
+ console.log('onEvent', JSON.stringify(param));
149
+ }
150
+ App({
151
+ onLaunch: function () {
152
+ // 请确保在调用 registerPush 方法之前设置好registrationID。
153
+ // 如果您卸载并重新安装应用,registrationID 会发生改变。
154
+ Push.setRegistrationID(registrationID)
155
+ .then((res) => {
156
+ console.info("setRegistrationID", JSON.stringify(res));
157
+ return Push.registerPush(sdkAppID, appKey);
158
+ }).then((res) => {
159
+ console.info("registerPush", JSON.stringify(res));
160
+ return Push.getRegistrationID();
161
+ }).then((res) => {
162
+ console.info("getRegistrationID", JSON.stringify(res));
163
+ })
164
+ .catch((res) => {
165
+ console.error("registerPush failed", JSON.stringify(res));
166
+ });
167
+ // 监听在线推送
168
+ Push.addPushListener(Push.EventName.NOTIFICATION_CLICKED, listener);
169
+ }
170
+ })
171
+ ```
200
172
 
201
- - “**手机设置** > **通知** > **应用的通知管理** > **允许通知**”,打开关闭会直接影响推送通知显示。
173
+ ### 步骤4:测试推送链路
202
174
 
203
- - “**手机设置** > **通知** > **应用的通知管理** > **通知铃声**” 和 “**手机设置** > **通知** > **应用的通知管理** > **静默通知**”,会影响推送通知铃音的效果。
175
+ 在测试推送前,请务必打开通知和状态栏。进入 [推送服务 Push > 接入测试](https://console.cloud.tencent.com/im/push-plugin-push-check) 发送您的第一条推送。
204
176
 
205
- ## 厂商推送限制
177
+ ### 步骤5:检查厂商推送限制
206
178
  1. 国内厂商都有消息分类机制,不同类型也会有不同的推送策略。如果想要推送及时可靠,需要按照厂商规则设置自己应用的推送类型为高优先级的系统消息类型或者重要消息类型。反之,推送消息会受厂商推送消息分类影响,与预期会有差异。
207
179
 
208
180
  2. 另外,一些厂商对于应用每天的推送数量也是有限制的,可以在厂商控制台查看应用每日限制的推送数量。 如果推送消息出现推送不及时或者偶尔收不到情况,需要考虑下这里:
@@ -234,12 +206,23 @@ App({
234
206
 
235
207
  推送上行消息频率有限制。 具体请参见[厂商描述](https://firebase.google.com/docs/cloud-messaging/throttling-and-quotas)。
236
208
 
237
- ## 常见问题
209
+ ## 推送结果回调
210
+
211
+ 开启推送服务后,推送结果可以通过配置基础回调的方式,将结果转发给 App 后台,详细可参见:
212
+ - [普通推送结果回调](https://cloud.tencent.com/document/product/269/102567)
213
+
214
+ - [全员推送结果回调](https://cloud.tencent.com/document/product/269/102568)
215
+
216
+ ## 设备通知栏设置
217
+
218
+ 推送的直观表现就是通知栏提示,所以同其他通知一样受设备通知相关设置的影响,以华为为例:
219
+ - “**手机设置** > **通知** > **锁屏通知** > **隐藏或者不显示通知**”,会影响锁屏状态下推送通知显示。
238
220
 
239
- ### **为什么在开发者工具上清了缓存但是构建时还是用的原来的基座 App**
221
+ - “**手机设置** > **通知** > **更多通知设置** > **状态栏显示通知图标**”,会影响状态栏下推送通知的图标显示。
240
222
 
241
- 需要修改 project.miniapp.json 文件才能重新构建远程基座 App,改一下应用的 version code 再进行构建即可。
223
+ - “**手机设置** > **通知** > **应用的通知管理** > **允许通知**”,打开关闭会直接影响推送通知显示。
224
+
225
+ - “**手机设置** > **通知** > **应用的通知管理** > **通知铃声**” 和 “**手机设置** > **通知** > **应用的通知管理** > **静默通知**”,会影响推送通知铃音的效果。
242
226
 
243
- ### **iOS 在控制台上测试工具显示“上传 token 无效,请检查”,怎么办?**
227
+ ## 接入排查
244
228
 
245
- 需要您检查下上传的 p12证书是否为推送证书、且 Bundle ID 应该是与主 App 一致。
@@ -1,58 +1,154 @@
1
+ 本文将介绍如何在 Flutter 工程中集成 TIMPush。
2
+
1
3
  ## 前提条件
2
4
 
3
- 开始接入前,请先完成对应原生平台的推送前提配置:请参见 [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
+ 开始接入前,请先完成目标平台的推送前提配置,并准备好注册所需参数。按平台查看:
6
+
7
+ 【Android】
8
+
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 前提条件。
20
+
21
+ 【iOS】
22
+
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` 传入|
30
+
31
+ 完整资源清单见 iOS 前提条件。
32
+
33
+ 本文示例中的 `VERSION`、`SDKAppID`、`AppKey`、证书 ID、App Group ID 均为占位符,请勿在代码仓库中提交真实密钥。
4
34
 
5
35
  ## AI 集成
6
36
 
7
- 通过 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 将根据项目类型引导你完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。
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。
8
38
 
9
- > **注意:**
10
- > 使用 Push Skill AI 集成不是全自动流程,依然需要开发者在厂商配置控制台、腾讯云控制台等配置 Push 相关信息。具体的配置方法请参考下文相关章节。
11
- >
39
+ ## 手动集成
12
40
 
13
- ## 集成 TIMPush
41
+ ### 步骤1:集成 TIMPush SDK
14
42
 
15
- 如果你想手动集成,请按顺序完成下文配置。
43
+ 如果你想手动集成,请按顺序完成下述步骤。
16
44
 
17
- Flutter 工程需要先引入推送插件,您可以在 `pubspec.yaml` 中添加依赖,也可以执行以下命令自动安装:
45
+ #### 集成 Flutter 插件
46
+
47
+ Flutter 工程需要先引入推送插件。您可以在 `pubspec.yaml` 中添加依赖,也可以执行以下命令自动安装:
18
48
  ``` bash
19
49
  flutter pub add tencent_cloud_chat_push
20
50
  ```
21
51
 
22
- 完成 Flutter 插件集成后,还需要继续完成对应原生平台侧配置。
52
+ #### 配置原生工程
53
+
54
+ 完成 Flutter 插件集成后,继续完成对应原生平台配置。
55
+
56
+ 【Android】
23
57
 
24
- Android 端请参考 [Android 集成 TIMPush](https://cloud.tencent.com/document/product/269/100626#.E9.9B.86.E6.88.90-timpush) 章节,完成各项配置;其中“集成 TIMPush 依赖”步骤与原生 Android 工程不同,请按下方 Flutter 方式处理。
58
+ 请先按 Android TIMPush 公共集成 和 Android 厂商通道集成 完成原生工程配置。
25
59
 
26
- 在 `android/app/build.gradle` 或 `android/app/build.gradle.kts` 按需引入目标厂商的 TIMPush 通道包。只有引入对应厂商包,才能启用该厂商的原生推送能力。`VERSION` 请前往 [更新日志](https://cloud.tencent.com/document/product/269/1606) 获取并替换为实际版本号。
60
+ 与原生 Android 的差异如下,请按下方完成:
61
+ 1. **厂商通道包**:Flutter 插件已处理 TIMPush 基础依赖,**不要**再添加 `com.tencent.timpush:timpush` / `tuicore`。只需按需引入目标厂商通道包。
62
+
63
+ 2. **自定义 Application**:必须继承 `TencentCloudChatPushApplication`。
64
+
65
+ 在 `android/app/build.gradle` 或 `android/app/build.gradle.kts` 按需引入目标厂商的 TIMPush 通道包。只有引入对应厂商包,才能启用该厂商的原生推送能力。`VERSION` 请前往 更新日志 获取并替换为实际版本号。
66
+
67
+ 【小米】
27
68
 
28
69
  【Groovy DSL】
29
70
  ``` bash
30
- dependencies {
31
- implementation 'com.tencent.timpush:huawei:VERSION'
32
- implementation 'com.tencent.timpush:xiaomi:VERSION'
33
- implementation 'com.tencent.timpush:oppo:VERSION'
34
- implementation 'com.tencent.timpush:vivo:VERSION'
35
- implementation 'com.tencent.timpush:honor:VERSION'
36
- implementation 'com.tencent.timpush:meizu:VERSION'
37
- implementation 'com.tencent.timpush:fcm:VERSION'
38
- }
71
+ implementation 'com.tencent.timpush:xiaomi:VERSION'
39
72
  ```
40
73
 
41
74
  【Kotlin DSL】
42
75
  ``` bash
43
- dependencies {
44
- implementation("com.tencent.timpush:huawei:VERSION")
45
- implementation("com.tencent.timpush:xiaomi:VERSION")
46
- implementation("com.tencent.timpush:oppo:VERSION")
47
- implementation("com.tencent.timpush:vivo:VERSION")
48
- implementation("com.tencent.timpush:honor:VERSION")
49
- implementation("com.tencent.timpush:meizu:VERSION")
50
- implementation("com.tencent.timpush:fcm:VERSION")
51
- }
76
+ implementation("com.tencent.timpush:xiaomi:VERSION")
77
+ ```
78
+
79
+ 【华为】
52
80
 
81
+ 【Groovy DSL】
82
+ ``` bash
83
+ implementation 'com.tencent.timpush:huawei:VERSION'
84
+ ```
85
+
86
+ 【Kotlin DSL】
87
+ ``` bash
88
+ implementation("com.tencent.timpush:huawei:VERSION")
53
89
  ```
54
90
 
55
- Android 端还需要创建或复用自定义 `Application` 类,并继承 `TencentCloudChatPushApplication`。如果工程中已存在自定义 `Application`,直接改为继承该类,并确保 `onCreate`() 中调用 `super.onCreate()`。
91
+ 【OPPO】
92
+
93
+ 【Groovy DSL】
94
+ ``` bash
95
+ implementation 'com.tencent.timpush:oppo:VERSION'
96
+ ```
97
+
98
+ 【Kotlin DSL】
99
+ ``` bash
100
+ implementation("com.tencent.timpush:oppo:VERSION")
101
+ ```
102
+
103
+ 【vivo】
104
+
105
+ 【Groovy DSL】
106
+ ``` bash
107
+ implementation 'com.tencent.timpush:vivo:VERSION'
108
+ ```
109
+
110
+ 【Kotlin DSL】
111
+ ``` bash
112
+ implementation("com.tencent.timpush:vivo:VERSION")
113
+ ```
114
+
115
+ 【荣耀】
116
+
117
+ 【Groovy DSL】
118
+ ``` bash
119
+ implementation 'com.tencent.timpush:honor:VERSION'
120
+ ```
121
+
122
+ 【Kotlin DSL】
123
+ ``` bash
124
+ implementation("com.tencent.timpush:honor:VERSION")
125
+ ```
126
+
127
+ 【魅族】
128
+
129
+ 【Groovy DSL】
130
+ ``` bash
131
+ implementation 'com.tencent.timpush:meizu:VERSION'
132
+ ```
133
+
134
+ 【Kotlin DSL】
135
+ ``` bash
136
+ implementation("com.tencent.timpush:meizu:VERSION")
137
+ ```
138
+
139
+ 【Google FCM】
140
+
141
+ 【Groovy DSL】
142
+ ``` bash
143
+ implementation 'com.tencent.timpush:fcm:VERSION'
144
+ ```
145
+
146
+ 【Kotlin DSL】
147
+ ``` bash
148
+ implementation("com.tencent.timpush:fcm:VERSION")
149
+ ```
150
+
151
+ Android 端还需要创建或复用自定义 `Application` 类,并继承 `TencentCloudChatPushApplication`。如果工程中已存在自定义 `Application`,直接改为继承该类,并确保 `onCreate()` 中调用 `super.onCreate()`。
56
152
  ``` java
57
153
  package com.example.pushdemo
58
154
 
@@ -73,7 +169,9 @@ class MyApplication : TencentCloudChatPushApplication() {
73
169
  </application>
74
170
  ```
75
171
 
76
- iOS 端不需要执行原生 iOS 文档中“主 App target 集成”步骤,Flutter 插件会处理相关依赖。您只需要在 `ios/Runner/AppDelegate.swift` 中补充 TIMPush 相关配置,用于返回推送证书 ID、App Group ID,以及转发离线推送点击事件。
172
+ 【iOS】
173
+
174
+ Flutter 插件会处理 TIMPush 相关依赖,**不需要**执行原生 iOS 文档中“主 App target 集成”步骤。您只需要在 `ios/Runner/AppDelegate.swift` 中补充 TIMPush 相关配置,用于返回推送证书 ID、App Group ID,以及转发离线推送点击事件。证书 ID 与 App Group ID 由 `registerPush` 传入,再经下列桥接方法返回给 TIMPush。
77
175
  ``` swift
78
176
  import UIKit
79
177
  import Flutter
@@ -111,11 +209,23 @@ import tencent_cloud_chat_push
111
209
  }
112
210
  ```
113
211
 
114
- ## 注册推送
212
+ ### 步骤2:注册推送服务
115
213
 
116
- [registerPush](https://cloud.tencent.com/document/product/269/101962#3aab298e-7d51-4b17-ac24-8dd6b2d30e01) 用于注册当前设备的推送 token。注册时机、参数含义和不同接入场景的说明,请参考 [Android 注册推送](https://cloud.tencent.com/document/product/269/100626#.E6.B3.A8.E5.86.8C.E6.8E.A8.E9.80.81) 和 [iOS 注册推送](https://cloud.tencent.com/document/product/269/100627#50e75789-9e42-43b1-b9d1-7cf0dd15b930) 章节。
214
+ registerPush 用于向 TIMPush 注册当前设备的推送 token。注册成功后,TIMPush 会为当前设备建立一个推送目标标识 `registrationID`;服务端、控制台接入测试和排查工具可以使用该标识向这台设备下发离线推送。若 App 同时接入 IM 并完成登录,也可以使用 `userID` 向该用户已建立推送关系的设备下发离线推送。
117
215
 
118
- **请注意,不要在 Flutter 程序入口的** `main` **方法中调用。**建议在用户同意隐私政策后,并在业务侧合适时机调用。
216
+ `appKey` 的取值会影响注册方式和可用的推送标识:
217
+ - `appKey = Push Key`:注册 TIMPush 独立推送能力。Push Key 客户端密钥。
218
+
219
+ - `appKey = null`:复用 IM 登录态注册推送,必须在 IM `login` 成功后调用。
220
+
221
+ 请先根据业务场景确认调用顺序。注册时机、参数含义和不同接入场景的说明,也可参考 Android 注册推送 和 iOS 注册推送。
222
+
223
+ > **注意:**
224
+ >
225
+ > - 如果用户退出 IM SDK,同时集成了 IM SDK + TIMPush 的场景下已建立的 `userID` 与 `registrationID` 推送关系都会失效,需要重新完成对应注册。
226
+ > - Chat 应用的密钥仅用于 IM 登录,不能作为 `registerPush` 的 `appKey`。
227
+
228
+ **请注意,不要在 Flutter 程序入口的** `main` **方法中调用。**建议在用户同意隐私政策后,并在业务侧合适时机调用。
119
229
 
120
230
  【App 冷启动注册 TIMPush(appKey 传 Push Key)】
121
231
  ``` javascript
@@ -206,17 +316,52 @@ Future<void> loginIMAndRegisterPush() async {
206
316
  }
207
317
  ```
208
318
 
209
- ## 配置消息触达统计(可选)
319
+ > **警告:**
320
+ >
321
+ > 如果您的业务仅使用即时通信 IM 聊天能力,请勿在 IM 登录前先调用 `registerPush`。否则 SDK 可能会按独立推送场景注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,可能会产生额外费用。
322
+ >
323
+
324
+ ### 步骤3:配置消息触达统计(可选)
325
+
326
+ 触达统计主要涉及厂商控制台、回执地址、APNs Notification Service Extension、App Group 等平台专属配置。按平台完成:
210
327
 
211
- 触达统计主要涉及厂商控制台、回执地址、APNs Notification Service Extension、App Group 等平台专属配置,请参考 [Android 配置消息触达统计](https://cloud.tencent.com/document/product/269/100626#.E9.85.8D.E7.BD.AE.E6.B6.88.E6.81.AF.E8.A7.A6.E8.BE.BE.E7.BB.9F.E8.AE.A1.EF.BC.88.E5.8F.AF.E9.80.89.EF.BC.89) 和 [iOS 配置消息触达统计](https://cloud.tencent.com/document/product/269/100627#.E9.85.8D.E7.BD.AE.E6.B6.88.E6.81.AF.E8.A7.A6.E8.BE.BE.E7.BB.9F.E8.AE.A1.EF.BC.88.E5.8F.AF.E9.80.89.EF.BC.89) 文档。
328
+ 【Android】
212
329
 
213
- iOS 如需统计推送触达数据,请在 `registerPush` 时传入 `applicationGroupID`,并确认 `ios/Runner/AppDelegate.swift` 中已实现 `applicationGroupID()`。
330
+ 请按 Android 厂商通道集成 中对应厂商 Tab 的触达统计说明完成配置。Flutter 侧无额外 Dart 代码。
214
331
 
215
- ## 测试推送
332
+ 【iOS】
333
+
334
+ 请按 iOS 配置消息触达统计 完成 Notification Service Extension、`mutable-content` 与 App Group 等配置。
335
+
336
+ Flutter 额外确认两点:
337
+ 1. 调用 `registerPush` 时传入 `applicationGroupID`。
338
+
339
+ 2. `ios/Runner/AppDelegate.swift` 中已实现 `applicationGroupID()`。
340
+
341
+ ### 步骤4:测试推送链路
342
+
343
+ 完成上述集成步骤后,需要通过发送测试消息验证链路是否打通。
216
344
 
217
345
  运行 App 后,过滤 `TIMPush` 关键字查看注册日志。注册成功后,调用 `getRegistrationID()` 获取当前设备推送标识。控制台或服务端发送测试消息时,可使用该值定位设备。
218
346
 
219
- 测试流程请参考 [Android 测试推送](https://cloud.tencent.com/document/product/269/100626#.E6.B5.8B.E8.AF.95.E6.8E.A8.E9.80.81) 和 [iOS 测试推送](https://cloud.tencent.com/document/product/269/100627#.E6.B5.8B.E8.AF.95.E6.8E.A8.E9.80.81) 文档。仅集成 TIMPush 的用户,建议优先使用腾讯云控制台接入测试能力验证离线推送。
347
+ 发送消息前请确认:
348
+ 1. App 已获得系统通知权限(含横幅、锁屏、声音等开关)。
349
+
350
+ 2. App 已置于后台或杀掉进程(前台时离线推送可能不触发)。
351
+
352
+ 发送测试消息可以采用下面几种方法:
353
+
354
+ 【控制台发送】
355
+
356
+ 仅集成 TIMPush 的用户,建议优先使用腾讯云控制台接入测试能力验证离线推送。
357
+
358
+ 操作路径:腾讯云控制台 > **推送服务 Push** > **接入测试**。在接入测试页面,可以指定 `registrationID` 或 `userID` 发送离线推送测试。
359
+
360
+ 【REST API 发送】
361
+
362
+ 如果需要通过服务端发送推送,可参考 全员/标签推送。
363
+
364
+ 【SDK API 发送】
220
365
 
221
366
  如果您的项目已接入 IM SDK,可通过 SDK API 发送一条带离线推送参数的消息进行验证。Flutter 侧示例如下:
222
367
  ``` java
@@ -255,9 +400,13 @@ Future<void> sendTestPushMessage({
255
400
  }
256
401
  ```
257
402
 
258
- ## 处理通知点击跳转
403
+ **验证**:App 置于后台后发送测试消息,设备能收到离线推送通知。如果手机通知栏开启权限,通知栏会弹出离线推送消息弹框。
259
404
 
260
- 通知点击跳转完整流程请参考 [Android 处理通知点击跳转](https://cloud.tencent.com/document/product/269/100626#.E5.A4.84.E7.90.86.E9.80.9A.E7.9F.A5.E7.82.B9.E5.87.BB.E8.B7.B3.E8.BD.AC) 和 [iOS 处理通知点击跳转](https://cloud.tencent.com/document/product/269/100627#.E5.A4.84.E7.90.86.E9.80.9A.E7.9F.A5.E7.82.B9.E5.87.BB.E8.B7.B3.E8.BD.AC) 文档。Flutter 侧主要关注两处差异:通过 IM SDK API 发送消息时写入 `ext`,以及在客户端注册监听并解析 `ext`。
405
+ ### 步骤5:处理通知点击跳转
406
+
407
+ 通知点击跳转完整流程。Flutter 侧的配置控制台点击动作跟原生平台一致,但要关注另外两个步骤差异。
408
+
409
+ #### **发送推送时携带** `ext`
261
410
 
262
411
  如果您的项目已接入 IM SDK,可在发送消息时通过 `OfflinePushInfo.ext` 携带跳转参数。示例代码如下:
263
412
  ``` java
@@ -296,9 +445,10 @@ Future<void> sendMessageWithPushExt({
296
445
  }
297
446
  ```
298
447
 
448
+ #### **客户端注册监听并解析** `ext`
449
+
299
450
  Flutter 客户端推荐使用 `TencentCloudChatPush().addPushListener` 监听通知点击事件,并在 `onNotificationClicked` 中解析 `ext`。示例代码如下:
300
451
  ``` java
301
-
302
452
  final TIMPushListener timPushListener = TIMPushListener(
303
453
  onRecvPushMessage: (TimPushMessage msg) {
304
454
  debugPrint(
@@ -348,26 +498,7 @@ Future<void> removeTIMPushListener() async {
348
498
  > - `ext` 是发送方写入的业务透传字段,建议使用 JSON 字符串,例如 `{"conversationID":"user_A","conversationType":1}`。
349
499
  > - 若 App 冷启动后需要立即处理点击事件,建议尽早注册 `listener`,例如在登录流程完成后、业务首页初始化前完成注册。
350
500
 
351
- ## 配置消息分类(可选)
352
-
353
- 消息分类属于 Android 厂商通道策略,Flutter 侧没有额外的接入操作,请参考 [Android 配置消息分类](https://cloud.tencent.com/document/product/269/100626#config_category) 文档,API 请参考 [Flutter 消息分类 API](https://pub.dev/documentation/tencent_cloud_chat_sdk/latest/enum_offlinePushInfo/OfflinePushInfo-class.html) 文档。
354
-
355
- ## 收不到推送排障流程
356
-
357
- ### 步骤1:原生侧排查
358
-
359
- 如果发送测试消息后设备没有收到推送,请先按平台文档 [Android 收不到推送排障流程](https://cloud.tencent.com/document/product/269/100626#.E6.94.B6.E4.B8.8D.E5.88.B0.E6.8E.A8.E9.80.81.E6.8E.92.E9.9A.9C.E6.B5.81.E7.A8.8B) 和 [iOS 收不到推送排障流程](https://cloud.tencent.com/document/product/269/100627#.E6.94.B6.E4.B8.8D.E5.88.B0.E6.8E.A8.E9.80.81.E6.8E.92.E9.9A.9C.E6.B5.81.E7.A8.8B) 完成原生侧排查。
360
-
361
- ### 步骤2:Flutter 侧可按以下顺序补充检查
362
- 1. 确认 `registerPush` 返回 `code = 0`。如果返回非 0,请先根据错误码和 `errorMessage` 排查,不要只看 App 是否启动成功。
363
-
364
- 2. 注册成功后调用 `getRegistrationID()`,确认返回值非空。控制台或服务端发送测试消息时,使用的 `RegistrationID / userID` 应与这里返回的值一致。
365
-
366
- 3. 确认 `registerPush` 的调用时机正确。仅使用 Push 能力时,可在 App 完成必要初始化、用户同意隐私政策并获得通知权限后调用;Chat / TUIKit 离线推送场景下,应在 IM 登录成功后调用。
367
-
368
- 4. 确认通知点击逻辑已通过 `TencentCloudChatPush().addPushListener` 注册。`registerPush` 中的 `onNotificationClicked` 参数当前仅作为必填空实现保留,不建议继续在其中处理跳转。
369
-
370
- 5. 如果通过 Chat SDK 发送测试消息,确认 `OfflinePushInfo` 中已设置 `title`、`desc`,并按业务需要设置 `ext`。如需点击跳转,`ext` 中应包含客户端可解析的页面或会话参数。
501
+ 发送离线推送时如需设置 Android 厂商消息分类或通知渠道 ID,可通过 Flutter Chat SDK 的 [OfflinePushInfo](https://pub.dev/documentation/tencent_cloud_chat_sdk/latest/enum_offlinePushInfo/OfflinePushInfo-class.html) 设置;具体字段含义与厂商规则见 Android 厂商通道集成。
371
502
 
372
- ### 仍无法解决
503
+ ## 接入排查
373
504
 
@@ -12,7 +12,11 @@
12
12
 
13
13
  本文示例中的 `VERSION`、`SDKAppID`、`appKey`均为占位符,请勿在代码仓库中提交真实密钥。
14
14
 
15
- ## 操作步骤
15
+ ## AI 集成
16
+
17
+ 通过 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 输入“集成 Harmonyos 离线推送”等需求,AI 将根据项目类型引导您完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。详情可参考 AI Coding。
18
+
19
+ ## 手动集成
16
20
 
17
21
  ### 步骤1:集成 TIMPush
18
22
 
@@ -71,4 +75,5 @@ let pushListener: TIMPushListener = {
71
75
  TIMPushManager.getInstance().addPushListener(pushListener);
72
76
  ```
73
77
 
74
- 恭喜您已经完成了推送插件的接入。如果接入完成收不到推送,请使用 [排查工具](https://cloud.tencent.com/document/product/269/100629) 查看具体原因。
78
+ ## 接入排查
79
+