
📖 目录
- 极光推送到底怎么飞进你的手机?——原理篇
- 架构图一览——一张图看懂「自建通道 + 厂商通道」双保险
- 实战篇:RN 0.73 接入 JPush 3.x——逐行 diff 讲解
- 常见坑 & 生产环境 checklist
- 延伸阅读 & 源码仓库
1. 原理篇:一条推送的奇幻漂流
| 阶段 | 关键节点 | 技术要点 |
|---|---|---|
| ① 业务方调用 | 你的后端 | HTTPS JSON → 极光云 |
| ② 极光路由 | 极光 Gateway | 在线→长连接;离线→厂商通道 |
| ③ 终端送达 | RN App | 如果进程被杀,小米/华为系统级 Service 代发 |
2. 架构图:自建 + 厂商融合通道
3. 实战:RN 0.73 接入 JPush 3.x(含 diff)
3.1 安装依赖
yarn add jpush-react-native@3.1.0 jcore-react-native@2.2.1
# iOS 还需 cd ios && pod install,本文聚焦 Android
3.2 Android 原生层配置
// android/app/build.gradle
+manifestPlaceholders = [
+ JPUSH_PKGNAME: "com.demo", // 与 applicationId 一致
+ JPUSH_APPKEY : "你的 AppKey", // 官网后台复制
+ JPUSH_CHANNEL: "google-play",
+ XIAOMI_APPID : "2882303******",
+ XIAOMI_APPKEY: "5******",
+ OPPO_APPKEY : "c******",
+ OPPO_APPID : "30******",
+ OPPO_APPSECRET: "9******"
+]
dependencies {
+ implementation 'cn.jiguang.sdk.plugin:huawei:5.4.0'
+ implementation 'cn.jiguang.sdk.plugin:xiaomi:5.4.0'
+ implementation 'cn.jiguang.sdk.plugin:oppo:5.4.0'
+ implementation fileTree(dir: "libs", include: ["*.aar"]) // OPPO aar
}
3.3 RN JS 层初始化
import JPush from 'jpush-react-native';
function App() {
useEffect(() => {
JPush.init();
JPush.setLoggerEnable(__DEV__);
JPush.getRegistrationID(rid => console.log('regId=', rid.registerID));
// 点击通知回调
JPush.addNotificationListener(event => {
if (event.notificationEventType === 'notificationOpened') {
// 跳转 WebView / 原生页
Router.push(event.extras.path);
}
});
}, []);
}
3.4 运行时权限(Android 13+)
import { PermissionsAndroid, Platform } from 'react-native';
async function requestNotify() {
if (Platform.OS === 'android' && Platform.Version >= 33) {
await PermissionsAndroid.request(
PermissionsAndroid.PERMISSIONS.POST_NOTIFICATIONS
);
}
}
4. 生产环境 Checklist
| 检查项 | 命令/路径 |
|---|---|
| ProGuard 白名单 | -keep class cn.jpush.** { *; } |
| 日志开关 | 仅 __DEV__ 开启 |
| 厂商通道在线 | 极光 Portal → 厂商统计 → 全部绿色 ✅ |
| 离线测试 | adb shell am force-stop com.demo 后推送 |
| 重复初始化 | 确保只调用一次 JPush.init() |
5. 延伸阅读 & 源码
- 官方文档
- Sample RN 项目(GitHub) ← 本文完整代码已上传
- 极光推送SDK RN版
🎉 结语
10 年前“保活”靠双进程,今天“到达”靠厂商。极光把 自建长连接 + 系统级白名单 封装成一条 API,让 RN 开发者也能轻松拥有 98% 到达率。跟着本文 diff 撸一遍,提测、上线、安心睡大觉!
以我之思,借AI之力


被折叠的 条评论
为什么被折叠?



