React Native

  1. react-native init hello
  2. cd hello
  3. yarn add baidumobstat-react-native
  4. react-native link
  • 进入新建的目录,打开ios目录下的hello.xcodeproj工程,在iOS工程的Linked Frameworks and Libraries, 加入以下依赖
  1. libz.tbd
  2. libc++.tbd
  3. libicucore.tbd

如下图所示:

Add File 1

  • 由于baidumobstat-react-native库中的BaiduMobStat.h、libBaiduMobStat.a两个文件是示例所用,可能不是最新版本。建议您到SDK中心, 下载最新版本SDK,并将两个文件进行替换。

  • 在 iOS 工程中如果找不到头文件可能要在 TARGETS-> BUILD SETTINGS -> Search Paths -> Header Search Paths 添加如下路径

  1. $(SRCROOT)/../node_modules/baidumobstat-react-native/ios/RCTBaiduMobStat/RCTBaiduMobStat
  • 打开ios下的工程,在AppDelegate.m内添加百度移动统计的启动代码
  1. #import "BaiduMobStat.h"
  2. // - (BOOL)application: didFinishLaunchingWithOptions:
  3. [[BaiduMobStat defaultStat] startWithAppId:@"xxx"];
  • 根据如下目录,找到index.ios.js文件。该文件是一个js代码的示例,将其内容copy到React Native工程主目录下的App.js中,然后通过Xcode运行hello.xcodeproj工程App查看效果。MTJ的Api接口调用示例也可以参考index.ios.js。
  1. (React Native工程目录)/node_modules/baidumobstat-react-native/example/index.ios.js

API

JS的埋点Api,可以灵活使用,没有固定的调用场景,在JS代码的业务场景触发处埋点即可。

接口声明见下文。

事件分析

无时长事件

  1. // 接口声明
  2. BaiduMobStat.onEvent(eventId, eventLabel);
  3. // attributes 是以object形式传入的字典,如{'类型':'类型一', '数值': '3'}
  4. BaiduMobStat.onEventWithAttributes(eventId, eventLabel, attributes);
  5. // 调用示例
  6. BaiduMobStat.onEvent('event1', '事件一');
  7. BaiduMobStat.onEventWithAttributes('event4', '事件四', {'分类':'分类一'});

固定时长事件

  1. // 接口声明
  2. BaiduMobStat.onEventDuration(eventId, eventLabel, duration);
  3. // attributes 是以object形式传入的字典,如{'类型':'类型一', '数值': '3'}
  4. BaiduMobStat.onEventDurationWithAttributes(eventId, eventLabel, duration, attributes);
  5. // 调用示例
  6. BaiduMobStat.onEventDuration('event2', '事件二', 1000);
  7. BaiduMobStat.onEventDurationWithAttributes('event5', '事件五', 1000, {'分类':'分类一'});

自定义时长事件

  1. // 接口声明
  2. BaiduMobStat.onEventStart(eventId, eventLabel);
  3. BaiduMobStat.onEventEnd(eventId, eventLabel);
  4. // attributes 是以object形式传入的字典,如{'类型':'类型一', '数值': '3'}
  5. BaiduMobStat.onEventEndWithAttributes(eventId, eventLabel, attributes);
  6. // 调用示例
  7. BaiduMobStat.onEventStart('event6', '事件六');
  8. BaiduMobStat.onEventEnd('event3', '事件三');
  9. BaiduMobStat.onEventEndWithAttributes('event6', '事件六', {'分类':'分类一'});

页面分析

  1. // 接口声明
  2. BaiduMobStat.onPageStart(pageName);
  3. BaiduMobStat.onPageEnd(pageName);
  4. // 调用示例
  5. BaiduMobStat.onPageStart('页面一');
  6. BaiduMobStat.onPageEnd('页面一');