教你轻松在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 ...
随机推荐
- Contest Hunter 0103最短Hamilton路径 【状压dp】 By cellur925
题目传送门 Hamilton路径的定义:从0(起点)到n-1(终点)不重不漏地经过每个点恰好一次. 由于数据范围非常小,考虑状压.如NOIP2017宝藏一题,把状态压缩设为n个点是否已到达的二进制数. ...
- 关于C_Cpp的一些小结
## 某些函数的使用 1. printf / sprintf / fprintf printf:把格式字符串输出到标准输出(可重定向) sprintf:把格式字符串输出到指定字符串中,参数比print ...
- 洛谷 P3935 Calculating
虽然对这道题没有什么帮助,但是还是记一下:约数个数也是可以线性筛的 http://www.cnblogs.com/xzz_233/p/8365414.html 测正确性题目:https://www.l ...
- 洛谷 P2261 [CQOI2007]余数求和 ||整除(数论)分块
参考:题解 令f(i)=k%i,[p]表示不大于p的最大整数f(i)=k%i=k-[k/i]*i令q=[k/i]f(i)=k-qi如果k/(i+1)=k/i=qf(i+1)=k-q(i+1)=k-qi ...
- VS Code 自用插件备份
自用插件备份 Auto Close Tag 自动闭合标签 Atuo Rename Tag 更改前面标签的时候, 自动更改后面的闭合标签 Guides 对齐线 open-in-browser 在浏览器中 ...
- 牛客国庆集训派对Day_1~3
Day_1 A.Tobaku Mokushiroku Kaiji 题目描述 Kaiji正在与另外一人玩石头剪刀布.双方各有一些代表石头.剪刀.布的卡牌,每局两人各出一张卡牌,根据卡牌的内容决定这一局的 ...
- pyinstaller 打包.exe文件记录遇到的问题
用pyinstaller打包py2.7的程序有时会出现不匹配的错误,在python的idle下运行没有问题,打包之后却会报一些错误,所以打包的话还是尽量用py3.5版本,而且用 -F 将程序打包成一个 ...
- PHP实现XML传输
sendXML.php <!--发送XML的页面--> <?php $xml_data = '<xml>...</xml>';//发送的xml $url ...
- FileZilla Server 端设置passive模式注意事项
1,需求和问题的产生 实践中需要分布在各地的各个客户端向云端服务器上传文件,因此在阿里云服务器上安装了FileZilla Server软件作为文件FTP服务端. 客户端程序采用FTP方式向服务端传输文 ...
- vb6如何调用delphi DLL中的函数并返回字符串?
1,问题描述 最近发现vb6调用delphi DLL中的函数并返回字符串时出现问题,有时正常,有时出现?号,有时干脆导致VB程序退出 -- :: 将金额数字转化为可读的语音文字:1转化为1元 ???? ...