教你轻松在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 ...
随机推荐
- Angular4项目,默认的package.json创建及配置
1.使用如下命令,可以创建一个默认的 package.json npm init 创建后如下图所示: 添加 angular4 的 dependencies: npm install@ ...
- 如何在Windows2008 Server服务器上开启Ping或者禁PING
方法1:命令行模式 进入服务器后 点击 开始--运行 输入命令: netsh firewall set icmpsetting 8 这样就可以在外部ping到服务器了 非常简单实用! 同样道理,如果想 ...
- 单页Html及Android App供小孩学习常用汉字
为了检验及帮助小孩学习常用汉字,简单开发本网页应用: 常用汉字是按使用频率排序的,来源于网上: 该简单应用 有Android APP下载 “学习常用汉字_20150910.apk” 单页Html 示例 ...
- ASP.NET相关事件及JS的执行顺序
实验代码: ASPX: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="We ...
- 微服务熔断限流Hystrix之流聚合
简介 上一篇介绍了 Hystrix Dashboard 监控单体应用的例子,在生产环境中,监控的应用往往是一个集群,我们需要将每个实例的监控信息聚合起来分析,这就用到了 Turbine 工具.Turb ...
- AJPFX简述JavaStringBuffer方法
以下是StringBuffer类支持的主要方法: 序号 方法描述 1 public StringBuffer append(String s)将指定的字符串追加到此字符序列. 2 public Str ...
- Git之删除分支
目录 删除本地分支 删除远程分支 删除本地分支: git branch -d dev [git branch -参数 本地分支名称] 删除远程分支: git push origin --delete ...
- BottomNavigationBar底部导航条用法
先来张效果图 接下来是实现过程 1.加入依赖 compile 'com.ashokvarma.android:bottom-navigation-bar:1.3.0' 2.xml布局 fragment ...
- git 配置免密上传,配置ssh key
1.windows 打开git bash 控制台,linux 直接打开命令控制台,输入 ssh-keygen 一直enter 下一步 2.生成的文件windows 存放在c://users 路径下,l ...
- 最简单的教程:在Ubuntu操作系统里安装Docker
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...