@tencentcloud/sdk-mcp 1.6.7 → 1.6.8
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/knowledge/build-index.js +4 -1
- package/knowledge/content-loader.js +3 -1
- package/knowledge/search/filter-pool.js +12 -4
- package/knowledge/search/query-normalizer.js +76 -0
- package/knowledge/search/search-knowledge.js +104 -5
- package/package.json +1 -1
- package/resource/_schema/feature-aliases.yaml +1 -0
- package/resource/_schema/query-normalization.yaml +9 -0
- package/resource/index/manifest.json +1 -1
- package/resource/integration/callkit/preset/android/integration.md +0 -14
- package/resource/integration/callkit/preset/flutter/integration.md +0 -9
- package/resource/integration/callkit/preset/ios/integration.md +2 -15
- package/resource/integration/callkit/preset/react/integration.md +0 -21
- package/resource/integration/callkit/preset/vue/integration.md +0 -27
- package/resource/integration/chat/preset/android/integration.md +3 -10
- package/resource/integration/chat/preset/flutter/integration.md +11 -13
- package/resource/integration/chat/preset/ios/integration.md +9 -16
- package/resource/integration/chat/preset/react/integration.md +1 -9
- package/resource/integration/chat/preset/uni-app/integration.md +0 -9
- package/resource/integration/chat/preset/vue/integration.md +3 -13
- package/resource/integration/livekit/preset/live/android/live-host-integration.md +0 -4
- package/resource/integration/livekit/preset/live/android/prepare-integration.md +8 -21
- package/resource/integration/livekit/preset/live/ios/live-audience-integration.md +0 -1
- package/resource/integration/livekit/preset/live/ios/live-host-integration.md +0 -5
- package/resource/integration/livekit/preset/live/ios/live-list-integration.md +0 -4
- package/resource/integration/livekit/preset/live/ios/prepare-integration.md +0 -9
- package/resource/integration/livekit/preset/live/vue/live-list-integration.md +1 -5
- package/resource/integration/livekit/preset/live/vue/live-player-desk-integration.md +36 -147
- package/resource/integration/livekit/preset/live/vue/live-player-h5-integration.md +1 -6
- package/resource/integration/livekit/preset/live/vue/live-pusher-integration.md +432 -286
- package/resource/integration/roomkit/preset/vue/integration.md +11 -24
- package/resource/knowledge/callkit/core-sdk/android/answer-call.md +1 -20
- package/resource/knowledge/callkit/core-sdk/android/make-call.md +0 -12
- package/resource/knowledge/callkit/core-sdk/android/offline-push.md +1 -12
- package/resource/knowledge/callkit/core-sdk/flutter/answer-call.md +0 -19
- package/resource/knowledge/callkit/core-sdk/flutter/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/flutter/offline-push.md +1 -17
- package/resource/knowledge/callkit/core-sdk/ios/answer-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/make-call.md +0 -13
- package/resource/knowledge/callkit/core-sdk/ios/offline-push.md +0 -12
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/miniprogram/call-event.md +0 -2
- package/resource/knowledge/callkit/core-sdk/uni-app/answer-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/uni-app/make-call.md +0 -15
- package/resource/knowledge/callkit/core-sdk/web/call-engine.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/call-event.md +0 -1
- package/resource/knowledge/callkit/core-sdk/web/callengine-api-overview.md +0 -1
- package/resource/knowledge/callkit/faq/android.md +5 -15
- package/resource/knowledge/callkit/faq/common.md +0 -1
- package/resource/knowledge/callkit/faq/ios.md +1 -4
- package/resource/knowledge/callkit/faq/uniapp-app.md +0 -2
- package/resource/knowledge/callkit/faq/uniapp-miniprogram.md +0 -5
- package/resource/knowledge/callkit/faq/web.md +1 -5
- package/resource/knowledge/callkit/preset/android/api.md +0 -6
- package/resource/knowledge/callkit/preset/ios/api.md +0 -4
- package/resource/knowledge/callkit/preset/miniprogram/api.md +0 -2
- package/resource/knowledge/callkit/preset/react/api.md +2 -4
- package/resource/knowledge/callkit/preset/react/uikit-api-reference.md +2 -8
- package/resource/knowledge/callkit/preset/vue/api.md +2 -4
- package/resource/knowledge/callkit/preset/vue/uikit-api-reference.md +2 -8
- package/resource/knowledge/chat/preset/android/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/android/features/contact-list.md +0 -5
- package/resource/knowledge/chat/preset/android/features/conversation-list.md +1 -10
- package/resource/knowledge/chat/preset/android/features/language.md +1 -12
- package/resource/knowledge/chat/preset/android/features/message-input.md +1 -9
- package/resource/knowledge/chat/preset/android/features/message-list.md +1 -11
- package/resource/knowledge/chat/preset/android/features/search.md +0 -7
- package/resource/knowledge/chat/preset/android/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/android-view/integration.md +3 -5
- package/resource/knowledge/chat/preset/flutter/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/flutter/features/contact-list.md +1 -6
- package/resource/knowledge/chat/preset/flutter/features/conversation-list.md +1 -10
- package/resource/knowledge/chat/preset/flutter/features/language.md +0 -3
- package/resource/knowledge/chat/preset/flutter/features/message-input.md +1 -9
- package/resource/knowledge/chat/preset/flutter/features/message-list.md +1 -11
- package/resource/knowledge/chat/preset/flutter/features/search.md +0 -7
- package/resource/knowledge/chat/preset/flutter/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios/features/chat-setting.md +1 -4
- package/resource/knowledge/chat/preset/ios/features/contact-list.md +1 -8
- package/resource/knowledge/chat/preset/ios/features/conversation-list.md +1 -10
- package/resource/knowledge/chat/preset/ios/features/language.md +0 -11
- package/resource/knowledge/chat/preset/ios/features/message-input.md +1 -9
- package/resource/knowledge/chat/preset/ios/features/message-list.md +1 -11
- package/resource/knowledge/chat/preset/ios/features/search.md +0 -5
- package/resource/knowledge/chat/preset/ios/features/theme.md +0 -6
- package/resource/knowledge/chat/preset/ios-uikit/integration.md +5 -17
- package/resource/knowledge/chat/preset/react/features/chat-setting.md +0 -2
- package/resource/knowledge/chat/preset/react/features/contact-list.md +0 -23
- package/resource/knowledge/chat/preset/react/features/conversation-actions.md +2 -11
- package/resource/knowledge/chat/preset/react/features/conversation-list.md +2 -23
- package/resource/knowledge/chat/preset/react/features/conversation-preview.md +0 -6
- package/resource/knowledge/chat/preset/react/features/search.md +0 -1
- package/resource/knowledge/chat/preset/vue/features/chat-header.md +1 -3
- package/resource/knowledge/chat/preset/vue/features/chat-setting.md +3 -5
- package/resource/knowledge/chat/preset/vue/features/contact-list.md +3 -9
- package/resource/knowledge/chat/preset/vue/features/conversation-actions.md +0 -3
- package/resource/knowledge/chat/preset/vue/features/conversation-list.md +2 -13
- package/resource/knowledge/chat/preset/vue/features/conversation-preview.md +2 -5
- package/resource/knowledge/chat/preset/vue/features/conversation-search.md +1 -0
- package/resource/knowledge/chat/preset/vue/features/message-input.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/message-list.md +2 -4
- package/resource/knowledge/chat/preset/vue/features/search.md +4 -1
- package/resource/knowledge/chat/preset/vue/features/theme.md +4 -6
- package/resource/knowledge/livekit/core-sdk/api-reference/android/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CameraView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/android/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/android/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/android/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/flutter/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/AudioEffectStore.md +0 -7
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BarrageStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BaseBeautyStore.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/BattleStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoGuestStore.md +0 -5
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/CoHostStore.md +0 -3
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/DeviceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/GiftStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LikeStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveAudienceStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveCoreView.md +0 -1
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LiveSeatStore.md +0 -2
- package/resource/knowledge/livekit/core-sdk/api-reference/ios/LoginStore.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/android/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/android/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/android/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/android/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/audio-effect.md +0 -4
- package/resource/knowledge/livekit/core-sdk/features/flutter/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/flutter/gift.md +3 -7
- package/resource/knowledge/livekit/core-sdk/features/flutter/live-list.md +3 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/audio-effect.md +1 -3
- package/resource/knowledge/livekit/core-sdk/features/ios/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/ios/gift.md +2 -7
- package/resource/knowledge/livekit/core-sdk/features/ios/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audience-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/audio-effect.md +1 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/barrage.md +2 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/base-beauty.md +0 -2
- package/resource/knowledge/livekit/core-sdk/features/uni-app/gift.md +4 -8
- package/resource/knowledge/livekit/core-sdk/features/uni-app/live-list.md +2 -2
- package/resource/knowledge/livekit/core-sdk/live/android/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/android/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/android/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/flutter/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/flutter/integration.md +1 -7
- package/resource/knowledge/livekit/core-sdk/live/ios/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/live/ios/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/ios/integration.md +0 -7
- package/resource/knowledge/livekit/core-sdk/live/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/host-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/live/uni-app/integration.md +0 -5
- package/resource/knowledge/livekit/core-sdk/voice/android/co-guest-interaction.md +1 -3
- package/resource/knowledge/livekit/core-sdk/voice/android/host-interaction.md +4 -13
- package/resource/knowledge/livekit/core-sdk/voice/android/integration.md +5 -5
- package/resource/knowledge/livekit/core-sdk/voice/flutter/co-guest-interaction.md +0 -3
- package/resource/knowledge/livekit/core-sdk/voice/flutter/integration.md +18 -21
- package/resource/knowledge/livekit/core-sdk/voice/ios/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/ios/host-interaction.md +2 -11
- package/resource/knowledge/livekit/core-sdk/voice/ios/integration.md +8 -8
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/co-guest-interaction.md +0 -2
- package/resource/knowledge/livekit/core-sdk/voice/uni-app/integration.md +1 -4
- package/resource/knowledge/livekit/faq/error-code.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/barrage.md +0 -5
- package/resource/knowledge/livekit/preset/live/vue/features/live-audience-list.md +1 -1
- package/resource/knowledge/livekit/preset/live/vue/features/live-view.md +0 -3
- package/resource/knowledge/push/api-reference/donut.md +1 -6
- package/resource/knowledge/push/api-reference/harmonyos.md +0 -2
- package/resource/knowledge/push/api-reference/react-native.md +0 -3
- package/resource/knowledge/push/api-reference/uni-app.md +3 -5
- package/resource/knowledge/push/api-reference/unity.md +0 -1
- package/resource/knowledge/push/api-reference/unreal-engine.md +0 -1
- package/resource/knowledge/push/config/android/fcm.md +0 -6
- package/resource/knowledge/push/config/android/honor.md +1 -7
- package/resource/knowledge/push/config/android/huawei.md +1 -9
- package/resource/knowledge/push/config/android/meizu.md +1 -7
- package/resource/knowledge/push/config/android/oppo.md +1 -3
- package/resource/knowledge/push/config/android/vivo.md +1 -12
- package/resource/knowledge/push/config/android/xiaomi.md +0 -5
- package/resource/knowledge/push/config/donut.md +0 -12
- package/resource/knowledge/push/config/harmonyos.md +18 -7
- package/resource/knowledge/push/config/ios.md +26 -33
- package/resource/knowledge/push/config/react-native.md +0 -31
- package/resource/knowledge/push/config/unity.md +0 -31
- package/resource/knowledge/push/config/unreal-engine.md +0 -31
- package/resource/knowledge/push/integration/android.md +137 -46
- package/resource/knowledge/push/integration/donut.md +5 -21
- package/resource/knowledge/push/integration/flutter.md +1 -3
- package/resource/knowledge/push/integration/harmonyos.md +17 -16
- package/resource/knowledge/push/integration/ios.md +27 -15
- package/resource/knowledge/push/integration/react-native.md +9 -59
- package/resource/knowledge/push/integration/uni-app.md +3 -25
- package/resource/knowledge/push/integration/unity.md +8 -77
- package/resource/knowledge/push/integration/unreal-engine.md +37 -96
- package/resource/knowledge/roomkit/core-sdk/android/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/android/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/android/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/flutter/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/flutter/room-state.md +2 -4
- package/resource/knowledge/roomkit/core-sdk/flutter/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/ios/call-user-to-room.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-participant-state.md +0 -2
- package/resource/knowledge/roomkit/core-sdk/ios/room-state.md +3 -5
- package/resource/knowledge/roomkit/core-sdk/ios/schedule-room.md +4 -6
- package/resource/knowledge/roomkit/core-sdk/vue/device-state.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/free-beauty-panel.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-chat.md +0 -5
- package/resource/knowledge/roomkit/core-sdk/vue/room-participant-state.md +0 -3
- package/resource/knowledge/roomkit/core-sdk/vue/room-state.md +1 -7
- package/resource/knowledge/roomkit/core-sdk/vue/room-view.md +1 -2
- package/resource/knowledge/roomkit/core-sdk/vue/screen-share.md +0 -1
- package/resource/knowledge/roomkit/core-sdk/vue/virtual-background.md +0 -3
- package/resource/knowledge/roomkit/preset/android/integration.md +202 -6
- package/resource/knowledge/roomkit/preset/flutter/integration.md +1 -16
- package/resource/knowledge/roomkit/preset/ios/integration.md +201 -7
- package/resource/knowledge/roomkit/preset/react/integration.md +205 -4
- package/resource/knowledge/rtcengine/web/api.md +0 -2
- package/resource/knowledge/rtcengine/web/plugin/22-advanced-audio-mixer.md +2 -2
- package/resource/knowledge/rtcengine/web/plugin/23-advanced-support-detection.md +3 -3
- package/resource/knowledge/rtcengine/web/plugin/28-advanced-beauty.md +1 -1
- package/resource/knowledge/rtcengine/web/plugin/36-advanced-virtual-background.md +0 -4
- package/resource/knowledge/share/userSig.md +2 -2
- package/resource/knowledge/trtc/android/TRTCCloud.md +16 -16
- package/resource/knowledge/trtc/android/TRTCCloudDef.md +5 -5
- package/resource/knowledge/trtc/android/TRTCCloudListener.md +3 -3
- package/resource/knowledge/trtc/android/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/android/TXDeviceManager.md +1 -1
- package/resource/knowledge/trtc/c++/ITRTCCloud.md +14 -14
- package/resource/knowledge/trtc/c++/ITXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/c++/ITXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/c++/TRTCCloudCallback.md +3 -3
- package/resource/knowledge/trtc/c++/TRTCTypeDef.md +5 -5
- package/resource/knowledge/trtc/ios/TRTCCloud.md +14 -14
- package/resource/knowledge/trtc/ios/TRTCCloudDelegate.md +3 -3
- package/resource/knowledge/trtc/ios/TXAudioEffectManager.md +2 -2
- package/resource/knowledge/trtc/ios/TXDeviceManager.md +4 -4
- package/resource/knowledge/trtc/ios/TXLiveSDKTypeDef.md +5 -5
- package/server.js +1 -1
- package/tools/common/search_trtc_knowledge.js +2 -0
- package/tools/definitions/search_trtc_knowledge_def.js +1 -0
- package/utils/report-cls-client.js +3 -3
- package/utils/report-es-client.js +1 -1
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
推送服务目前推送支持小米、华为、荣耀、OPPO、vivo、魅族、一加、realme、iQOO 、FCM 和 Apple 等厂商通道。
|
|
2
2
|
|
|
3
3
|
> **注意:**
|
|
4
|
-
>
|
|
5
4
|
> 每个厂商仅支持配置 1 个证书。
|
|
6
5
|
>
|
|
7
6
|
|
|
@@ -28,7 +27,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
28
27
|
确认并生成密钥:在确认页面核对您的密钥信息,然后单击 **Register** 。接下来,您将看到一个页面提示您下载密钥。单击 **Download**,将生成的 .p8 文件保存到您的计算机上。
|
|
29
28
|
|
|
30
29
|
> **说明:**
|
|
31
|
-
>
|
|
32
30
|
> - p8 证书只可以下载一次,请妥善保存。
|
|
33
31
|
> - 请妥善保管下载的 p8 文件,因为您将无法再次下载该文件。您可以使用此 p8 证书配置您的 iOS 应用程序以接收推送通知。
|
|
34
32
|
|
|
@@ -42,7 +40,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
42
40
|
4. 选择 .p8 证书
|
|
43
41
|
|
|
44
42
|
> **说明:**
|
|
45
|
-
>
|
|
46
43
|
> - **Key ID**:这是您的 APNs Auth Key 的唯一标识符。当您在 Apple Developer Center 创建一个新的 APNs Auth Key 时,系统会为您生成一个 Key ID。您可以在 "Certificates, Identifiers & Profiles" 部分的 "Keys" 中找到它。
|
|
47
44
|
> - **Team ID**:这是您的开发者账户的唯一标识符。您可以在 Apple Developer Center 的账户详情页面找到它。点击右上角的 "Membership",在 "Membership Details" 部分可以找到您的 Team ID。
|
|
48
45
|
> - **Bundle ID**:这是您的应用程序的唯一标识符,也称为应用程序 ID。您可以在 Apple Developer Center 的 "Certificates, Identifiers & Profiles" 部分找到它。选择 "Identifiers",然后在您的应用程序列表中找到对应的 Bundle ID。
|
|
@@ -74,8 +71,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
74
71
|
#### 生成证书
|
|
75
72
|
1. 选中您的 AppID,选择 **Configure**。
|
|
76
73
|
|
|
77
|
-
2. 可以看到在 **Apple Push Notification service SSL Certificates** 窗口中有两个 `SSL Certificate`,分别用于开发环境(Development)和生产环境(Production)的远程推送证书,如下图所示:
|
|
78
|
-
|
|
79
74
|
3. 我们先选择开发环境(Development)的 **Create Certificate**,系统将提示我们需要一个 Certificate Signing Request(CSR)。
|
|
80
75
|
|
|
81
76
|
4. 在 Mac 上打开**钥匙串访问工具(Keychain Access)**,在菜单中选择**钥匙串访问** > **证书助理** > **从证书颁发机构请求证书**(`Keychain Access - Certificate Assistant - Request a Certificate From a Certificate Authority`)。
|
|
@@ -114,7 +109,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
114
109
|
4. 选择证书类型,上传 iOS 证书(.p12),设置证书密码,单击**确认**。
|
|
115
110
|
|
|
116
111
|
> **说明:**
|
|
117
|
-
>
|
|
118
112
|
> - 上传证书名最好使用全英文(尤其不能使用括号等特殊字符)。
|
|
119
113
|
> - 上传证书需要设置密码,无密码收不到推送。
|
|
120
114
|
> - 发布 App Store 的证书需要设置为生产环境,否则无法收到推送。
|
|
@@ -139,7 +133,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
139
133
|
登录腾讯云 [即时通信 IM 控制台](https://console.qcloud.com/avc) ,在**推送服务 Push > 推送设置 > 厂商配置**功能栏添加各个厂商推送证书,并将您在步骤一中获取的各厂商的 AppId、AppKey、AppSecret 等参数配置给添加的推送证书。
|
|
140
134
|
|
|
141
135
|
> **注意:**
|
|
142
|
-
>
|
|
143
136
|
> 关于**点击后续动作**选项, 如需使用本插件提供的点击跳转能力, 请保持默认值不变, 即通常是 `打开应用内指定页面` 并带有默认配置.
|
|
144
137
|
>
|
|
145
138
|
> 如需使用上报统计功能, 也请保持此项默认值不变,
|
|
@@ -147,10 +140,6 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
147
140
|
|
|
148
141
|
【小米】
|
|
149
142
|
|
|
150
|
-
|厂商推送平台|IM 控制台配置|
|
|
151
|
-
|---------|---------|
|
|
152
|
-
|||
|
|
153
|
-
|
|
154
143
|
【华为】
|
|
155
144
|
| 厂商推送平台 | IM 控制台配置 |
|
|
156
145
|
| --- | --- |
|
|
@@ -158,34 +147,14 @@ p8 证书:p8 证书没有到期日期,因此您无需担心证书过期。
|
|
|
158
147
|
|
|
159
148
|
【OPPO】
|
|
160
149
|
|
|
161
|
-
|厂商推送平台|IM 控制台配置|
|
|
162
|
-
|---------|---------|
|
|
163
|
-
|||
|
|
164
|
-
|
|
165
150
|
【vivo】
|
|
166
151
|
|
|
167
|
-
|厂商推送平台|IM 控制台配置|
|
|
168
|
-
|---------|---------|
|
|
169
|
-
|||
|
|
170
|
-
|
|
171
152
|
回执配置请参考:[消息触达统计配置-vivo](https://cloud.tencent.com/document/product/269/100626#daa658b0-1ac0-44a8-8a47-7ec8822ebe82)
|
|
172
153
|
|
|
173
154
|
【魅族】
|
|
174
155
|
|
|
175
|
-
|厂商推送平台|IM 控制台配置|
|
|
176
|
-
|---------|---------|
|
|
177
|
-
|||
|
|
178
|
-
|
|
179
156
|
回执配置请参考:[消息触达统计配置 > 魅族](https://cloud.tencent.com/document/product/269/100626#daa658b0-1ac0-44a8-8a47-7ec8822ebe82)
|
|
180
157
|
|
|
181
158
|
【荣耀】
|
|
182
159
|
|
|
183
|
-
|厂商推送平台|IM 控制台配置|
|
|
184
|
-
|---------|---------|
|
|
185
|
-
|||
|
|
186
|
-
|
|
187
160
|
【Google FCM】
|
|
188
|
-
|
|
189
|
-
|厂商推送平台|IM 控制台配置|
|
|
190
|
-
|---------|---------|
|
|
191
|
-
|||
|
|
@@ -19,10 +19,9 @@
|
|
|
19
19
|
|
|
20
20
|
## AI 集成
|
|
21
21
|
|
|
22
|
-
通过
|
|
22
|
+
通过 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 输入“集成 Android 离线推送”“帮我集成 Android TIMPush”等需求,AI 将根据项目类型引导你完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。
|
|
23
23
|
|
|
24
24
|
> **注意:**
|
|
25
|
-
>
|
|
26
25
|
> 使用 Push Skill AI 集成不是全自动流程,依然需要开发者在厂商配置控制台、腾讯云控制台等配置 Push 相关信息。具体的配置方法请参考下文相关章节。
|
|
27
26
|
>
|
|
28
27
|
|
|
@@ -32,12 +31,9 @@
|
|
|
32
31
|
|
|
33
32
|
### 下载并添加 TIMPush 配置文件
|
|
34
33
|
|
|
35
|
-
完成厂商配置后,在腾讯云控制台下载 `timpush-configs.json`,下载路径为:
|
|
36
|
-
|
|
37
34
|
下载后,将该文件添加到应用模块的 `assets` 目录。推荐存储路径:`app/src/main/assets/timpush-configs.json`,其中 app 是你项目的应用模块,可替换成实际名称。如果工程中没有 `assets` 目录,请在 `src/main/` 下手动创建。
|
|
38
35
|
|
|
39
36
|
> **注意:**
|
|
40
|
-
>
|
|
41
37
|
> TIMPush 注册推送时会读取该文件中的厂商证书配置,不要放在 MainActivity 同级目录、工程根目录或 res 目录。如果文件缺失或放错目录,SDK 无法获得对应厂商通道配置,可能导致注册或收消息失败。
|
|
42
38
|
>
|
|
43
39
|
|
|
@@ -57,7 +53,6 @@ app/google-services.json # Google FCM
|
|
|
57
53
|
```
|
|
58
54
|
|
|
59
55
|
> **注意:**
|
|
60
|
-
>
|
|
61
56
|
> 修改厂商平台项目、应用信息、证书指纹或开发服务设置后,厂商配置文件需要重新下载并替换。
|
|
62
57
|
>
|
|
63
58
|
|
|
@@ -75,7 +70,6 @@ Android 工程可能使用 Groovy DSL 或 Kotlin DSL,请先根据文件后缀
|
|
|
75
70
|
请根据工程使用的 Gradle 版本选择配置位置。如果不确定工程使用的 Gradle 版本,可在项目根目录 `gradle/wrapper/gradle-wrapper.properties` 中查看 `distributionUrl` 对应的版本号。
|
|
76
71
|
|
|
77
72
|
> **注意:**
|
|
78
|
-
>
|
|
79
73
|
> 不要把 Groovy 示例直接复制到 `.kts` 文件中。Kotlin DSL 使用双引号、括号和 `uri(...)` 写法。
|
|
80
74
|
>
|
|
81
75
|
|
|
@@ -84,10 +78,11 @@ Android 工程可能使用 Groovy DSL 或 Kotlin DSL,请先根据文件后缀
|
|
|
84
78
|
在项目级 `settings.gradle`(Groovy DSL)或 `settings.gradle.kts`(Kotlin DSL)中,同时在 `pluginManagement > repositories` 和 `dependencyResolutionManagement > repositories` 中添加仓库。
|
|
85
79
|
|
|
86
80
|
【Groovy DSL (settings.gradle)】
|
|
87
|
-
```
|
|
81
|
+
``` java
|
|
88
82
|
pluginManagement {
|
|
89
83
|
repositories {
|
|
90
84
|
gradlePluginPortal()
|
|
85
|
+
google()
|
|
91
86
|
mavenCentral()
|
|
92
87
|
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
|
|
93
88
|
maven { url "https://developer.huawei.com/repo/" }
|
|
@@ -108,10 +103,11 @@ dependencyResolutionManagement {
|
|
|
108
103
|
```
|
|
109
104
|
|
|
110
105
|
【Kotlin DSL (settings.gradle.kts)】
|
|
111
|
-
```
|
|
106
|
+
``` java
|
|
112
107
|
pluginManagement {
|
|
113
108
|
repositories {
|
|
114
109
|
gradlePluginPortal()
|
|
110
|
+
google()
|
|
115
111
|
mavenCentral()
|
|
116
112
|
maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-public/") }
|
|
117
113
|
maven { url = uri("https://developer.huawei.com/repo/") }
|
|
@@ -136,9 +132,10 @@ dependencyResolutionManagement {
|
|
|
136
132
|
Gradle 7.0 版本通常使用 Groovy DSL。如你的工程使用 Kotlin DSL,请将单引号改为双引号,`url "..."` 改为 `url = uri("...")`。
|
|
137
133
|
1. 在项目级 `build.gradle` 的 `buildscript > repositories` 中添加插件仓库。
|
|
138
134
|
|
|
139
|
-
```
|
|
135
|
+
``` groovy
|
|
140
136
|
buildscript {
|
|
141
137
|
repositories {
|
|
138
|
+
google()
|
|
142
139
|
mavenCentral()
|
|
143
140
|
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
|
|
144
141
|
maven { url "https://developer.huawei.com/repo/" }
|
|
@@ -153,7 +150,7 @@ buildscript {
|
|
|
153
150
|
```
|
|
154
151
|
2. 在 `settings.gradle` 的 `dependencyResolutionManagement > repositories` 中添加依赖仓库。
|
|
155
152
|
|
|
156
|
-
```
|
|
153
|
+
``` groovy
|
|
157
154
|
dependencyResolutionManagement {
|
|
158
155
|
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
|
|
159
156
|
repositories {
|
|
@@ -174,6 +171,7 @@ Gradle 7.0 以下版本通常使用 Groovy DSL。如你的工程使用 Kotlin DS
|
|
|
174
171
|
``` groovy
|
|
175
172
|
buildscript {
|
|
176
173
|
repositories {
|
|
174
|
+
google()
|
|
177
175
|
mavenCentral()
|
|
178
176
|
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
|
|
179
177
|
maven { url "https://developer.huawei.com/repo/" }
|
|
@@ -197,67 +195,144 @@ allprojects {
|
|
|
197
195
|
}
|
|
198
196
|
```
|
|
199
197
|
|
|
198
|
+
> **说明:**
|
|
199
|
+
> - 如果旧工程已升级到 Gradle 8 / AGP 8,请不要继续使用 `com.huawei.agconnect:agcp:1.6.0.300`,建议改为 `com.huawei.agconnect:agcp:1.9.1.301` 或更高已验证版本。
|
|
200
|
+
> - 若使用 Google FCM,`com.google.gms:google-services:4.4.2` 要求 AGP 7.3.0 及以上;如果项目的 AGP 低于 7.3.0,请改用与当前 AGP 兼容的 Google Services Gradle Plugin 版本,例如 `4.3.15`。
|
|
201
|
+
|
|
200
202
|
### 配置厂商插件
|
|
201
203
|
|
|
202
|
-
华为、荣耀和 Google FCM
|
|
203
|
-
|
|
204
|
+
华为、荣耀和 Google FCM 需要按厂商要求集成对应 Gradle 插件。插件会在构建期读取上一步放置的厂商配置文件,并将厂商要求的资源、Manifest 信息或初始化配置合并进应用包。
|
|
205
|
+
|
|
206
|
+
如果只集成某个厂商,只添加该厂商需要的插件和配置文件即可。例如未接入 FCM 时,不需要添加 `com.google.gms.google-services` 插件和 `google-services.json`。
|
|
207
|
+
|
|
208
|
+
#### 配置项目级插件依赖
|
|
204
209
|
|
|
205
|
-
|
|
210
|
+
项目级插件依赖用于让 Gradle 在构建期找到并加载华为、荣耀、Google FCM 等厂商插件。请先根据项目使用的 Gradle 版本选择对应配置。
|
|
206
211
|
|
|
207
|
-
|
|
212
|
+
【Gradle 7.1 及以上】
|
|
213
|
+
|
|
214
|
+
Gradle 7.1 及以上项目通常会在 `settings.gradle` 或 `settings.gradle.kts` 中配置依赖仓库。但如果厂商插件通过 `buildscript > dependencies > classpath` 声明,还需要在项目级 `build.gradle` 或 `build.gradle.kts` 的 `buildscript > repositories` 中同步配置插件仓库,否则可能出现厂商插件 classpath 依赖解析失败。
|
|
215
|
+
|
|
216
|
+
如果项目级 `build.gradle.kts` 已通过 `plugins {}` 块声明 AGP(新建 Kotlin DSL 项目的默认方式),原有 `plugins {}` 块保留不动,不需要整体迁移到 `buildscript` 写法。由于荣耀官方示例统一使用 `buildscript > dependencies > classpath` 声明 `asplugin`,请在项目级 Gradle 文件中额外补充 `buildscript` 配置,并在 `dependencies` 中声明 `com.android.tools.build:gradle`。如果项目同时使用 Kotlin Android 插件,也请声明 `org.jetbrains.kotlin:kotlin-gradle-plugin`。
|
|
217
|
+
|
|
218
|
+
请在 Android 工程的项目级 `build.gradle` 或 `build.gradle.kts` 中添加以下配置。
|
|
208
219
|
|
|
209
220
|
【Groovy DSL(build.gradle)】
|
|
210
|
-
```
|
|
221
|
+
``` java
|
|
211
222
|
buildscript {
|
|
223
|
+
repositories {
|
|
224
|
+
google()
|
|
225
|
+
mavenCentral()
|
|
226
|
+
gradlePluginPortal()
|
|
227
|
+
maven { url "https://mirrors.tencent.com/nexus/repository/maven-public/" }
|
|
228
|
+
maven { url "https://developer.huawei.com/repo/" }
|
|
229
|
+
maven { url "https://developer.hihonor.com/repo" }
|
|
230
|
+
}
|
|
212
231
|
dependencies {
|
|
213
|
-
|
|
214
|
-
classpath 'com.
|
|
232
|
+
// 请与项目当前 Android Gradle Plugin 版本保持一致。
|
|
233
|
+
classpath 'com.android.tools.build:gradle:<AGP_VERSION>'
|
|
234
|
+
// 如果项目使用 Kotlin Android 插件,请与项目当前 Kotlin Gradle Plugin 版本保持一致。
|
|
235
|
+
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:<KOTLIN_VERSION>'
|
|
236
|
+
// Google FCM。
|
|
237
|
+
classpath 'com.google.gms:google-services:4.4.2'
|
|
238
|
+
// 华为 AGConnect。Gradle 8 / AGP 8 项目不要继续使用 1.6.0.300。
|
|
239
|
+
classpath 'com.huawei.agconnect:agcp:1.9.1.301'
|
|
240
|
+
// 荣耀 Push。
|
|
215
241
|
classpath 'com.hihonor.mcs:asplugin:2.0.1.300'
|
|
216
242
|
}
|
|
217
243
|
}
|
|
218
244
|
```
|
|
219
245
|
|
|
220
246
|
【Kotlin DSL(build.gradle.kts)】
|
|
221
|
-
```
|
|
247
|
+
``` java
|
|
222
248
|
buildscript {
|
|
249
|
+
repositories {
|
|
250
|
+
google()
|
|
251
|
+
mavenCentral()
|
|
252
|
+
gradlePluginPortal()
|
|
253
|
+
maven { url = uri("https://mirrors.tencent.com/nexus/repository/maven-public/") }
|
|
254
|
+
maven { url = uri("https://developer.huawei.com/repo/") }
|
|
255
|
+
maven { url = uri("https://developer.hihonor.com/repo") }
|
|
256
|
+
}
|
|
223
257
|
dependencies {
|
|
224
|
-
|
|
225
|
-
classpath("com.
|
|
258
|
+
// 请与项目当前 Android Gradle Plugin 版本保持一致。
|
|
259
|
+
classpath("com.android.tools.build:gradle:<AGP_VERSION>")
|
|
260
|
+
// 如果项目使用 Kotlin Android 插件,请与项目当前 Kotlin Gradle Plugin 版本保持一致。
|
|
261
|
+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:<KOTLIN_VERSION>")
|
|
262
|
+
// Google FCM。
|
|
263
|
+
classpath("com.google.gms:google-services:4.4.2")
|
|
264
|
+
// 华为 AGConnect。Gradle 8 / AGP 8 项目不要继续使用 1.6.0.300。
|
|
265
|
+
classpath("com.huawei.agconnect:agcp:1.9.1.301")
|
|
266
|
+
// 荣耀 Push。
|
|
226
267
|
classpath("com.hihonor.mcs:asplugin:2.0.1.300")
|
|
227
268
|
}
|
|
228
269
|
}
|
|
229
270
|
```
|
|
271
|
+
1. 请将`<AGP_VERSION>`替换为项目当前使用的 Android Gradle Plugin 版本,例如 `8.9.1`。如果项目级 `plugins {}` 块中已经声明了 `com.android.application` 版本,两个位置的 AGP 版本需要保持一致。
|
|
230
272
|
|
|
231
|
-
|
|
273
|
+
2. 请将`<KOTLIN_VERSION>` 替换为项目当前使用的 Kotlin Gradle Plugin 版本;如果项目未使用 Kotlin Android 插件,可删除该行。
|
|
232
274
|
|
|
233
|
-
|
|
275
|
+
> **注意:**
|
|
276
|
+
> 对于 Gradle 8 / AGP 8 项目,请不要继续使用 `com.huawei.agconnect:agcp:1.6.0.300`。AGP 8.0 已移除 Transform API,旧版 AGC 插件存在兼容风险,建议使用 `com.huawei.agconnect:agcp:1.9.1.301` 或更高已验证版本。若使用 Google FCM,`com.google.gms:google-services:4.4.2` 要求 AGP 7.3.0 及以上。
|
|
277
|
+
>
|
|
278
|
+
|
|
279
|
+
【Gradle 7.0 及以下】
|
|
280
|
+
|
|
281
|
+
如果你已在上一节「配置 Gradle 仓库」中按照 Gradle 7.0 或 Gradle 7.0 以下示例配置了 `buildscript > repositories` 和 `buildscript > dependencies`,可以跳过本节的项目级插件依赖配置。
|
|
282
|
+
|
|
283
|
+
如果尚未配置,请回到上一节,根据当前 Gradle 版本补充 `buildscript` 中的仓库和插件 classpath。
|
|
284
|
+
|
|
285
|
+
#### 在应用模块启用厂商插件
|
|
286
|
+
|
|
287
|
+
完成项目级插件依赖配置后,还需要在应用模块的 `build.gradle` 或 `build.gradle.kts` 中启用厂商插件。应用模块通常为 `app`。
|
|
288
|
+
|
|
289
|
+
如果应用模块中已经存在 `plugins` 块,请在现有 `plugins` 块中追加厂商插件,不要重复添加已有的 `com.android.application` 插件。
|
|
290
|
+
|
|
291
|
+
【Groovy DSL(app/build.gradle)】
|
|
292
|
+
``` groovy
|
|
293
|
+
plugins {
|
|
294
|
+
// Google FCM。
|
|
295
|
+
id 'com.google.gms.google-services'
|
|
296
|
+
// 华为 AGConnect。
|
|
297
|
+
id 'com.huawei.agconnect'
|
|
298
|
+
// 荣耀 Push。
|
|
299
|
+
id 'com.hihonor.mcs.asplugin'
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
如果你的应用级 `build.gradle` 使用 `apply plugin` 写法,也可以写成:
|
|
234
304
|
``` groovy
|
|
235
305
|
apply plugin: 'com.google.gms.google-services'
|
|
236
306
|
apply plugin: 'com.huawei.agconnect'
|
|
237
307
|
apply plugin: 'com.hihonor.mcs.asplugin'
|
|
238
308
|
```
|
|
239
309
|
|
|
240
|
-
【Kotlin DSL(build.gradle.kts)】
|
|
310
|
+
【Kotlin DSL(app/build.gradle.kts)】
|
|
241
311
|
``` kotlin
|
|
242
312
|
plugins {
|
|
313
|
+
// Google FCM。
|
|
243
314
|
id("com.google.gms.google-services")
|
|
315
|
+
// 华为 AGConnect。
|
|
244
316
|
id("com.huawei.agconnect")
|
|
317
|
+
// 荣耀 Push。
|
|
245
318
|
id("com.hihonor.mcs.asplugin")
|
|
246
319
|
}
|
|
247
320
|
```
|
|
248
321
|
|
|
249
|
-
|
|
322
|
+
如果你的应用级 `build.gradle.kts` 使用 `apply` 写法,也可以写成:
|
|
323
|
+
``` kotlin
|
|
324
|
+
apply(plugin = "com.google.gms.google-services")
|
|
325
|
+
apply(plugin = "com.huawei.agconnect")
|
|
326
|
+
apply(plugin = "com.hihonor.mcs.asplugin")
|
|
327
|
+
```
|
|
250
328
|
|
|
251
|
-
|
|
252
|
-
>
|
|
253
|
-
> 荣耀官方示例统一使用 `buildscript > dependencies > classpath` 声明 `asplugin`,未提供 `plugins {}` 块写法。如果项目级 `build.gradle.kts` 用 `plugins {}` 块声明 AGP(新建 Kotlin DSL 项目的默认方式),请在 `buildscript > dependencies` 中**额外补上** `com.android.tools.build:gradle` 和 `org.jetbrains.kotlin:kotlin-gradle-plugin` 的 classpath(原 `plugins {}` 块保留不动)。应用级 `plugins { id(...) }` 可省略版本号(由项目级 classpath 提供),或改写为 `apply plugin: "..."`。
|
|
254
|
-
>
|
|
329
|
+
完成配置后,请在 Android Studio 中单击 **Sync Now**,或选择 **File > Sync Project with Gradle Files** 触发 Gradle 同步。同步成功后,再执行构建验证。
|
|
255
330
|
|
|
256
331
|
### 集成 TIMPush 依赖
|
|
257
332
|
|
|
258
333
|
在应用模块的 `build.gradle` 或 `build.gradle.kts` 中添加 TIMPush 依赖。基础包提供 TIMPush 注册、监听和通用能力;厂商包用于对接对应厂商离线推送通道。只集成基础包而不集成目标厂商包时,设备可能无法通过该厂商通道收到离线推送。
|
|
259
334
|
|
|
260
|
-
下方示例中的 `VERSION` 均指 TIMPush SDK 的版本号(如 `8.9.7537`),不是 Android 系统版本或厂商 SDK
|
|
335
|
+
下方示例中的 `VERSION` 均指 TIMPush SDK 的版本号(如 `8.9.7537`),不是 Android 系统版本或厂商 SDK 版本。获取最新版本号请查看更新日志。
|
|
261
336
|
|
|
262
337
|
【Groovy DSL】
|
|
263
338
|
``` groovy
|
|
@@ -306,7 +381,6 @@ dependencies {
|
|
|
306
381
|
添加依赖后,请在 Android Studio 中单击 **Sync Now**,或选择 **File > Sync Project with Gradle Files** 触发 Gradle 同步。
|
|
307
382
|
|
|
308
383
|
> **注意:**
|
|
309
|
-
>
|
|
310
384
|
> `TIMPush`、`TUICore` 和各厂商通道包建议使用相同 `VERSION`,避免依赖冲突。项目已接入 IM SDK 或 TUIKit 时,也需要确认相关 SDK 版本兼容。
|
|
311
385
|
>
|
|
312
386
|
|
|
@@ -393,14 +467,16 @@ android {
|
|
|
393
467
|
|
|
394
468
|
### registerPush
|
|
395
469
|
|
|
396
|
-
registerPush
|
|
470
|
+
registerPush 用于向 TIMPush 注册当前设备的推送 token。推送 token 是厂商通道返回的设备凭证,通常由 SDK 自动处理。注册成功后,TIMPush 会为当前设备建立一个推送目标标识 `registrationID`;服务端、控制台接入测试和排查工具可以使用该标识向这台设备下发离线推送。若 App 同时接入 IM 并完成登录,也可以使用 `userID` 向该用户已建立推送关系的设备下发离线推送。
|
|
471
|
+
|
|
472
|
+
`appKey` 的取值会影响注册方式和可用的推送标识:
|
|
397
473
|
- `appKey = Push Key`:注册 TIMPush 独立推送能力。Push Key 客户端密钥。
|
|
398
474
|
|
|
399
475
|
- `appKey = null`:复用 IM 登录态注册推送,必须在 IM `login` 成功后调用。
|
|
400
476
|
|
|
401
477
|
请先根据业务场景确认调用顺序:
|
|
402
478
|
|
|
403
|
-
| <strong>场景</strong> | <strong>调用顺序</strong> | <strong
|
|
479
|
+
| <strong>场景</strong> | <strong>调用顺序</strong> | <strong>服务端可用于发送推送的目标标识</strong> | <strong>说明</strong> |
|
|
404
480
|
| --- | --- | --- | --- |
|
|
405
481
|
| 仅使用 TIMPush | App 每次冷启动后调用<br><code>registerPush(appKey = Push Key)</code> | <code>registrationID</code> | 适用于营销 / 活动 / 通知推送,不接入 IM SDK。 |
|
|
406
482
|
| IM SDK + TIMPush<br>先注册 Push 再登录 | <code>registerPush(appKey = Push Key)</code><br>→ IM <code>login</code> | 登录前:<code>registrationID</code>;<br>登录后:<code>registrationID</code> + <code>userID</code> | 适用于希望用户未登录时也能收到营销推送的场景。 |
|
|
@@ -408,8 +484,8 @@ registerPush 用于注册当前设备的推送 token。注册成功后,后台
|
|
|
408
484
|
|
|
409
485
|
> **注意:**
|
|
410
486
|
>
|
|
411
|
-
>
|
|
412
|
-
>
|
|
487
|
+
> - 如果用户退出 IM SDK,同时集成了 IM SDK + TIMPush 的场景下已建立的 `userID` 与 `registrationID` 推送关系都会失效,需要重新完成对应注册。
|
|
488
|
+
> - Chat 应用的密钥仅用于 IM 登录,不能作为 `registerPush` 的 `appKey`。
|
|
413
489
|
|
|
414
490
|
【App 冷启动注册 TIMPush(appKey 传 Push Key)】
|
|
415
491
|
|
|
@@ -500,14 +576,21 @@ import android.util.Log;
|
|
|
500
576
|
|
|
501
577
|
import com.tencent.imsdk.v2.V2TIMCallback;
|
|
502
578
|
import com.tencent.imsdk.v2.V2TIMManager;
|
|
503
|
-
import com.tencent.
|
|
504
|
-
import com.tencent.
|
|
579
|
+
import com.tencent.imsdk.v2.V2TIMSDKConfig;
|
|
580
|
+
import com.tencent.qcloud.tim.push.TIMPushCallback;
|
|
581
|
+
import com.tencent.qcloud.tim.push.TIMPushManager;
|
|
505
582
|
|
|
506
583
|
public void loginIMAndRegisterPush(Context context) {
|
|
507
584
|
int sdkAppId = 0; // TODO: Replace with your SDKAppID.
|
|
508
585
|
String userID = "<YOUR_USER_ID>";
|
|
509
586
|
String userSig = "<YOUR_USER_SIG>";
|
|
510
587
|
|
|
588
|
+
boolean initSuccess = V2TIMManager.getInstance().initSDK(context, sdkAppId, new V2TIMSDKConfig());
|
|
589
|
+
if (!initSuccess) {
|
|
590
|
+
Log.e("TIMPush", ">>>>> IM SDK init failed");
|
|
591
|
+
return;
|
|
592
|
+
}
|
|
593
|
+
|
|
511
594
|
V2TIMManager.getInstance().login(userID, userSig, new V2TIMCallback() {
|
|
512
595
|
@Override
|
|
513
596
|
public void onSuccess() {
|
|
@@ -539,17 +622,24 @@ import android.content.Context
|
|
|
539
622
|
import android.util.Log
|
|
540
623
|
import com.tencent.imsdk.v2.V2TIMCallback
|
|
541
624
|
import com.tencent.imsdk.v2.V2TIMManager
|
|
542
|
-
import com.tencent.
|
|
543
|
-
import com.tencent.
|
|
625
|
+
import com.tencent.imsdk.v2.V2TIMSDKConfig
|
|
626
|
+
import com.tencent.qcloud.tim.push.TIMPushCallback
|
|
627
|
+
import com.tencent.qcloud.tim.push.TIMPushManager
|
|
544
628
|
|
|
545
629
|
fun loginIMAndRegisterPush(context: Context) {
|
|
546
630
|
val sdkAppId = 0 // TODO: Replace with your SDKAppID.
|
|
547
631
|
val userID = "<YOUR_USER_ID>"
|
|
548
632
|
val userSig = "<YOUR_USER_SIG>"
|
|
549
633
|
|
|
634
|
+
val initSuccess = V2TIMManager.getInstance().initSDK(context, sdkAppId, V2TIMSDKConfig())
|
|
635
|
+
if (!initSuccess) {
|
|
636
|
+
Log.e("TIMPush", ">>>>> IM SDK init failed")
|
|
637
|
+
return
|
|
638
|
+
}
|
|
639
|
+
|
|
550
640
|
V2TIMManager.getInstance().login(userID, userSig, object : V2TIMCallback {
|
|
551
641
|
override fun onSuccess() {
|
|
552
|
-
TIMPushManager.getInstance().registerPush(context, sdkAppId, null, object : TIMPushCallback<Any
|
|
642
|
+
TIMPushManager.getInstance().registerPush(context, sdkAppId, null, object : TIMPushCallback<Any>() {
|
|
553
643
|
override fun onSuccess(data: Any?) {
|
|
554
644
|
Log.d("TIMPush", ">>>>> registerPush success, data = $data")
|
|
555
645
|
}
|
|
@@ -567,6 +657,11 @@ fun loginIMAndRegisterPush(context: Context) {
|
|
|
567
657
|
}
|
|
568
658
|
```
|
|
569
659
|
|
|
660
|
+
> **警告:**
|
|
661
|
+
>
|
|
662
|
+
> 如果你的业务仅使用即时通信 IM 聊天能力,请勿在 IM 登录前先调用 `registerPush`。否则 SDK 可能会按独立推送场景注册 Push 类型账号,并产生对应的 Push DAU。Push DAU 超出套餐额度后,可能会产生额外费用。
|
|
663
|
+
>
|
|
664
|
+
|
|
570
665
|
**验证**:
|
|
571
666
|
|
|
572
667
|
1. `registerPush` 的 `onSuccess` 回调被触发。
|
|
@@ -580,7 +675,6 @@ fun loginIMAndRegisterPush(context: Context) {
|
|
|
580
675
|
如需自定义推送标识(如使用业务侧用户 ID),可在 `registerPush` 前调用 setRegistrationID。
|
|
581
676
|
|
|
582
677
|
> **注意:**
|
|
583
|
-
>
|
|
584
678
|
> 混用场景下,自定义 `registrationID` 必须与 IM 登录使用的 `userID` 完全一致,否则会产生账号互踢导致推送丢失。
|
|
585
679
|
>
|
|
586
680
|
|
|
@@ -597,7 +691,6 @@ fun loginIMAndRegisterPush(context: Context) {
|
|
|
597
691
|
|FCM|当前腾讯云快速接入文档说明 FCM 暂不支持推送统计功能。|
|
|
598
692
|
|
|
599
693
|
> **注意:**
|
|
600
|
-
>
|
|
601
694
|
> 回执地址不配置或配置错误,都会影响触达统计。
|
|
602
695
|
>
|
|
603
696
|
|
|
@@ -620,7 +713,7 @@ fun loginIMAndRegisterPush(context: Context) {
|
|
|
620
713
|
|
|
621
714
|
【REST API 发送】
|
|
622
715
|
|
|
623
|
-
如果需要通过服务端发送推送,可参考 [
|
|
716
|
+
如果需要通过服务端发送推送,可参考 [全员/标签推送](https://cloud.tencent.com/document/product/269/100634)。
|
|
624
717
|
|
|
625
718
|
【SDK API 发送】
|
|
626
719
|
|
|
@@ -658,7 +751,7 @@ V2TIMManager.getMessageManager().sendMessage(
|
|
|
658
751
|
|
|
659
752
|
`sendMessage` 属于 IMSDK 消息发送能力。仅集成 TIMPush 的用户不需要为了验证离线推送而额外接入完整 Chat 初始化、登录和消息发送流程。
|
|
660
753
|
|
|
661
|
-
|
|
754
|
+
**验证**:App 置于后台后发送测试消息,设备能收到离线推送通知。如果手机通知栏开启权限,通知栏会弹出离线推送消息弹框。如果收不到。
|
|
662
755
|
|
|
663
756
|
## 处理通知点击跳转
|
|
664
757
|
|
|
@@ -876,7 +969,6 @@ class App : Application() {
|
|
|
876
969
|
**验证**:点击通知后 `onNotificationClicked` 被调用,且 `ext` 内容与发送时设置的一致。如果回调未触发,请检查:控制台点击动作是否选择了「打开应用内指定界面」并保持默认填充值、监听器是否在 `Application.onCreate()` 中注册、发送消息时是否设置了 `ext`。
|
|
877
970
|
|
|
878
971
|
> **说明:**
|
|
879
|
-
>
|
|
880
972
|
> 旧版本工程中可能仍使用 `TUICore.registerEvent` 回调或 `LocalBroadcastManager` 广播处理点击通知。这两种方式在当前版本仍可工作,但新接入用户建议优先使用 `addPushListener`。如需从旧方案迁移,删除旧的事件注册或广播注册代码,改为在 `Application.onCreate()` 中调用 `addPushListener` 即可,回调中获取到的 `ext` 内容与旧方案一致。
|
|
881
973
|
>
|
|
882
974
|
|
|
@@ -885,7 +977,6 @@ class App : Application() {
|
|
|
885
977
|
厂商离线通道通常有消息分类机制。消息分类会影响推送及时性、单设备每日接收数量、夜间展示、声音、横幅和厂商通道权限。
|
|
886
978
|
|
|
887
979
|
> **注意:**
|
|
888
|
-
>
|
|
889
980
|
> 只有 IM 聊天、订单、交易、账号变更等用户预期强、需要及时触达的消息,才建议申请或使用高优先级分类。营销、广告、活动、资讯类消息不应滥用高优分类,否则可能被厂商降级、限频或冻结权限。
|
|
890
981
|
>
|
|
891
982
|
|
|
@@ -1,22 +1,15 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 前提条件
|
|
2
|
+
1. 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/intro/) 中开启推送服务,默认支持在线推送。
|
|
2
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
5
|
|
|
5
|
-
|
|
6
|
-
>
|
|
7
|
-
> 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/miniapp/intro/) 中开启推送服务,默认支持在线推送。如果您需要使用离线推送,请您先完成厂商配置,具体操作方法可参见 厂商配置 > 微信小程序多端框架。
|
|
8
|
-
>
|
|
6
|
+
3. 微信开发者工具版本需 ≥ 1.06.2410152,您可进入 [下载地址](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 进行版本下载。
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
微信开发者工具版本需 ≥ 1.06.2410152,您可进入 [下载地址](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 进行版本下载。
|
|
13
|
-
|
|
14
|
-
## 集成腾讯云消息推送服务
|
|
8
|
+
## 操作步骤
|
|
15
9
|
|
|
16
10
|
### 步骤1: 推送插件配置
|
|
17
11
|
|
|
18
12
|
> **说明:**
|
|
19
|
-
>
|
|
20
13
|
> 在 [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/nightly.html) 中开启推送服务,默认支持在线推送。
|
|
21
14
|
>
|
|
22
15
|
|
|
@@ -37,7 +30,6 @@
|
|
|
37
30
|
### 步骤2: 离线推送配置
|
|
38
31
|
|
|
39
32
|
> **说明:**
|
|
40
|
-
>
|
|
41
33
|
> 如果只使用在线推送,则无需进行厂商离线推送配置。
|
|
42
34
|
>
|
|
43
35
|
|
|
@@ -131,7 +123,6 @@
|
|
|
131
123
|
当您准备好以上文件后,可以按照描述填入相关信息:
|
|
132
124
|
|
|
133
125
|
> **说明:**
|
|
134
|
-
>
|
|
135
126
|
> **NSE 相关配置详细描述如下:**
|
|
136
127
|
>
|
|
137
128
|
> - 开启 NSE:借助 iOS 10 Service Extension 特性统计消息抵达率 及设置 APNs 离线推送的通知图片。
|
|
@@ -146,7 +137,6 @@
|
|
|
146
137
|
### 集成 JS API
|
|
147
138
|
|
|
148
139
|
> **说明:**
|
|
149
|
-
>
|
|
150
140
|
> 如何使用 npm 请查阅[官方文档](https://developers.weixin.qq.com/miniprogram/dev/devtools/npm.html),此处不再赘述。
|
|
151
141
|
>
|
|
152
142
|
|
|
@@ -159,8 +149,6 @@
|
|
|
159
149
|
|
|
160
150
|
### 使用方法
|
|
161
151
|
|
|
162
|
-
将 SDKAppID 和 appKey 替换为您在 [IM 控制台 > 推送服务 Push > 概览](https://console.cloud.tencent.com/im/push-plugin-push-identifier) 获取的应用的信息。如图所示:
|
|
163
|
-
|
|
164
152
|
``` javascript
|
|
165
153
|
import Push from "@tencentcloud/donut-push"
|
|
166
154
|
const sdkAppID = 0; // 您的 SDKAppID
|
|
@@ -252,10 +240,6 @@ App({
|
|
|
252
240
|
|
|
253
241
|
需要修改 project.miniapp.json 文件才能重新构建远程基座 App,改一下应用的 version code 再进行构建即可。
|
|
254
242
|
|
|
255
|
-
### **我可以从哪里查看推送服务 Push 的相关计费信息?**
|
|
256
|
-
|
|
257
|
-
价格及购买相关问题,请参见 [推送服务计费说明](https://cloud.tencent.com/document/product/269/110762#Push)。
|
|
258
|
-
|
|
259
243
|
### **iOS 在控制台上测试工具显示“上传 token 无效,请检查”,怎么办?**
|
|
260
244
|
|
|
261
245
|
需要您检查下上传的 p12证书是否为推送证书、且 Bundle ID 应该是与主 App 一致。
|
|
@@ -4,10 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
## AI 集成
|
|
6
6
|
|
|
7
|
-
通过
|
|
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 将根据项目类型引导你完成环境检测、厂商通道配置、凭据填写、代码接入和验证等步骤。
|
|
8
8
|
|
|
9
9
|
> **注意:**
|
|
10
|
-
>
|
|
11
10
|
> 使用 Push Skill AI 集成不是全自动流程,依然需要开发者在厂商配置控制台、腾讯云控制台等配置 Push 相关信息。具体的配置方法请参考下文相关章节。
|
|
12
11
|
>
|
|
13
12
|
|
|
@@ -345,7 +344,6 @@ Future<void> removeTIMPushListener() async {
|
|
|
345
344
|
```
|
|
346
345
|
|
|
347
346
|
> **注意:**
|
|
348
|
-
>
|
|
349
347
|
> - `TencentCloudChatPush().registerPush` 当前仍要求传入 `onNotificationClicked` 参数,但该参数待废弃。新接入业务请不要在 `registerPush` 的 `onNotificationClicked` 中处理跳转,统一使用 `addPushListener`。
|
|
350
348
|
> - `ext` 是发送方写入的业务透传字段,建议使用 JSON 字符串,例如 `{"conversationID":"user_A","conversationType":1}`。
|
|
351
349
|
> - 若 App 冷启动后需要立即处理点击事件,建议尽早注册 `listener`,例如在登录流程完成后、业务首页初始化前完成注册。
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
+
## 前提条件
|
|
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`、`businessID`、App Group ID 均为占位符,请勿在代码仓库中提交真实密钥。
|
|
14
|
+
|
|
1
15
|
## 操作步骤
|
|
2
16
|
|
|
3
17
|
### 步骤1:集成 TIMPush
|
|
4
18
|
|
|
5
|
-
|
|
19
|
+
集成 SDK:
|
|
6
20
|
``` java
|
|
7
21
|
// 版本号 “VERSION” 请前往 中获取配置。
|
|
8
22
|
// oh-package.json5 中配置集成包
|
|
@@ -15,13 +29,6 @@ dependencies: {
|
|
|
15
29
|
### 步骤2:注册推送
|
|
16
30
|
|
|
17
31
|
调用接口推送注册成功后,就可以收到离线推送通知了。
|
|
18
|
-
|
|
19
|
-
> **说明:**
|
|
20
|
-
>
|
|
21
|
-
> 注册接口必填参数 SDKAppID 和客户端密钥 AppKey 的获取路径是 [IM 控制台 > 推送服务 Push > 概览](https://console.cloud.tencent.com/im/push-plugin-push-identifier),如下图所示:
|
|
22
|
-
>
|
|
23
|
-
>
|
|
24
|
-
|
|
25
32
|
``` java
|
|
26
33
|
import { TIMPushListener, TIMPushManager, TIMPushMessage } from '@tencentcloud/timpush';
|
|
27
34
|
|
|
@@ -43,14 +50,13 @@ TIMPushManager.getInstance()
|
|
|
43
50
|
|
|
44
51
|
### 步骤4:发送推送消息
|
|
45
52
|
|
|
46
|
-
您可以在 [
|
|
53
|
+
您可以在 [接入测试](https://console.cloud.tencent.com/im/push-plugin-push-check) 指定 `RegistrationID/userID` 进行离线推送测试。REST API 接口详细说明可参见:[全员/标签推送](https://cloud.tencent.com/document/product/269/100634)。
|
|
47
54
|
|
|
48
55
|
### 步骤5:解析离线推送消息
|
|
49
56
|
|
|
50
57
|
收到推送消息后点击通知栏,组件会回调该点击事件和透传离线消息。
|
|
51
58
|
|
|
52
59
|
> **注意:**
|
|
53
|
-
>
|
|
54
60
|
> 1. 注册回调时机必须放在应用 [UIAbility](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/uiability-lifecycle) 的 onCreate() 函数中。
|
|
55
61
|
> 2. 控制台配置点击后续动作按如下配置,选择**打开应用内指定界面**,请勿修改默认值。
|
|
56
62
|
>
|
|
@@ -65,9 +71,4 @@ let pushListener: TIMPushListener = {
|
|
|
65
71
|
TIMPushManager.getInstance().addPushListener(pushListener);
|
|
66
72
|
```
|
|
67
73
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
> **说明:**
|
|
71
|
-
>
|
|
72
|
-
> - 接入完成收不到推送,请先自助使用 [排查工具](https://cloud.tencent.com/document/product/269/100629) 查看下具体原因。推送指标数据查看,请使用 [数据统计](https://cloud.tencent.com/document/product/269/100628) 查询。
|
|
73
|
-
> - 全员/标签推送功能请参见:[REST API 接口 - 发起全员/标签推送](https://cloud.tencent.com/document/product/269/100634)。
|
|
74
|
+
恭喜您已经完成了推送插件的接入。如果接入完成收不到推送,请使用 [排查工具](https://cloud.tencent.com/document/product/269/100629) 查看具体原因。
|