本文介绍如何在本地快速跑通腾讯云推送服务(TIMPush)的 Flutter 体验 Demo,验证“注册推送 > 离线推送下发 > 通知栏展示”的完整链路。

说明:
Demo 地址:Tencent-RTC/TIMPush_Demo(
flutter/ 目录)。Demo 为未配置任何参数的纯净模板,需按下文完成配置后方可编译运行。
产品能力说明请参见 推送服务产品概述。
前置准备(控制台)
跑通 Demo 前,请先在腾讯云控制台完成账号与厂商通道准备:
1. 创建应用:登录 即时通信 IM 控制台,在应用列表单击创建应用接入,记录生成的
SDKAppID。2. 获取密钥:进入目标应用的应用配置,单击查看密钥,拷贝并妥善保管
SDKAppID 与客户端密钥 AppKey。注意:
推送服务的客户端密钥与 Chat 的密钥不同,请勿混用。密钥属于敏感信息,请勿提交到代码仓库。
3. 开通推送并配置厂商通道:在控制台推送服务页开通推送能力,按需配置 Android 厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM)与 iOS APNs 通道,下载
timpush-configs.json 及各厂商服务配置文件,并记录 APNs 证书 ID。环境要求
项目 | 要求 |
Flutter SDK | >= 3.7 |
开发工具 | Android Studio / Xcode + CocoaPods |
测试设备 | Android 或 iOS 真机(离线推送必须通过真机验证) |
插件版本 | tencent_cloud_chat_push: ^9.0.7652(已在 pubspec.yaml 中声明) |
跑通步骤
步骤 1:安装依赖
cd flutterflutter pub get
步骤 2:填写基础凭证
打开
lib/main.dart,替换占位符:const int sdkAppId = 0; // 改为您的 SDKAppIDconst String appKey = ''; // 改为您的 AppKeyconst int apnsCertificateId = 11111; // iOS:改为控制台 APNs 证书 ID(仅跑 Android 可忽略)
步骤 3:配置 Android 端
1. Demo 的
android/app/src/main/AndroidManifest.xml 中 Application 已继承 TencentCloudChatPushApplication,无需修改。2. 将控制台生成的
timpush-configs.json 放到 android/app/src/main/assets/ 目录。3. 在
android/app/build.gradle 中按需启用厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM),并放置对应厂商服务文件:配置文件 | 放置路径 |
华为 agconnect-services.json | android/app/ |
FCM google-services.json | android/app/(不要放入 assets) |
荣耀 mcs-services.json | android/app/(不要放入 assets) |
步骤 4:配置 iOS 端
1. 安装 Pod 依赖:
cd ios && pod install && cd ..
2. Demo 的
ios/Runner/AppDelegate.swift 已添加 TIMPushDelegate 并实现 businessID()、applicationGroupID()、onRemoteNotificationReceived(_:) 三个方法,无需修改。3. 用 Xcode 打开
ios/Runner.xcworkspace,开启 Push Notifications 能力,配置签名 / Bundle ID / App Group,并保证 App Group 与 applicationGroupID() 的返回值一致。步骤 5:运行验证
flutter run
连接真机运行。注册成功后界面显示
RegistrationID;将 App 切至后台,通过控制台推送服务 Push > 接入测试发送一条测试推送,设备收到推送即代表全流程跑通。注意事项
调用时机:不要在
main 入口直接调用 registerPush。仅使用推送能力时,请在用户同意隐私政策后调用;若同时集成 IM,请在 IM 登录成功后再调用。调用顺序:
setRegistrationID 必须在 registerPush 之前调用才会生效;与 Chat 打通时其值须与 Chat 登录 userID 完全一致。通知点击回调:
registerPush 的 onNotificationClicked 参数待废弃,请传空实现;通知点击统一通过 TencentCloudChatPush().addPushListener 监听并解析 ext 后跳转。触达统计(iOS,可选):需
registerPush 传入 applicationGroupID,且 AppDelegate 实现的 applicationGroupID() 返回值与其一致。常见问题
收不到推送,请按以下顺序排查:
1.1
registerPush 返回码是否为 0;1.2
getRegistrationID() 返回值是否非空,且与控制台排查工具中使用的标识一致;1.3
registerPush 调用时机是否正确(隐私政策同意后 / IM 登录成功后);1.4 Android 端
timpush-configs.json 是否放入 assets、iOS 端 Push Notifications 能力是否开启;1.5 仍无法定位,请参见 Flutter 接入文档 - 收不到推送排障流程。
相关文档
厂商配置索引
推送排查工具