8000 GitHub - liuyunclouder/DTTracker: DTTracker,日志采集SDK
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

liuyunclouder/DTTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT Licence

DTTracker 是袋鼠云官方iOS数据埋点SDK

如何使用

  1. 注册袋鼠云云日志帐号
  2. 创建上传接口及token信息
  3. 安装DTTracker SDK,并使用上传接口及token初始化

安装

DTTracker 支持使用CocoaPods、Carthage和手工引入。

CocoaPods

DTTracker 支持使用CocoaPods引入:

pod  'DTTracker'

Carthage

DTTracker 支持使用Carthage引入:

github "liuyunclouder/DTTracker"

手工引入

克隆本仓库到本地,直接拖拽DTTracker.framework到工程目录下,同时添加libsqlite3和libz.1.2.5

版本支持

支持iOS 8.0及以上版本

使用说明

上传接口及token信息

  1. 登录后进入 https://log.dtstack.com/upload.html#/http 
  2. 根据指示选择解析规则(解析规则列表允许自定义规则),填写appname和tag,保存好填写的appname,这就是后续初始化时需要的token,点击下一步
  3. 选择接口的协议类型,建议选择https,这样更好地保护您的数据安全,然后复制接口并保存

初始化

#import <DTTracker/DTTracker.h>

DTTrackManager *trackMangar = [DTTrackManager sharedInstanceWithServerURL:@"your_upload_url" token:@"your_app_token" debugMode:DTTrackerDebugAndTrack];

your_upload_url为步骤3中的接口地址,your_app_token为步骤2中的appname,发布时debugMode一定要设置为DTTrackerDebugOff。

运行模式

/**
 运行模式
 */
typedef NS_ENUM(NSInteger, DTTrackerDebugMode) {
    /** 关闭DEBUG模式,线上环境使用 */
    DTTrackerDebugOff,
    /** DEBUG模式,但该模式下发送的数据仅用于调试,不进行数据导入 */
    DTTrackerDebugOnly,
    /** DEBUG模式,并将数据导入到云
8AEE
志中 */
    DTTrackerDebugAndTrack
};

埋点

埋点记录会根据记录条数和时间选择性上传,同时也会在APP进入后台时执行上传任务,在不影响用户体验的同时尽量保证数据的实时性。

普通埋点
[[DTTrackManager sharedInstance] trackEvent:@"test plain track" withProperties:@{ @"k1":@"v1"}];
事务埋点
NSString *transactionID = [[DTTrackManager sharedInstance] trackTransactionBeginWithEvent:@"test transaction track" withProperties:@{
                                                                                                 @"test": @"y"
                                                                                                 }];

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [[DTTrackManager sharedInstance] trackCommitWithTransactionID: transactionID];
    });
自动埋点

会在APP启动和进入后台,以及页面载入和退出时,自动生成埋点记录,见 DTAutoTrackProtocol。

trackMangar.autoTrack = YES;
crash 埋点

如果设置了trackCrash为YES,DTTracker会把崩溃堆栈信息也记录下来。

trackMangar.trackCrash = YES;
UIControl 埋点
self.btn.dt_eventInfo = @{
                           @"event": @"btn clicked",
                           @"bus": @"311"
                           };
H5

如果同时使用我们的JS SDK,需要在以下两个方法里添加几行代码,方便Native和H5通信。

UIWebView:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if ([[DTTrackManager sharedInstance] shouldInterceptRequest:request inWebView:webView withProperties:nil]) {
        return NO;
    }
    return YES;
}

WKWebView:

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    if ([[DTTrackManager sharedInstance] shouldInterceptRequest:navigationAction.request inWebView:webView withProperties:nil]) {
        decisionHandler(WKNavigationActionPolicyCancel);
        return;
    }

    decisionHandler(WKNavigationActionPolicyAllow);
}

更多用法请查阅头文件

License

MIT

About

DTTracker,日志采集SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published
0