帮你快速理解、总结文档立即下载

React Native

最近更新时间:2026-09-02 11:19:30
我的收藏
本文介绍如何在本地快速跑通腾讯云推送服务(TIMPush)的 React Native 体验 Demo,验证“注册推送 > 离线推送下发 > 通知栏展示”的完整链路。

说明:
Demo 地址:Tencent-RTC/TIMPush_Demoreact-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-native
npm install
# iOS 额外步骤
cd ios && pod install && cd ..

步骤 2:填写基础凭证

打开 App.tsx,替换占位符:
const SDK_APP_ID = 0; // 改为您的 SDKAppID
const APP_KEY = ''; // 改为您的 AppKey

步骤 3:配置 Android 端

1. Demo 入口类 MainApplication.kt 已继承 TencentCloudPushApplication,无需修改。
2. android/build.gradle 中添加厂商 maven 仓库与 classpath;在 android/app/build.gradle 中按需启用厂商通道(小米 / 华为 / 荣耀 / OPPO / vivo / 魅族 / FCM),并填写荣耀 / vivo 的 manifestPlaceholdersHONOR_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.gradleapplicationId 完全一致,否则离线推送不可用。

步骤 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,请将 appKeynull,否则会把 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 自查,并按 错误码 查询失败回调含义。

相关文档