developer
2023-05-20 e12c7b4c22df631ebdcd16b2f98fbef8f738f92f
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
/*
 * AlibcUT.h 
 *
 * 阿里百川电商
 * 项目名称:阿里巴巴电商 AlibcTradeBiz 
 * 版本号:4.0.0.9
 * 发布时间:2019-10-31
 * 开发团队:阿里巴巴商家服务引擎团队
 * 阿里巴巴电商SDK答疑群号:1488705339  2071154343(阿里旺旺)
 * Copyright (c) 2016-2020 阿里巴巴-淘宝-百川. All rights reserved.
 */
 
#import <Foundation/Foundation.h>
#import <WebKit/WebKit.h>
 
#ifndef AlibcUT_h
#define AlibcUT_h
 
#define ALiTRADE_TRACE_TRACKER_ID @"aliTradesdk"
 
typedef NSString AlibcUTEventID;
@class WKWebView;
@class UIViewController;
 
FOUNDATION_EXTERN NSString *AlibcUTGlobalPropertySdkVersion;
FOUNDATION_EXTERN NSString *AlibcUTGlobalPropertyTTID;
 
 
/*
 * @brief 用于透出事件埋点
 */
FOUNDATION_EXTERN AlibcUTEventID *const AlibcUTEventID$2201;
 
/*
 * @brief 用于点击事件埋点
 */
FOUNDATION_EXTERN AlibcUTEventID *const AlibcUTEventID$2101;
 
FOUNDATION_EXTERN NSString *const AlibcUTArgsKeyYBHPSS;
 
FOUNDATION_EXTERN NSString *const AlibcUTArgsKeyYBHPSS_LABEL;
 
@interface AlibcUT : NSObject
 
 
/**
 初始化 ALiUT
 */
+ (void)initUT;
 
 
/**
 功能是否可用, 是否有 adapter 支撑功能
 
 @return 是否可用
 */
+ (BOOL)isAvailable;
 
 
/**
 是否三方ut
 
 @return 是否三方ut
 */
+ (BOOL)isThird;
 
 
/**
 添加打点记录的便捷方法
 
 @param page pageName
 @param label arg1
 @param interval 无效兼容字段
 @param propertyDict args
 */
+ (void)addTraceLog:(NSString *)page
              label:(NSString *)label
           interval:(NSInteger)interval
          propertys:(NSDictionary *)propertyDict;
 
 
/**
  添加打点记录的便捷方法
 
 @param label arg1
 @param propertyDict args
 */
+ (void)addTraceLog:(NSString *)label propertys:(NSDictionary *)propertyDict;
 
 
/**
 添加打点记录的便捷方法
 
 @param label arg1
 */
+ (void)addTraceLog:(NSString *)label;
 
 
/**
 添加打点记录的便捷方法
 
 @param eventID eventID
 @param arg1 arg1
 @param args args
 */
+ (void)addTradeLogWithEventID:(AlibcUTEventID *)eventID arg1:(NSString *)arg1 args:(NSDictionary *)args;
 
 
/**
 添加打点记录的便捷方法
 
 @param trackerID trackerID
 @param eventLabel arg1
 @param properties args
 */
+ (void)addTrackToTracker:(NSString *)trackerID eventLabel:(NSString *)eventLabel properties:(NSDictionary *)properties;
 
 
/**
 打点的标准实现
 
 @param trackerID track id
 @param eventID 事件 id
 @param pageName pageName
 @param arg1 arg1 == label
 @param arg2 arg2 description
 @param arg3 arg3 description
 @param args args == propertirs
 */
+ (void)addTradeLog:(NSString *)trackerID
            eventID:(NSString *)eventID
               page:(NSString *)pageName
               arg1:(NSString *)arg1
               arg2:(NSString *)arg2
               arg3:(NSString *)arg3
               args:(NSDictionary *)args;
 
 
/**
 供jsbridge打点
 
 @param dataDict dataDict
 @param pView webView
 @param pViewController vc
 @return return value
 */
+ (BOOL)h5UT:(NSDictionary *)dataDict view:(WKWebView *)pView viewController:(UIViewController *)pViewController;
 
 
/**
 设置 channel
 
 @param channel channel
 */
+ (void)setChannel:(NSString *)channel;
 
 
/**
 读取全局字段
 
 @param key 字段名
 @return 值
 */
+ (NSString *)globalPropertyForKey:(NSString *)key;
 
 
/**
 设置全局字段
 
 @param property 值
 @param key 字段名
 */
+ (void)setGlobalProperty:(NSString *)property forKey:(NSString *)key;
 
@end
 
@protocol AlibcUTAdapter <NSObject>
 
#pragma mark - Initialize
 
@required
 
- (void)initWithAppkey:(NSString *)appkey;
 
 
#pragma mark - Configure
 
@required
- (void)setChannel:(NSString *)channel;
 
@required
- (NSString *)globalPropertyForKey:(NSString *)key asTracker:(NSString *)trackerID;
 
@required
- (void)setGlobalProperty:(NSString *)property forKey:(NSString *)key asTracker:(NSString *)trackerID;
 
 
#pragma mark - Commit
 
@required
- (void)addTradeLog:(NSString *)trackerID
            eventID:(NSString *)eventID
               page:(NSString *)pageName
               arg1:(NSString *)arg1
               arg2:(NSString *)arg2
               arg3:(NSString *)arg3
               args:(NSDictionary *)args;
 
@optional
- (void)h5UT:(NSDictionary *)dataDict view:(WKWebView *)pView viewController:(UIViewController *)pViewController;
 
#pragma mark - Other
 
@optional
- (BOOL)isThird;
 
@end
 
 
#define AlibcNSStringify(a) @#a
#define AlibcAppendUTSuffixUtil AlibcNSStringify(_aliTradesdk_)AlibcTradeBizSDKVersion
 
#endif