react native 百度统计 ios端集成
react native 百度统计Android端的集成可参考:
https://www.jianshu.com/p/cc354c6a81d5 希望能够让同学们少走些弯路。
百度统计的集成还是蛮简单的,主要分下面一些步骤:
步骤
- sdk的集成
- 交互类
- sdk的配置以及初始化
- RN 端调用
1. sdk 的集成
官网下载地址:
https://mtj.baidu.com/web/sdk/index
我这里选择的是手动埋点的方式。
官网的 技术文档介绍:
https://mtj.baidu.com/static/userguide/book/ios/sdk/manual.html
官网介绍的已经很清楚,比友盟的集成清晰很多,大家按照文档操作就可以,很顺利就能完成集成。
2.交互类
git上有个开源的交互类 大家可进行参考修改
https://github.com/BaiduMobileAnalysis/baidumobstat-react-native/blob/master/ios/RCTBaiduMobStat/RCTBaiduMobStat/RCTBaiduMobStat.m
// // RCTBaiduMobStat.m // rent // // Created by 姜森林 on 2018/8/24. // Copyright © 2018年 Facebook. All rights reserved. // #import "RCTBaiduMobStat.h" #import <React/RCTLog.h> @implementation RCTBaiduMobStat RCT_EXPORT_MODULE(BaiduMTJ); RCT_EXPORT_METHOD(onEvent:(NSString *)eventId eventLabel:(NSString *)eventLabel) { [[BaiduMobStat defaultStat] logEvent:eventId eventLabel: eventLabel]; } RCT_EXPORT_METHOD(onEventDuration:(NSString *)eventId eventLabel:(NSString *)eventLabel durationTime:(nonnull NSNumber *)duration) { [[BaiduMobStat defaultStat] logEventWithDurationTime:eventId eventLabel: eventLabel durationTime:[duration unsignedLongValue]]; } RCT_EXPORT_METHOD(onEventStart:(NSString *)eventId eventLabel:(NSString *)eventLabel) { [[BaiduMobStat defaultStat] eventStart:eventId eventLabel: eventLabel]; } RCT_EXPORT_METHOD(onEventEnd:(NSString *)eventId eventLabel:(NSString *)eventLabel) { [[BaiduMobStat defaultStat] eventEnd:eventId eventLabel: eventLabel]; } RCT_EXPORT_METHOD(onEventWithAttributes:(NSString *)eventId eventLabel:(NSString *)eventLabel attributes:(NSDictionary *)attributes) { [[BaiduMobStat defaultStat] logEvent:eventId eventLabel: eventLabel attributes:attributes]; } RCT_EXPORT_METHOD(onEventDurationWithAttributes:(NSString *)eventId eventLabel:(NSString *)eventLabel durationTime:(nonnull NSNumber *)duration attributes:(NSDictionary *)attributes) { [[BaiduMobStat defaultStat] logEventWithDurationTime:eventId eventLabel: eventLabel durationTime:[duration unsignedLongValue] attributes:attributes]; } RCT_EXPORT_METHOD(onEventEndWithAttributes:(NSString *)eventId eventLabel:(NSString *)eventLabel attributes:(NSDictionary *)attributes) { [[BaiduMobStat defaultStat] logEvent:eventId eventLabel: eventLabel attributes:attributes]; } RCT_EXPORT_METHOD(onPageStart:(NSString *)name) { [[BaiduMobStat defaultStat] pageviewStartWithName:name]; } RCT_EXPORT_METHOD(onPageEnd:(NSString *)name) { [[BaiduMobStat defaultStat] pageviewEndWithName:name]; } @end
3.初始化工作
#import "BaiduMobStat.h" /** * 百度移动统计启动代码 */ [[BaiduMobStat defaultStat] startWithAppId:@"xxx"]; [[BaiduMobStat defaultStat] setEnableDebugOn: YES]; /***********************************************/
4.RN 端调用
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); };
像这些统计百度啊 友盟啊 集成方式都差不多,遇到什么问题大家仔细看下错误提示 就能解决。
Android 可参考 :
https://www.jianshu.com/p/cc354c6a81d5
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RecyclerView抢焦点自动滚动
最近有个项目,其中有一个新闻详情页面,在新闻详情下面是一个用户评论列表,最底部有一个评论输入框,有点类似于今日头条的新闻详情页面。评论列表是采用RecyclerView开发的,点击底部评论输入框会弹出软键盘。发现有个比较诡异的现象,当软键盘缩回去的时候,评论列表RecyclerView老是会自动滚动到顶部。这样体验会比较差,有可能我本来在看某条评论信息,点击评论输入后又放弃,这个时候我肯定是希望页面停留在原来那个地方的。 如下2张图所示,RecyclerView的header是一个WebView,用来加载新闻网页信息,其他列表项则是显示评论,点击底部评论弹出一个输入框以及软键盘,当软键盘取消的时候,RecyclerView自动滚动到了header顶部: 原本列表位置 弹出输入法后 通过查看源码以及参考网上别人的分析,原来这就是所谓的RecyclerView抢夺焦点现象。当输入框及软键盘显示出来的时候,整个界面的焦点是在这个输入框EditText上的,但是当取消软键盘的时候,界面焦点发生了变化,RecyclerView抢夺了焦点,进而导致界面自动滚动了。 通过试验,采用以下方法解决了我的...
- 下一篇
2-VVI-材料设计之CardView
零、前言 [1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].依赖implementation 'com.android.support:cardview-v7:26.1.0' CardView.gif 一、使用: 1.属性一览: app:cardBackgroundColor 背景颜色 app:cardCornerRadius 圆角大小 app:cardElevation z轴阴影高度 app:cardMaxElevation z轴最大高度值 app:contentPadding 内容与边距的间隔 app:contentPaddingLeft 内容与左边的间隔 app:contentPaddingTop 内容与顶部的间隔 app:contentPaddingRight 内容与右边的间隔 app:contentPaddingBottom 内容与底部的间隔 app:paddingStart 内容与边距的间隔起始 app:paddingEnd 内容与边距的间隔终止 app:ca...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19
- CentOS7设置SWAP分区,小内存服务器的救世主
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池