1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
//
// UTTracker.h
// miniUTInterface
//
// Created by 宋军 on 14-10-14.
// Copyright (c) 2014年 ___SONGJUN___. All rights reserved.
//
#import <Foundation/Foundation.h>
//#import <UIKit/UIViewController.h>
//#import <UIKit/UIWebView.h>
@class UTDSDKInfo;
typedef enum _UTPageStatus{
UT_H5_IN_WebView//设置容器中的H5页面事件的eventid为2001,不设置默认为2006
} UTPageStatus;
@interface UTTracker : NSObject
@property (readonly,copy) UTDSDKInfo * mSdkinfo;
-(id) initWithTrackId:(NSString *) pTrackId __deprecated;
-(id) initWithAppKey:(NSString *) pAppkey
appsecret:(NSString *) pAppSecret
authcode:(NSString *) pAuthCode
securitySign:(BOOL) securitySign;
-(id) initWithTracker:(UTTracker *) pTracker trackid:(NSString *) pTrackId;
-(NSString *) getAppKey;
-(void) setGlobalProperty:(NSString *) pKey value:(NSString *) pValue;
-(void) removeGlobalProperty:(NSString *) pKey;
-(NSString *) getGlobalProperty:(NSString *) pKey;
-(void) send:(NSDictionary *) pLogDict;
#pragma mark 页面埋点
/**
* @brief 页面进入.
*
* @param pPageObject 页面对象,如viewcontroller指针
*
* @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点
* 2.确定页面名称优先级:updatePageName > NSStringFromClass(pObject.class)
*
* 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用
*/
-(void) pageAppear:(id) pPageObject;
/**
* @brief 页面进入.
*
* @param pPageObject 页面对象,如viewcontroller指针
* @param pPageName 页面名称,如Page_Detail
*
* @warning 调用说明:1.必须和pageDisAppear配对使用,否则不会成功埋点
* 2.确定页面名称优先级:updatePageName > pPageName > NSStringFromClass(pObject.class)
* 若当调用pageAppear时已知页面名称,强烈建议使用该接口
* 最佳位置:若是viewcontroller页面,则需在viewDidAppear函数内调用
*/
-(void) pageAppear:(id) pPageObject withPageName:(NSString *) pPageName;
/**
* @brief 页面离开.
*
* @param pPageObject 页面对象,如viewcontroller指针
*
* @warning 调用说明:必须和pageAppear配对使用,否则不会成功埋点
*
* 最佳位置:若是viewcontroller页面,则需在viewDidDisAppear函数内调用
*/
-(void) pageDisAppear:(id) pPageObject;
/**
* @brief 更新页面业务参数.
*
* @param pPageObject 页面对象,如viewcontroller指针
* @param pProperties 业务参数,kv对
*
* @warning 调用说明:必须在pageDisAppear之前调用
*
* 最佳位置:在pageDisAppear之前调用即可
*/
-(void) updatePageProperties:(id) pPageObject properties:(NSDictionary *) pProperties;
/**
* @brief 更新页面业务参数.
*
* @param pProperties 传给下一个页面业务参数,kv对
*
* @warning 调用说明:必须在下一个页面pageAppear之前调用,否则会携带错误
*
* 最佳位置:必须在下一个页面pageAppear之前调用
*/
-(void) updateNextPageProperties:(NSDictionary *) pProperties;
#pragma mark 页面埋点的辅助函数
/**
* @brief 更新页面名称.
*
* @param pPageObject 页面对象,如viewcontroller指针
* @param pPageName 更新后的页面名称
*
* @warning 调用说明:只有当调用pageAppear时还未知页面名称,后续可使用该接口更新
*
* 最佳位置:在pageDisAppear之前调用
*/
-(void) updatePageName:(id) pPageObject pageName:(NSString *) pPageName;
/**
* @brief 更新页面url.
*
* @param pPageObject 页面对象,如viewcontroller指针
* @param pUrl 页面对应的url
*
* @warning 调用说明:如手淘统一导航将每次页面跳转的url塞给对应的viewcontroller
*
* 最佳位置:在pageDisAppear之前调用
*/
-(void) updatePageUrl:(id) pPageObject url:(NSURL *) pUrl;
/**
* @brief 更新页面状态.
*
* @param pPageObject 页面对象,如viewcontroller指针
* @param aStatus 页面状态 enum类型
*
* @warning 调用说明:告知页面处于某些特殊的业务场景,如回退等
*
* 最佳位置:必须在pageAppear之前调用
*/
-(void) updatePageStatus:(id) pPageObject status:(UTPageStatus) aStatus;
-(void) skipPage:(id) pPageObject;
- (void) ctrlClicked:(NSString *)controlName onPage:(NSObject *) pageName args:(NSDictionary *) dict;
@end