教你轻松在React Native中集成统计(umeng)的功能(最新版)
下面是我的完整集成过程(主要参考为umeng官方文档)
第一步,在android/app/build.gradle中添加如下代码(这里使用的基础组件为2.0.0和统计组件8.0.0,如果低于这个版本,会略有不同,这里不做解释)
dependencies {
........
implementation 'com.umeng.umsdk:common:2.0.0' //基础组件
implementation 'com.umeng.umsdk:utdid:1.1.5.3'
implementation 'com.umeng.umsdk:analytics:8.0.0' //统计
implementation 'com.umeng.umsdk:push:5.0.2' //推送
........
}
第二步,在android/app/src/main/AndroidManifest.xml中添加权限
<manifest……>
<uses-sdk android:minSdkVersion="8"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<application ……>
……
<activity ……/>
<meta-data android:value="YOUR_APP_KEY" android:name="你的APPKEY"/>
<meta-data android:value="Channel ID" android:name="UMENG_CHANNEL"/>
</application>
</manifest>
第三步,在android/app/src/main/java/com/你的项目名/MainActivity.java中添加以下代码
//引入资源包
import com.umeng.analytics.MobclickAgent;
import com.umeng.commonsdk.UMConfigure; //重写onCreate方法
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 注意:如果您已经在AndroidManifest.xml中配置过appkey和channel值,可以调用此版本初始化函数。
UMConfigure.init(this, "你的appkay", "Umeng", UMConfigure.DEVICE_TYPE_PHONE, null);
// interval: 单位是毫秒,默认Session间隔时间是30秒
MobclickAgent.setSessionContinueMillis(30000);
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.LEGACY_MANUAL);
UMConfigure.setProcessEvent(true);
} //增加以下代码
public void onResume() {
super.onResume();
MobclickAgent.onResume(this);
}
public void onPause() {
super.onPause();
MobclickAgent.onPause(this);
}
第四步,下载umeng提供modules
下载一下三个文件:下载地址(https://github.com/umeng/React_Native_Compent/tree/master/android/app/src/main/java/com/umeng/soexample/invokenative)
AnalyticsModule.java //统计包
DplusReactPackage.java // 桥接文件
RNUMConfigure.java //相关配置
其他文件说明(这里暂时不下载)
PushModule.java //消息推送
ShareModule.java //第三方分享
第五步,导入资源包
1.在android/app/src/main/java/com/你的项目名,新建目录invokenative
2.将之前下载的三个文件放入该目录下
3.修改三个java文件的package的路径,例如

第六步,修改之前下载的文件的package路径,将其修改为你的工程路径。这里以我的路径为例
原本的package路径
package com.umeng.soexample.invokenative;
修改后的package路径
package com.github_rn.invokenative; (AnalyticsModule.java、DplusReactPackage.java,RNUMConfigure.java)三个文件全部要依次修改(代码位于文件的最顶端)
第七步,在android/app/src/main/java/com/你的项目名/MainApplication.java中添加以下代码
//导入我们第五六步修改好的资源包
import com.github_rn.invokenative.DplusReactPackage; @Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new DplusReactPackage() // 实例化一下
);
}
第八步,导出react-native原生模块(这里我们可以直接使用umeng提供的文件直接在你的项目中使用,地址https://github.com/umeng/React_Native_Compent/blob/master/native/AnalyticsUtil.js)
var { NativeModules } = require('react-native');
module.exports = NativeModules.UMAnalyticsModule;
第九步,maven依赖配置(自动集成,手动集成需要在android/app下新建libs,拷贝官方的jar进去)
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven { url 'https://dl.bintray.com/umsdk/release' } // 新添加这一行
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
第十步,使用
....
import AnalyticsUtil from '../util/AnalyticsUtil';
....
AnalyticsUtil.onEvent('SearchClick');
.......

最后到这里关于umeng统计的全部代码已经集成完毕,
转载请说明出处,略略略.......
教你轻松在React Native中集成统计(umeng)的功能(最新版)的更多相关文章
- 教你轻松在React Native中使用自定义iconfont
在react-native项目中我们一般使用到 react-native-vector-icons(这里不介绍如何使用react-native-vector-icons按照官方文档即可)但是当reac ...
- 在React Native中集成热更新
最近,在项目DYTT集成了热更新,简单来说,就是不用重新下载安装包即可达到更新应用的目的,也不算教程吧,这里记录一下. 1.热更新方案 目前网上大概有两个比较广泛的方式,分别是 react-nativ ...
- React Native中集成友盟社会化分享-----童叟无欺
1.下载所需的jar,下载地址https://developer.umeng.com/sdk/reactnative?spm=a211g2.211692.0.0.28967d238GW6mC 2.将以 ...
- [RN] React Native 中使用 stickyHeaderIndices 实现 ScrollView 的吸顶效果
React Native中,ScrollView组件可以使用 stickyHeaderIndices 轻松实现 sticky 效果. 例如下面代码中: <ScrollView showsVert ...
- React Native 中 CSS 的使用
首先声明,此文原作者为黎 跃春 React Native中CSS 内联样式 对象样式 使用Stylesheet.Create 样式拼接 导出样式对象 下面的代码是index.ios.js中的代码: / ...
- react native中的欢迎页(解决首加载白屏)
参照网页: http://blog.csdn.net/fengyuzhengfan/article/details/52712829 首先是在原生中写一些方法,然后通过react native中js去 ...
- React Native中的网络请求fetch和简单封装
React Native中的网络请求fetch使用方法最为简单,但却可以实现大多数的网络请求,需要了解更多的可以访问: https://segmentfault.com/a/1190000003810 ...
- [转] 「指尖上的魔法」 - 谈谈 React Native 中的手势
http://gold.xitu.io/entry/55fa202960b28497519db23f React-Native是一款由Facebook开发并开源的框架,主要卖点是使用JavaScrip ...
- [转] 在React Native中使用ART
http://bbs.reactnative.cn/topic/306/%E5%9C%A8react-native%E4%B8%AD%E4%BD%BF%E7%94%A8art 前半个月捣腾了一下Rea ...
随机推荐
- hive的使用 + hive的常用语法
本博文的主要内容有: .hive的常用语法 .内部表 .外部表 .内部表,被drop掉,会发生什么? .外部表,被drop掉,会发生什么? .内部表和外部表的,保存的路径在哪? .用于创建一些临时表存 ...
- @ConfigurationProperties和@EnableConfigurationProperties配合使用
https://blog.csdn.net/u010502101/article/details/78758330 @ConfigurationProperties注解主要用来把properties配 ...
- 记忆化搜索(DFS+DP) URAL 1501 Sense of Beauty
题目传送门 /* 题意:给了两堆牌,每次从首部取出一张牌,按颜色分配到两个新堆,分配过程两新堆的总数差不大于1 记忆化搜索(DFS+DP):我们思考如果我们将连续的两个操作看成一个集体操作,那么这个操 ...
- Spark MLlib编程API入门系列之特征选择之向量选择(VectorSlicer)
不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). VectorSlicer用于从原来的特征 ...
- PHP pack和unpack函数详解
pack 压缩资料到位字符串之中. 语法: string pack(string format, mixed [args]...); 返回值: 字符串 函数种类: 资料处理 内容说明 本函数用来将资料 ...
- poj2184 Cow Exhibition
思路: dp+滚动数组. 类似01背包. 实现: #include <iostream> #include <cstdio> #include <algorithm> ...
- 洛谷 P1455 搭配购买
题目描述 明天就是母亲节了,电脑组的小朋友们在忙碌的课业之余挖空心思想着该送什么礼物来表达自己的心意呢?听说在某个网站上有卖云朵的,小朋友们决定一同前往去看看这种神奇的商品,这个店里有n朵云,云朵已经 ...
- css-test
transition-content See the Pen NLOgVR by nakata139@gmail.com (@deepblue1982) on CodePen.
- MySQL数据表查询操作
准语法结构:编写DQL时一定要严格按照此语法的顺序来实现!/* SELECT [ALL | DISTINCT] ALL表示查询出所有的内容 DISTINCT 去重 {* | 表名.* | 表名.字段名 ...
- Python3基础教程(十六)—— 迭代器、生成器、装饰器
在这个实验里我们学习迭代器.生成器.装饰器有关知识. 这几个概念是 Python 中不容易理解透彻的概念,务必把所有的实验代码都完整的输入并理解清楚其中每一行的意思. 迭代器 Python 迭代器(I ...