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

说明:
Demo 地址:Tencent-RTC/TIMPush_Demo(
react-native/ 目录)。Demo 为未配置任何参数的纯净模板,需按下文完成配置后方可编译运行。
产品能力说明请参见 推送服务产品概述。
前置准备(控制台)
跑通 Demo 前,请先在腾讯云控制台完成账号与厂商通道准备:
1. 创建应用:登录 即时通信 IM 控制台,在应用列表单击创建应用接入,记录生成的
SDKAppID。2. 获取密钥:进入目标应用的应用配置,单击查看密钥,拷贝并妥善保管
SDKAppID 与客户端密钥 AppKey。注意:
推送服务的客户端密钥与 Chat 的密钥不同,请勿混用。密钥属于敏感信息,请勿提交到代码仓库。
3. 开通推送并配置厂商通道:在控制台推送服务页开通推送能力,按需配置 Android 厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM)与 iOS APNs 通道,下载
timpush-configs.json 及各厂商服务配置文件,并记录 APNs 证书 ID。环境要求
项目 | 要求 |
Node.js | >= 18 |
开发环境 | React Native 开发环境、Android Studio / Xcode + CocoaPods |
测试设备 | Android 或 iOS 真机(离线推送必须通过真机验证) |
插件版本 | @tencentcloud/react-native-push: ^1.4.0(已在 package.json 中声明) |
跑通步骤
步骤 1:安装依赖
cd react-nativenpm install# iOS 额外步骤cd ios && pod install && cd ..
步骤 2:填写基础凭证
打开
App.tsx,替换占位符:const SDK_APP_ID = 0; // 改为您的 SDKAppIDconst APP_KEY = ''; // 改为您的 AppKey
步骤 3:配置 Android 端
1. Demo 入口类
MainApplication.kt 已继承 TencentCloudPushApplication,无需修改。2. 在
android/build.gradle 中添加厂商 maven 仓库与 classpath;在 android/app/build.gradle 中按需启用厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM),并填写荣耀 / vivo 的 manifestPlaceholders(HONOR_APPID / VIVO_APPKEY / VIVO_APPID)。3. 按下表路径放置配置文件(注意路径差异,放错将导致对应通道不可用):
配置文件 | 放置路径 |
timpush-configs.json | android/app/src/main/assets/ |
华为 agconnect-services.json | android/app/src/main/assets/ |
FCM google-services.json | android/app/(不要放入 assets) |
荣耀 mcs-services.json | android/app/(不要放入 assets) |
注意:
timpush-configs.json 内的包名必须与 android/app/build.gradle 的 applicationId 完全一致,否则离线推送不可用。步骤 4:配置 iOS 端
1. 用 Xcode 打开
ios/PushDemo.xcworkspace(不要打开 .xcodeproj)。2. 在 Signing & Capabilities 中添加 Push Notifications 能力,并配置签名 / Bundle ID。
3. 在
ios/.../Resources/ 目录下的 timpush-configs.json 中填入 APNs 证书 ID:{"businessID": "您的证书ID"}
步骤 5:运行验证
npm run android # 或 npm run ios
连接真机运行。注册成功后界面显示
RegistrationID;将 App 切至后台,通过控制台推送服务 Push > 接入测试发送一条测试推送,设备收到推送即代表全流程跑通。注意事项
调用顺序:
setRegistrationID 必须在 registerPush 之前调用才会生效;与 Chat 打通时其值须与 Chat 登录 userID 完全一致,否则会产生账号互踢导致推送丢失。IM 登录态复用:若已集成 IM 并在 IM 登录成功后调用
registerPush,请将 appKey 传 null,否则会把 IM 账号踢下线。事件监听:Demo 通过
addPushListener 监听 NOTIFICATION_CLICKED(通知点击)/ MESSAGE_RECEIVED(在线推送)/ MESSAGE_REVOKED(消息撤回)事件,可参考 App.tsx。触达统计(可选):华为 / 荣耀 / vivo / 魅族需按 React Native 接入文档 配置回执地址;FCM 暂不支持推送统计。
常见问题
Android 打包后某厂商通道收不到推送:优先检查对应配置文件是否放错目录(FCM / 荣耀的文件在
android/app/,不在 assets),以及厂商插件是否已启用。iOS 编译或运行异常:确认通过
.xcworkspace 打开工程、已执行 pod install(失败可先 pod repo update)、Push Notifications 能力已开启。收不到推送:使用控制台【推送排查】工具输入
RegistrationID 自查,并按 错误码 查询失败回调含义。相关文档
厂商配置索引
推送排查工具