React Native + JPush 手把手:从 0 到 1 打造高到达率推送系统

在这里插入图片描述

📖 目录

  1. 极光推送到底怎么飞进你的手机?——原理篇
  2. 架构图一览——一张图看懂「自建通道 + 厂商通道」双保险
  3. 实战篇:RN 0.73 接入 JPush 3.x——逐行 diff 讲解
  4. 常见坑 & 生产环境 checklist
  5. 延伸阅读 & 源码仓库

1. 原理篇:一条推送的奇幻漂流

阶段关键节点技术要点
① 业务方调用你的后端HTTPS JSON → 极光云
② 极光路由极光 Gateway在线→长连接;离线→厂商通道
③ 终端送达RN App如果进程被杀,小米/华为系统级 Service 代发
业务服务器 极光云 客户端长连接 小米 Push Service 华为 Push Service RN App REST /v3/push 设备在线? 自建 TCP 下发 回调 JS 调用小米 API 调用华为 API 系统级通知 系统级通知 alt [在线] [离线] 点击/送达回执 数据报表 业务服务器 极光云 客户端长连接 小米 Push Service 华为 Push Service RN App

2. 架构图:自建 + 厂商融合通道

客户端
厂商通道
极光云
regId 在线
regId 离线
小米 ROM
华为 ROM
OPPO ROM
其他
自建长连接
RN App
MiPush
PushKit
OPush
Gateway
路由决策

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. 延伸阅读 & 源码


🎉 结语

10 年前“保活”靠双进程,今天“到达”靠厂商。极光把 自建长连接 + 系统级白名单 封装成一条 API,让 RN 开发者也能轻松拥有 98% 到达率。跟着本文 diff 撸一遍,提测、上线、安心睡大觉


以我之思,借AI之力

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值