下面是我的完整集成过程(主要参考为umeng官方文档)

第一步,在android/app/build.gradle中添加如下代码(这里使用的基础组件为2.0.0和统计组件8.0.0,如果低于这个版本,会略有不同,这里不做解释)

  1. dependencies {
  2. ........
  3. implementation 'com.umeng.umsdk:common:2.0.0' //基础组件
  4. implementation 'com.umeng.umsdk:utdid:1.1.5.3'
  5. implementation 'com.umeng.umsdk:analytics:8.0.0' //统计
  6. implementation 'com.umeng.umsdk:push:5.0.2' //推送
  7. ........
  8. }

第二步,在android/app/src/main/AndroidManifest.xml中添加权限

  1. <manifest……>
  2. <uses-sdk android:minSdkVersion="8"></uses-sdk>
  3. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  4. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  5. <uses-permission android:name="android.permission.INTERNET"/>
  6. <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
  7. <application ……>
  8. ……
  9. <activity ……/>
  10. <meta-data android:value="YOUR_APP_KEY" android:name="你的APPKEY"/>
  11. <meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
  12. </application>
  13. </manifest>

第三步,在android/app/src/main/java/com/你的项目名/MainActivity.java中添加以下代码

  1. //引入资源包
  2. import com.umeng.analytics.MobclickAgent;
  3. import com.umeng.commonsdk.UMConfigure;
  4.  
  5. //重写onCreate方法
  6. protected void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. // 注意:如果您已经在AndroidManifest.xml中配置过appkey和channel值,可以调用此版本初始化函数。
  9. UMConfigure.init(this, "你的appkay", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, null);
  10. // interval: 单位是毫秒,默认Session间隔时间是30秒
  11. MobclickAgent.setSessionContinueMillis(30000);
  12. MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL);
  13. UMConfigure.setProcessEvent(true);
  14. }
  15.  
  16. //增加以下代码
  17. public void onResume() {
  18. super.onResume();
  19. MobclickAgent.onResume(this);
  20. }
  21. public void onPause() {
  22. super.onPause();
  23. MobclickAgent.onPause(this);
  24. }

第四步,下载umeng提供modules

  1. 下载一下三个文件:下载地址(https://github.com/umeng/React_Native_Compent/tree/master/android/app/src/main/java/com/umeng/soexample/invokenative)
  2. AnalyticsModule.java //统计包
  3. DplusReactPackage.java // 桥接文件
  4. RNUMConfigure.java //相关配置
    其他文件说明(这里暂时不下载)
    PushModule.java //消息推送
    ShareModule.java //第三方分享

第五步,导入资源包

  1. 1.android/app/src/main/java/com/你的项目名,新建目录invokenative
  2. 2.将之前下载的三个文件放入该目录下
    3.修改三个java文件的package的路径,例如

  1.  

第六步,修改之前下载的文件的package路径,将其修改为你的工程路径。这里以我的路径为例

  1. 原本的package路径
  2. package com.umeng.soexample.invokenative;
  3. 修改后的package路径
  4. package com.github_rn.invokenative;
  5.  
  6. AnalyticsModule.javaDplusReactPackage.javaRNUMConfigure.java)三个文件全部要依次修改(代码位于文件的最顶端)

第七步,在android/app/src/main/java/com/你的项目名/MainApplication.java中添加以下代码

  1. //导入我们第五六步修改好的资源包
  2. import com.github_rn.invokenative.DplusReactPackage;
  3.  
  4. @Override
  5. protected List<ReactPackage> getPackages() {
  6. return Arrays.<ReactPackage>asList(
  7. new MainReactPackage(),
  8. new DplusReactPackage() // 实例化一下
  9. );
  10. }

