React Native 轻松集成统计功能(Android 篇)

前端之家收集整理的这篇文章主要介绍了React Native 轻松集成统计功能(Android 篇)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

关于推送的集成请参考这篇文章,本篇文章将引导你集成统计功能,只需要简单的三个步骤就可以集成统计功能

第一步 安装

在你的项目路径下执行命令:

  1. npm install janalytics-react-native --save
  2. npm install jcore-react-native --save
  3. react-native link

执行完上述命令后,使用 Android Studio 打开你的项目。

第二步 配置:

2.1 配置 settings.gradle

执行完 link 命令后,如果 link 失败,则需要手动打开 settings.gradle 文件,完成以下配置:

your project/settings.gradle

  1. include ':app','janalytics-react-native','jcore-react-native'
  2. project(':janalytics-react-native').projectDir = new File(rootProject.projectDir,'../node_modules/janalytics-react-native/android')
  3. project(':jcore-react-native').projectDir = new File(rootProject.projectDir,'../node_modules/jcore-react-native/android')

2.2 配置 build.gradle

your project/android/app/build.gradle

  1. android {
  2. ...
  3. defaultConfig {
  4. applicationId "your application id"
  5. ...
  6. manifestPlaceholders = [
  7. JPUSH_APPKEY: "your app key",//在此替换你的APPKey
  8. JPUSH_CHANNEL: "developer-default",//应用渠道号,默认即可
  9. ]
  10. }
  11. }
  12. ...
  13. dependencies {
  14. compile project(':janalytics-react-native')
  15. compile project(':jcore-react-native')
  16. }

2.3 配置 AndroidManifest.xml

your project/AndroidManifest.xml

  1. <manifest>
  2. <application>
  3. ...
  4. <Meta-data android:name="JPUSH_CHANNEL" android:value="${APP_CHANNEL}"/>
  5. <Meta-data android:name="JPUSH_APPKEY" android:value="${JPUSH_APPKEY}"/>
  6. ...
  7. </application>
  8. </manifest>
  9. ...

到此为止配置已经完成了,现在 sync 一下项目即可看到 janalytics 和 jcore 两个库出现在自己的项目下。

第三步 使用

3.1 加入 JAnalyticsPackage:

your project/app/MainApplication.java

  1. ...
  2. @Override
  3. protected List<ReactPackage> getPackages() {
  4. return Arrays.<ReactPackage>asList(
  5. new MainReactPackage(),new JAnalyticsPackage(SHUTDOWN_TOAST,SHUTDOWN_LOG)
  6. );
  7. }

上面的两个参数是 bool 类型的,第一个参数设置为 true 表示关闭 toast 提示,第二个设置为 true 表示关闭日志打印。建议在 debug 版本中打开。
同样在 MainApplication,调用 init 方法

  1. @Override
  2. public void onCreate() {
  3. super.onCreate();
  4. SoLoader.init(this,false);
  5. // 在 Init 之前调用,设置为 true,则会打印 debug 级别日志,否则只会打印 warning 级别以上的日志
  6. JAnalyticsInterface.setDebugMode(true);
  7. JAnalyticsInterface.init(this);
  8. }

3.2 import JAnalyticsModule

接下来在 JS 文件中只要引入 JAnalyticsModule 就可以调用它的接口了:

your component.js

  1. ...
  2. import JAnalyticsModule from 'janalytics-react-native';

调用 API

startLogPageView(params)

这个方法表示开始记录页面统计,在生命周期中调用

  1. componentDidMount() {
  2. var param = {
  3. pageName: "main"
  4. };
  5. JAnalyticsModule.startLogPageView(param);
  6. }

stopLogPageView(params)

这个方法表示结束记录页面统计,在生命周期中调用

  1. componentWillUnmount() {
  2. var param = {
  3. pageName: "main"
  4. };
  5. JAnalyticsModule.stopLogPageView(param);
  6. }

postEvent(event)

上报统计事件,目前事件分为:CountEvent(计数事件)、CalculateEvent(计算事件)、RegisterEvent(注册事件)、LoginEvent(登录事件)、BrowseEvent(浏览事件)、PurchaseEvent(购买事件)。各事件格式如下:

  1. loginEvent = {
  2. type: 'login',// 必填
  3. extra: Object,// 附加键值对,格式 {String: String}
  4. method: String // 填自己的登录方法
  5. success: Boolean
  6. }
  7.  
  8. registerEvent = {
  9. type: 'register',// 附加键值对,格式 {String: String}
  10. method: String // 填自己的登录方法
  11. success: Boolean
  12. }
  13.  
  14. purchaseEvent = {
  15. type: 'purchase',// 必填
  16. extra: Object,// 附加键值对,格式 {String: String}
  17. goodsType: String,goodsId: String,goodsName: String,success: Boolen,price: float,currency: String,// CNY,USD
  18. count: int
  19. }
  20.  
  21. browseEvent = {
  22. type: 'browse',id: String,extra: Object,// 附加键值对,格式 {String: String}
  23. name: String,contentType: String,duration: float
  24. }
  25.  
  26. countEvent = {
  27. type: 'count',// 附加键值对,格式 {String: String}
  28. id: String
  29. }
  30.  
  31. calculateEvent = {
  32. type: 'calculate',// 附加键值对,格式 {String: String}
  33. id: String,value: double
  34. }

使用示例:

  1. onLoginPress = () => {
  2. var LoginEvent = {
  3. type: 'login',extra: {
  4. userId: "user1"
  5. },method: "login",success: true
  6. };
  7. JAnalyticsModule.postEvent(LoginEvent);
  8. }

作者:KenChoi - 极光推送

原文:React Native 轻松集成统计功能(Android 篇)

知乎专栏:极光日报

猜你在找的React相关文章