react native 百度统计 Android 端集成

简介: 百度统计RN两端已经集成了,老板说百度统计统计的数据太垃圾了,业界都不用,我只想说一句呵呵。百度再不准确的数据 免费给你用,你还喷数据垃圾,这就是我们玩游戏时的小喷子,小学生,照顾小学生,未成年我们当然是听他的让换友盟,ok给你换。

百度统计RN两端已经集成了,老板说百度统计统计的数据太垃圾了,业界都不用,我只想说一句呵呵。
百度再不准确的数据 免费给你用,你还喷数据垃圾,这就是我们玩游戏时的小喷子,小学生,照顾小学生,未成年我们当然是听他的
让换友盟,ok给你换。友盟react native android端集成可参考这个:https://www.jianshu.com/p/1c41d4b66312 自己大概花了大半天时间,希望你们少走些弯路。

这里吧,多说几句,目前的话,自己相当于一个外包,总公司和其他公司合作的项目,相当于把我们技术外包过去。 我们用时一个月开发了一个APP ,已经交付。当然肯定是加班加出来的,然后现在就比较轻松,基本上改写产品提出来的一些bug,然后老板就看着不爽,说我们没事情干。这里的话就想吐槽一句:产品给你加班加出来了,能让人喘口气吗?资本主义真的是万恶,不断压榨,不断剥削。

在深圳,飞涨的房租,不得不向万恶势力低头.......


img_8ab0e871e83b7bb9b32d78745b4beedd.png
image.png

好了,不扯那么多了 进入正题:
百度统计的集成,比友盟的简单多了

1,sdk的集成

这里是sdk 的下载地址:
我用的是手动埋点的
https://mtj.baidu.com/web/sdk/index
集成文档:https://mtj.baidu.com/static/userguide/book/android/sdk/manual.html
这里官网介绍的已经很清楚了
记得我们在dependencies的时候 把拷贝到libs目录下的jia包名字对应上

img_b3ee50317f52237e7dec518505775934.png
image.png

权限配置

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.BLUETOOTH" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.WRITE_SETTINGS" />
 <uses-permission android:name="android.permission.GET_TASKS" />

2业务配置

 <!-- 您从百度网站获取的APP KEY,根据实际您的APP申请的APP_KEY进行修改 -->
 <meta-data
     android:name="BaiduMobAd_STAT_ID"
     android:value="a9e2ad84a2" /> 

 <!-- 渠道商编号 -->
 <meta-data
     android:name="BaiduMobAd_CHANNEL"
     android:value="Baidu Market" />

 <!-- 是否开启错误日志统计,默认为false -->
 <meta-data
     android:name="BaiduMobAd_EXCEPTION_LOG"
     android:value="true" />

 <!-- 日志仅在wifi网络下发送,默认为false -->
 <meta-data
     android:name="BaiduMobAd_ONLY_WIFI"
     android:value="false" />

 <!-- 是否获取基站位置信息 ,默认为true -->
 <meta-data
     android:name="BaiduMobAd_CELL_LOCATION"
     android:value="true" />

 <!-- 是否获取GPS位置信息,默认为true -->
 <meta-data
     android:name="BaiduMobAd_GPS_LOCATION"
     android:value="true" />

 <!-- 是否获取WIFI位置信息,默认为true -->
 <meta-data
     android:name="BaiduMobAd_WIFI_LOCATION"
     android:value="true" />

交互类:

新建了一个文件,然后建两个类


img_1c3c2a5b958f9788a97560431a095ff2.png
image.png

module类



public class BaiduMTJModule extends ReactContextBaseJavaModule {

    private ReactApplicationContext reactContext;

    public BaiduMTJModule(ReactApplicationContext reactContext) {

        super(reactContext);
        this.reactContext = reactContext;
    }
     ReactContextBaseJavaModule getCurrentActivity ;

    @Override
    public String getName() {
        return "BaiduMTJ";
    }

    @ReactMethod
    public void onPageStart(String name) {
        StatService.onPageStart(this.reactContext, name);
       }

