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)
- MySQL8.0.19开启GTID主从同步CentOS8
- MySQL数据库在高并发下的优化方案
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能