[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];
~~~