    @ReactMethod
    public void onPageEnd(String name) {
        StatService.onPageEnd(this.reactContext, name);
    }
    @ReactMethod
    public void setDebugOn(Boolean isDebug) {
        StatService.setDebugOn(isDebug);
    }
    @ReactMethod
    public void onEvent(String eventId, String label) {
        StatService.onEvent(this.reactContext, eventId, label);
    }



    @ReactMethod
    public void onEventStart(String eventId, String label) {
        StatService.onEventStart(this.reactContext, eventId, label);
    }

    @ReactMethod
    public void onEventEnd(String eventId, String label) {
        StatService.onEventEnd(this.reactContext, eventId, label);
    }










}

ReactPackage类

public class BaiduMTJReactPackage implements ReactPackage {

    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }

    @Override
    public List<NativeModule> createNativeModules(
            ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();

        modules.add(new BaiduMTJModule(reactContext));

        return modules;
    }
}

然后再MainApplication.java中实例化一下,

 protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
              new BaiduMTJReactPackage(),
        
      );
    }

RN 调用
这里封装了一下 用的时候直接导入这个js 然后用这里的方法就行了。

import { NativeModules } from 'react-native';
const BaiduMTJ = NativeModules.BaiduMTJ;
export const onPageStart = pageName => {
  //用于统计单个自定义页面的起始和onPageEnd同时使用,不可单独使用
  return BaiduMTJ.onPageStart(pageName);
};
export const onPageEnd = pageName => {
  //用于统计单个Activity页面结束时间
  return BaiduMTJ.onPageEnd(pageName);
};
export const onEvent = (eventId, label) => {
  //用于统计自定义事件的发生次数
  // console.log(BaiduMTJ.onEvent(eventId, label));
  return BaiduMTJ.onEvent(eventId, label);
};

百度统计IOS 端集成待续...

目录
相关文章
|
2月前
|
数据采集 前端开发 开发工具
Demo发布- ClkLog客户端集成-React Native
ClkLog是一款支持开源和商业付费的用户行为分析软件系统,通过采集客户端行为日志数据,在开源的OLAP数据库上进行模型分析。常见的客户端有Web JS、IOS、Andriod 、小程序等,以及react-native 、uni-app等。Clklog方案选用了\神策提供的开源SDK来进行数据采集。
126 48
|
2月前
|
前端开发 JavaScript 测试技术
React 中集成 Chart.js 图表库
本文介绍了如何在 React 项目中集成 Chart.js 创建动态图表,涵盖基础概念、安装步骤、代码示例及常见问题解决方法,帮助开发者轻松实现数据可视化。
58 11
|
3月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
163 1
|
4月前
|
开发框架 Dart 前端开发
Android 跨平台方案对比之Flutter 和 React Native
本文对比了 Flutter 和 React Native 这两个跨平台移动应用开发框架。Flutter 使用 Dart 语言,提供接近原生的性能和丰富的组件库;React Native 则基于 JavaScript,具备庞大的社区支持和灵活性。两者各有优势,选择时需考虑团队技能和项目需求。
468 8
|
4月前
|
前端开发 JavaScript 开发者
Express.js与前端框架的集成:React、Vue和Angular的示例与技巧
本文介绍了如何将简洁灵活的Node.js后端框架Express.js与三大流行前端框架——React、Vue及Angular进行集成,以提升开发效率与代码可维护性。文中提供了详细的示例代码和实用技巧,展示了如何利用Express.js处理路由和静态文件服务,同时在React、Vue和Angular中构建用户界面,帮助开发者快速掌握前后端分离的开发方法,实现高效、灵活的Web应用构建。
98 3
|
4月前
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
182 0
|
5月前
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
120 0
|
5月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
全面解析TensorFlow Lite:从模型转换到Android应用集成,教你如何在移动设备上轻松部署轻量级机器学习模型,实现高效本地推理
【8月更文挑战第31天】本文通过技术综述介绍了如何使用TensorFlow Lite将机器学习模型部署至移动设备。从创建、训练模型开始,详细演示了模型向TensorFlow Lite格式的转换过程,并指导如何在Android应用中集成该模型以实现预测功能,突显了TensorFlow Lite在资源受限环境中的优势及灵活性。
502 0
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
67 0

热门文章

最新文章