HubbleData SDK for React Native(iOS).
npm install react-native-hubbledata-ios#### 1. 下载包文件
```
$ npm i --save react-native-hubbledata-ios
#### 2. 链接库文件到你的项目中
参考 https://reactnative.cn/docs/0.43/linking-libraries-ios.html#content
#### 3. 根据HubbleData SDK文档需要做的一些设置
详见./RCTDATracker/RCTDATracker/HubbleDataSDK/ios.readme.md
##### 添加依赖库
* AdSupport.framework - 启用 Apple ADID 支持
* CoreTelephony.framework - 获取运营商
* Security.framework - 加密支持
* CoreLocation.framework - 获取定位信息的支持
* SystemConfiguration.framework - 获取联网方式(wifi, cellular)
* libsqlite3.dylib - sqlite 支持
* libz.dylib - gzip 压缩支持
路径:TARGETS -> Build Phases -> Link Binary With Libraries
在 *AppDelegate.m application:didFinishLaunchingWithOptions 方法中调用如下方法,参数依次为 app key,版本和来源渠道。
[[DATracker sharedTracker] startTrackerWithAppKey:@"app-key" appVersion:@"0.1" appChannel:@"AppStore"];
如需要禁用 SDK 自动上传数据功能,调用
[[DATracker sharedTracker] startTrackerWithAppKey:@"app-key" appVersion:@"0.1" appChannel:@"AppStore" autoUpload:NO];
如需要设置只在 wifi 环境下发送数据,调用
[[DATracker sharedTracker] startTrackerWithAppKey:@"app-key" appVersion:@"0.1" appChannel:@"AppStore" autoUpload:YES sendOnWifi:YES];
设置为只在 WIFI 下发送数据,会导致服务器接收数据延迟,对统计系统结果的及时性会产生影响,不建议使用
如需要使用自定义设备标识(比如 UDID),调用
[[DATracker sharedTracker] startTrackerWithAppKey:@"app-key" appVersion:@"0.1" appChannel:@"AppStore" autoUpload:YES sendOnWifi:NO deviceUDID:@"id-set-by-app"];
App Key 可从移动分析系统网站获取,不得使用为空值或者 null
以下所有调用均需发生在 启用 API 之后
--------------------------
手动发送数据请调用
[[DATracker sharedTracker] upload];
设置两次数据发送的最小时间间隔,单位秒。默认定时发送为关闭状态,设置大于0的时间间隔开启定时器,否则关闭定时器
- (void)setUploadInterval:(NSInteger)uploadInterval;
本地缓存的最大事件数目
- (void)setUploadBulkSize:(NSInteger)uploadBulkSize;
手动禁用自动上传
[[DATracker sharedTracker] setAutoUploadOn:NO];
手动开启只在 WIFI 下发送数据
[[DATracker sharedTracker] setSendOnWifiOn:YES];
以下接口详细的参数说明,见RCTDATracker.m
#### 获取 Device ID
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.getDeviceId((res => {
console.log(res);
}));
`
#### 用户帐号管理
`javascript
import DATracker from 'react-native-hubbledata-ios';
var userId = 'xiaoming';
DATracker.loginUser(userId);
DATracker.logoutUser;
`
#### 用户位置记录
`javascript
import DATracker from 'react-native-hubbledata-ios';
var lattitude = 32.0;
var longtitude = 128.0;
DATracker.setLocation(latitude, longtitude);
`
#### 事件捕捉
`javascript
/**
* 参数为一个dictionary类型,对应key值需与以下参数一致
*
* @param eventId 事件ID
* @param seconds 事件耗时
* @param latitude 纬度
* @param longitude 经度
* @param category 分类
* @param label 标签
* @param attributes 事件属性
*/
import DATracker from 'react-native-hubbledata-ios';
var dic = {eventId : 'reactnative',
attributes : {key : 'value'}};
DATracker.trackEvent(dic);
`
#### 页面埋点
`javascript
import DATracker from 'react-native-hubbledata-ios';
var screenName = 'page1';
DATracker.trackScreen(screenName);
`
#### 统计事件的时长,事件开始的定时器开启
`javascript
import DATracker from 'react-native-hubbledata-ios';
var eventId = 'reactnative';
DATracker.trackTimer(eventId);
`
#### 清空统计事件时长的所有定时器
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.clearTrackTimer;
`
#### 开启崩溃统计
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.enableCrashReporting;
`
#### 手动上传
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.upload;
`
#### 设置上传的时间间隔
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.setUploadInterval(15);
`
#### 设置上传的最大事件条数
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.setUploadBulkSize(100);
`
#### 获取当前公共属性
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.currentSuperProperties((res => {
console.log(res);//res为获取的公共属性
}));
`
#### 设置公共属性
`javascript
import DATracker from 'react-native-hubbledata-ios';
var dic = {key : 'value'};
DATracker.registerSuperProperties(dic);
`
#### 删除已经设置的公共属性
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.unregisterSuperProperty('key');
`
#### 置用户的地理位置
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.setPopolationLocation('China', 'Zhejiang', 'Hangzhou');
`
#### 设置用户的个人信息
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.setPopulationWithAccount('xiaoming', 'zhouxiaoming', '2017-05-17T06:35:56.045Z', 0);
`
#### 当前用户添加属性
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.set({key : 'value'});
`
#### 当前用户添加属性,不会覆盖已经存在的属性值
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.setOnce({key : 'value'});
`
#### 删除属性
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.unset('key');
`
#### 删除用户信息
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.deleteUser;
`
#### 用户消费记录
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.trackCharge(50, {key : 'value'});
`
#### 清空消费记录
`javascript
import DATracker from 'react-native-hubbledata-ios';
DATracker.clearCharges;
``