[TOC]
# 概述
> 通过集成科大讯飞统计分析SDK可以跟踪移动应用的用户属性及操作行为,您可以通过科大讯飞的网站服务查看、下载到数据处理的结果。通过多维度的精准分析,帮助您调整产品的各种策略。阅读如下文档,您可以在几分钟之内轻松完成集成过程。
# 集成说明
## **申请appid**
在 http://www.xfyun.cn 网站中注册成为开发者并创建一款应用,您将获得一款标识您的应用的appid。
## **导入SDK**
1. 下载最新版SDK包
2. 将libSunFlower.a拷贝至工程的文件目录中
3. 将libSunFlower.a导入至工程中:
Targets-->Build Phases-->Link Binary With Libraries
4. 将工程Build Settings中的Library Search Paths指定到正确的libSunFlower.a所在目录位置
5. 添加如下动态依赖库至Link Binary With Libraries:
libz.tbd
CoreTelephony.framework
CoreLocation.framework
SystemConfiguration.framework
CoreGraphics.framework
# 接口说明
## **配置接口**
#### 1.日志收集总开关
~~~
//日志收集总开关, 默认是开启状态.此设置只能在所有统计接口前调用
//YES:开启;NO:关闭
[IFlyFlowerCollector SetCollectorStatus:YES];
~~~
#### 2.设置appid
~~~
[IFlyFlowerCollector SetAppid:@"12345678"];
~~~
#### 3.控制台日志打印
~~~
//设置开启Debug模式(默认关闭)
//YES:开启;NO:关闭
[IFlyFlowerCollector SetDebugMode:YES];
~~~
#### 4.崩溃及卡顿日志收集
~~~
//开启CrashReport收集, 默认是开启状态.
//YES:开启;NO:关闭
[IFlyFlowerCollector SetCaptureUncaughtException:YES];
//设置卡顿判断时间间隔,默认为5s
[IFlyFlowerCollector SetBlockMonitorTimeInterval:5];
//设置卡顿日志收集状态,默认为关闭
/YES:开启;NO:关闭
[IFlyFlowerCollector SetBlockMonitorStatus:YES];
~~~
#### 5.收集位置信息
~~~
//设置是否收集位置信息
//YES:开启;NO:关闭
[IFlyFlowerCollector SetAutoLocation:YES];
~~~
## **日志收集接口**
#### 1.自定义事件统计
~~~
//1.在希望记录事件发生的地方调用如下方法:
[IFlyFlowerCollector OnEvent:@" music "];
[IFlyFlowerCollector OnEvent:@" music " label:@"爸爸去哪里哇"];
NSDictionary *dic = [NSDictionary dictionaryWithObject:@" song " forKey:@" 爸爸去哪里哇"];
[IFlyFlowerCollector OnEvent:@" music " paramDic:dic];
//2.记录事件的持续时间(单位毫秒):
//自己计算并传入时间
[IFlyFlowerCollector OnEventDuration:@" music " duration: 5 * 60 * 1000];
//在事件开始时调用
[IFlyFlowerCollector OnBeginEvent:@" music "];
//在事件结束时调用
[IFlyFlowerCollector OnEndEvent:@" music "];
/*
注意:
1.请确保事件开始和结束的eventId一致。在Debug模式下可以看到事件是否添加成功的log。
2. event_id和label不能使用特殊字符,且长度不能超过128个字节;map中的key和value 都不能使用特殊字符,key和value均不能超过128个字节。
*/
~~~
#### 2.自定义错误统计
~~~
[IFlyFlowerCollector OnError:@"error type" paramMsg:@"error message"];
~~~
#### 3.页面访问统计
您可以统计每个View停留时长及路径,需要配对使用。
~~~
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[IFlyFlowerCollector OnPageStart:@"page1"];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[IFlyFlowerCollector OnPageEnd:@"page1"];
}
~~~
#### 4.日志信息统计
~~~
NSDictionary *dic = [NSDictionary dictionaryWithObject:@" log content " forKey:@" log key"];
[IFlyFlowerCollector onLog:@" businessType " paramDic:dic];
[IFlyFlowerCollector onLog:@" businessType " paramDic:dic duration:5 * 60 * 1000 label:@" log lable "];
~~~
#### 5.日志立即上传
调用后本地存储的日志立即上传至服务端。
~~~
[IFlyFlowerCollector Flush];
~~~
#### 6.数据上报策略
您可以通过讯飞网站上配置日志上报的频率。目前支持:启动时发送、按时间间隔发送。
需要在程序的入口中添加:
~~~
[IFlyFlowerCollector updateOnlineConfig];
~~~
用来获取后台配置的策略。默认启动时发送。
获取返回数据:
~~~
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mytest:) name:SUNFLOWERNOTIFICATION object:nil];
~~~
详见demo。
#### 7.在线参数
您在讯飞网站上设置Key-Value值之后,可以调用如下接口动态获取线上最新的参数值:
~~~
//XXX为您在网站上设置的key
NSString *value = [IFlyFlowerCollector getOnlineParams:@"xxx"];
~~~
## **个性化功能接口**
#### 1.用户信息登录接口
~~~
1.创建用户信息Module
IFlyFlowerUserEntity *user = [[IFlyFlowerUserEntity alloc] init];
//登录类型
user.loginType = IFlyFlowerUserEntityTypeOwner;
//用户ID,必传
user.userID = @“123456”;
//用户名
user.userName = @“sunflower”;
//手机
user.telephone = @“1234567890”;
//E-mail
user.email = @“msp_support@iflytek.com”;
//扩展字段
user.extDic = [NSDictionary dictionaryWithObject:@"1234" forKey:@"text"];
2.注册用户信息
[IFlyFlowerCollector SetUserBind: user bindType: IFlyFlowerBindRegister];
3.用户登入
[IFlyFlowerCollector SetUserBind: user bindType: IFlyFlowerBindLogin];
4.用户登出
[IFlyFlowerCollector SetUserBind: nil bindType: IFlyFlowerBindlogout];
~~~
#### 2.设置channelID
~~~
[IFlyFlowerCollector setChannelID:@"testChannel"];
~~~
#### 3.设置duid
~~~
[IFlyFlowerCollector SetDuid:@"testduid"];
~~~
#### 4.判断设备是否越狱
~~~
[IFlyFlowerCollector isJailbroken];
~~~
#### 5.判断App是否被破解
~~~
[IFlyFlowerCollector isPirated];
~~~