admin
2023-04-21 57e30bc2584b92ce3da3821bd0f6e040f2ad28df
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
//
//  BDCommonDefine.h
//  RangersAppLog
//
//  Created by bob on 2020/3/25.
//
 
#import <Foundation/Foundation.h>
#import "BDCommonEnumDefine.h"
 
#define APPLOG_API_AVALIABLE(x)
#define APPLOG_API_DEPRECATED __deprecated
#define APPLOG_API_DEPRECATED_WITH_REPLACEMENT(msg) __deprecated_msg("please use '" msg "'")
// 编译时断言
#define APPLOG_STATIC_ASSERT(COND,MSG) typedef char static_assertion_##MSG[(COND)?1:-1]
 
#ifndef BDCommonDefine_h
#define BDCommonDefine_h
 
NS_ASSUME_NONNULL_BEGIN
 
 
@protocol BDAutoTrackable <NSObject>
 
@required
- (NSDictionary *)bdAutoTrackParameters;
 
@end
 
/*
 request IDFA handler
 */
typedef void (^BDAutoTrackAuthorizationHandler)(BDAutoTrackAuthorizationStatus status);
 
/*! @abstract 日志输出
 @param log 输出的日志
 @discussion 请使用自己的日志SDK输出日志
 */
typedef void(^BDAutoTrackLogger)(NSString * _Nullable log);
 
 
/*! @abstract 自定义请求链接,把相关请求发送到对应的自定义的URL上
 @param vendor 地区
 @param requestURLType 上面的六个枚举值
 @discussion 一般情况不需要实现;如果实现,针对想改变的枚举值返回一个准确的URL,其他不想修改的返回nil即可
 @result 返回自定义的URL
 */
typedef NSString * _Nullable (^BDAutoTrackRequestURLBlock)(BDAutoTrackServiceVendor vendor, BDAutoTrackRequestURLType requestURLType);
 
/*! @abstract 自定义请求链接的Host,把相关请求发送到对应的自定义的Host上,path仍然按照SDK规则拼接
 @param vendor 地区
 @param requestURLType 上面的六个枚举值
 @discussion 一般情况不需要实现;如果实现,返回值类似  https://github.com/
 @result 返回自定义的URL
 */
typedef NSString * _Nullable (^BDAutoTrackRequestHostBlock)(BDAutoTrackServiceVendor vendor, BDAutoTrackRequestURLType requestURLType);
 
 
/*! @abstract 自定义上报信息
 @discussion 每次上报都会回调,设置一次即可,格式要求同日志要求,需要可序列化;如果无法序列化,会被丢弃
 @result NSDictionary custom数据
 */
typedef NSDictionary<NSString*, id> *_Nonnull (^BDAutoTrackCustomHeaderBlock)(void);
 
/*!
 * @abstract 数据产生后修改自定义属性
 * @discussion 数据生成后用户可以对数据进行
 * @result
 *  BDAutoTrackEventPolicyAccept    数据记录
 *  BDAutoTrackEventPolicyDeny      数据丢弃
 *
 */
typedef BDAutoTrackEventPolicy (^BDEventHandler)(NSString *event, NSMutableDictionary<NSString *, id> *properties);
 
@protocol BDAutoTrackSchemeHandler <NSObject>
 
/*! @abstract 处理scheme
 @discussion 请参考下面接口调用示例
 @param URL scheme的完整URL,透传参数
 @param appID 初始化SDK的AppID
 @param scene 适配iOS 13的参数,透传参数
 @result 返回YES,表示已经处理了该URL,NO表示没有处理
*/
- (BOOL)handleURL:(NSURL *)URL appID:(NSString *)appID scene:(nullable id)scene;
 
@end
 
NS_ASSUME_NONNULL_END
#endif /* BDCommonDefine_h */