第八步,导出react-native原生模块(这里我们可以直接使用umeng提供的文件直接在你的项目中使用,地址https://github.com/umeng/React_Native_Compent/blob/master/native/AnalyticsUtil.js

  1. var { NativeModules } = require('react-native');
  2. module.exports = NativeModules.UMAnalyticsModule;

第九步,maven依赖配置(自动集成,手动集成需要在android/app下新建libs,拷贝官方的jar进去)

  1. allprojects {
  2. repositories {
  3. mavenLocal()
  4. google()
  5. jcenter()
  6. maven { url 'https://dl.bintray.com/umsdk/release' } // 新添加这一行
  7. maven {
  8. // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
  9. url "$rootDir/../node_modules/react-native/android"
  10. }
  11. }
  12. }

第十步,使用

  1. ....
  2. import AnalyticsUtil from '../util/AnalyticsUtil';
  3. ....
  4. AnalyticsUtil.onEvent('SearchClick');
  5. .......

最后到这里关于umeng统计的全部代码已经集成完毕,

转载请说明出处,略略略.......

教你轻松在React Native中集成统计(umeng)的功能(最新版)的更多相关文章

  1. 教你轻松在React Native中使用自定义iconfont

    在react-native项目中我们一般使用到 react-native-vector-icons(这里不介绍如何使用react-native-vector-icons按照官方文档即可)但是当reac ...

  2. 在React Native中集成热更新

    最近,在项目DYTT集成了热更新,简单来说,就是不用重新下载安装包即可达到更新应用的目的,也不算教程吧,这里记录一下. 1.热更新方案 目前网上大概有两个比较广泛的方式,分别是 react-nativ ...

  3. React Native中集成友盟社会化分享-----童叟无欺

    1.下载所需的jar,下载地址https://developer.umeng.com/sdk/reactnative?spm=a211g2.211692.0.0.28967d238GW6mC 2.将以 ...

  4. [RN] React Native 中使用 stickyHeaderIndices 实现 ScrollView 的吸顶效果

    React Native中,ScrollView组件可以使用 stickyHeaderIndices 轻松实现 sticky 效果. 例如下面代码中: <ScrollView showsVert ...

  5. React Native 中 CSS 的使用

    首先声明,此文原作者为黎 跃春 React Native中CSS 内联样式 对象样式 使用Stylesheet.Create 样式拼接 导出样式对象 下面的代码是index.ios.js中的代码: / ...

  6. react native中的欢迎页(解决首加载白屏)

    参照网页: http://blog.csdn.net/fengyuzhengfan/article/details/52712829 首先是在原生中写一些方法,然后通过react native中js去 ...

  7. React Native中的网络请求fetch和简单封装

    React Native中的网络请求fetch使用方法最为简单,但却可以实现大多数的网络请求,需要了解更多的可以访问: https://segmentfault.com/a/1190000003810 ...

  8. [转] 「指尖上的魔法」 - 谈谈 React Native 中的手势

    http://gold.xitu.io/entry/55fa202960b28497519db23f React-Native是一款由Facebook开发并开源的框架,主要卖点是使用JavaScrip ...

  9. [转] 在React Native中使用ART

    http://bbs.reactnative.cn/topic/306/%E5%9C%A8react-native%E4%B8%AD%E4%BD%BF%E7%94%A8art 前半个月捣腾了一下Rea ...

随机推荐

  1. PostgreSQL - 允许远程访问的设置方法

    原文转载至:PostgreSQL 允许远程访问设置方法 安装PostgreSQL数据库之后,默认是只接受本地访问连接.如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置. 配 ...

  2. Query on a tree again! SPOJ - QTREE3

    https://vjudge.net/problem/SPOJ-QTREE3 https://www.luogu.org/problemnew/show/P4116 一个log(LCT)比两个log( ...

  3. No space left on device

    No space left on device 数据库无法启动, 发现是内存没有清空导致. 处理过程: ipcs ipcrm  

  4. 144 Binary Tree Preorder Traversal 二叉树的前序遍历

    给定一棵二叉树,返回其节点值的前序遍历.例如:给定二叉树[1,null,2,3],   1    \     2    /   3返回 [1,2,3].注意: 递归方法很简单,你可以使用迭代方法来解决 ...

  5. C#之九大视图

    本节向大家介绍一下有关UML视图方面的内容,UML视图共有9种,它们之间有什么区别和联系呢,下面就让我们一起来学习吧,相信通过本节的介绍你一定会有不少收获. UML视图 UML总共提供了9种视图,这些 ...

  6. Dapper系列之二:Dapper的事务查询

    Dapepr讲解 上篇文章我们介绍了,什么是Dapepr,有什么好处,性能的对比,还有多表多数据添加操作(事务的封装)等等.本篇文章我们继续讲解.....如果本篇文章看不懂,请看我上一篇文章:Dape ...

  7. javascript回调函数那些事~

    什么是回调函数? 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数.回调函数不是由该函数的实现方直 ...

  8. 基于ABP的Easyui admin framework正式开放源代码

    下载&反馈:http://www.webplus.org.cn v1.0 (2016/9/21) EF6+MVC5+API2+Easyui1.4.2开发 后台管理不使用iframe,全ajax ...

  9. sql server group by 分组带sum avg求和需要注意的一点

    这是在写SQL语句遇到的一个sum  和group bu分组的问题

  10. poj1857 To Europe! To Europe!

    思路: 一维dp. 实现: #include <cstdio> #include <iostream> using namespace std; const int INF = ...