jpush-react-native android端集成——个人记录

简介: 为什么选用极光?因为这个 jpush-react-native 是极光官网维护的 ,而且关于原生方面配置也不是很多,方便搞前端从事RN的同学使用。官网注册 账号https://www.

为什么选用极光?因为这个 jpush-react-native 是极光官网维护的 ,而且关于原生方面配置也不是很多,方便搞前端从事RN的同学使用。
官网注册 账号https://www.jiguang.cn/,获取 AppKey

img_bc255e19d0a59cf68f40e93404a1f735.png
image.png

自动link配置
npm install jpush-react-native --save
rnpm link jpush-react-native

我这里报错了  需要 link jcore-react-native
Project :app declares a dependency from configuration 'compile' to configuration 'default' which is not declared in the descriptor for project :jcore-react-native.

执行完 link 项目后可能会出现报错,需要手动配置一下 build.gradle 文件。
如果没有 手动加上


img_cc2cec9a33722f2228ba0e2928049bc7.png
image.png
img_79bd562a310cbe87bae74e61ff79fa85.png
image.png

img_048e1b403164906c5b34438ad72bec53.png
image.png
在AndroidManifest 添加 
 <meta-data
        android:name="JPUSH_APPKEY"
        android:value="${JPUSH_APPKEY}" />
    <meta-data
        android:name="JPUSH_CHANNEL"
        android:value="${APP_CHANNEL}" />

配置好后 sync 同步 一下项目, jpush-react-native 以及 jcore-react-native 作为 android Library 项目导进来了。
在app 下的 MainApplication.java 文件,加入 JPushPackage

import cn.jpush.reactnativejpush.JPushPackage;

   @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
          .....
              new JPushPackage(SHUTDOWN_TOAST, SHUTDOWN_LOG)
    //注意 在 MainApplication类下要定义  这两个变量  在下图位置
     private boolean SHUTDOWN_TOAST = false;
     private boolean SHUTDOWN_LOG = false;

      );
    }

img_183a2f76c71b9fd5cc0810db4fa49b09.png
image.png

在 MainActivity.java下添加如下代码 别忘记导入包
import cn.jpush.android.api.JPushInterface;

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        JPushInterface.init(this);
    }
    @Override
    protected void onPause() {
        super.onPause();
        JPushInterface.onPause(this);
    }

    @Override
    protected void onResume() {
        super.onResume();
        JPushInterface.onResume(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
    }


Android 配置到这里已经完成,然后就是RN 中的使用

在我们工程的根目录下
componentDidMount(){
 // 接收自定义消息
        JPushModule.addReceiveCustomMsgListener((message) => {
            console.log("message :" + JSON.stringify(message))
        });
        // 接收推送通知
        JPushModule.addReceiveNotificationListener((message) => {
       //这种情况 是一般 我们app处于运行状态 下会触发
            console.log("接受通知: " + JSON.stringify(message));
        });
        // 打开通知
        JPushModule.addReceiveOpenNotificationListener((map) => {
            console.log("打开通知!");
            //这里的 map.extras  //可选设置的键值对
            //map.alertContent   //推送的消息内容
            //ios   是  alert
            console.log(JSON.stringify(map))
            console.log("map.extra: " + map.extras);

            // 在这里 就可以处理 我们的路由跳转了  根据 我们推送的时候 约定好的键值对
    

img_27b8bc11a3936da922c887f12cd7e619.png
image.png

这里有个可选项 可以判断我们的路由跳转等


img_25c719317a5081d856c20f5ec60853e0.png
image.png

这里我们只是手动发送推送,进行测试,还要服务层配合我们 后台集成推送 主动触发 。

img_ef67f9e329f17543d6f7bbfd0c337416.png
android效果

ios端集成待更新

目录
相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
242 1
|
23天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
91 1
|
2月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
355 8
|
2月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
55 3
|
2月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
150 0
|
3月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
83 0
|
3月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
全面解析TensorFlow Lite:从模型转换到Android应用集成,教你如何在移动设备上轻松部署轻量级机器学习模型,实现高效本地推理
【8月更文挑战第31天】本文通过技术综述介绍了如何使用TensorFlow Lite将机器学习模型部署至移动设备。从创建、训练模型开始,详细演示了模型向TensorFlow Lite格式的转换过程,并指导如何在Android应用中集成该模型以实现预测功能,突显了TensorFlow Lite在资源受限环境中的优势及灵活性。
232 0
|
5月前
|
前端开发 JavaScript 测试技术
|
6月前
|
Java 开发工具 Android开发
Android mk 集成app
Android mk 集成app
54 5
|
5月前
|
文字识别 Android开发 C++
Tesseract OCR集成Android Studio实现OCR识别
Tesseract OCR集成Android Studio实现OCR识别
300 0