WKTrackingData
基于 AOP 的全埋点库
使用 CocoaPods 安装
CocoaPods 是 Objective-C 的依赖管理器,可以自动化并简化使用 WKTrackingData 等第三方库的过程。您可以使用以下命令安装它
$ gem install cocoapods
Podfile
要使用 CocoaPods 将 WKTrackingData 集成到您的 Xcode 项目中,请将其指定在您的 Podfile
中
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'WKTrackingData', '~> 0.0.2'
end
然后,运行以下命令
$ pod install
架构
WKTrackingDataManager
WKTrackingDataManager
WKTrackingDataViewPathHelper
面向切面编程(AOP)
UIApplication+AppDelegate 说明
UIApplication+UIControlEventPath
UIView+GestureTracking
UITableView+Tracking
UICollectionView+Tracking
UIViewController+Tracking
UIAlertAction+Tracking
UIAlertView+Tracking
UIActionSheet+Tracking
附加功能
NSObject+TrackingData
使用说明
WKTrackingDataManager
WKTrackingDataManager
负责创建和管理所有追踪数据。
开启追踪
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[kWKTrackingDataManager enableTracking];
return YES;
}
```
在didFinishLaunchingWithOptions
中开启事件追踪,如果在didFinishLaunchingWithOptions
之后启用,可能导致部分事件无法覆盖。
// default is 30
kWKTrackingDataManager.memeryItemCount = 60;
kWKTrackingDataManager.uploadType = WKTrackingDataUploadDefault;
可以自定义内存中超过多少条事件触发上传,以及上传的类型。
上传追踪数据
kWKTrackingDataManager.uploadTrackingDataTrigger = ^(NSArray *trackingDataArray, void (^remove)(void)) {
// do something
...
// after upload success , remove uploaded tmp data
remove();
};
在合适的地方进行数据上传操作,注意在上传成功后调用 remove()
,将已上传数据从缓存中删除;如果未调用 remove()
,己上传数据仍然存在于缓存中。
外交付的 trackingDataArray
数据如下:
[
{
"event_id" = 96D071ADA1D70DF2805634108B754A10;
"event_path" = "#buttonClick:#UIButton#UIButton[0]#UIView[0]#ViewController#...#UIApplication#AppDelegate#currentTitle=Button#state=1#enabled=1#selected=0";
"event_time" = 1578558811346;
}
]
添加额外参数
为了方便业务定制,可以给响应事件的控件添加额外的参数:
self.button.wk_trackingData = @{
@"id" : @"4396",
@"type" : @"event_type"
};
那么对外交付的 trackingDataArray
数据就会变为:
[
{
"event_id" = xxxxxx;
"event_path" = "#buttonClick:#...#currentTitle=Button#state=1#enabled=1#selected=0#id=4396#type=event_type";
"event_time" = 1578558811346;
}
]
对于不希望进行事件追踪的控件,可以通过 wk_ignoreTracking
进行忽略:
self.slider.wk_ignoreTracking = YES;
许可证
WKTrackingData 以 MIT 许可证发布。