admin
2022-09-04 fa05f89529e05078b29606e4beda3de5cfdce485
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
//
//  CSJUSettingService.h
//  CSJAdSDK
//
//  Created by carl on 2017/10/20.
//  Copyright © 2017年 bytedance. All rights reserved.
//
 
#import <Foundation/Foundation.h>
#import "CSJURitSettingModel.h"
#import "CSJABTest.h"
 
 
@class CSJLogRateConfigModel, CSJInsertJSConfigModel, CSJClogConfigModel;
 
 
 
// 默认的最大
#define kBUUSettingServiceMaxCount         100
 
// 1:表示模板banner dislike操作后不再轮播  0:表示dislike操作后可以继续轮播
typedef NS_ENUM(NSInteger, BURotateBannerDislikeViewType) {
    BURotateBannerDislikeViewType_Rotate = 0,
    BURotateBannerDislikeViewType_NonRotate = 1,
};
 
/**
 adlog_enable_type:  (iOS 只支持0和3)
 0:使用旧埋点
 1:新性能埋点上报,旧广告埋点上报
 2:新广告埋点上报,旧性能上报
 3:全部使用新版的广告、性能埋点
 */
typedef NS_ENUM(NSInteger, BUAdLogEnableType) {
    BUAdLogEnableType_OldAll                    =       0,
    BUAdLogEnableType_StatusOld_ApplogNew       =       1,
    BUAdLogEnableType_StatusNew_ApplogOld       =       2,
    BUAdLogEnableType_NewAll                    =       3,
};
 
@interface CSJUSettingService : NSObject
/*rit粒度的配置*/
@property (atomic, strong) BUThreadSafeDictionary *configList;
 
/*app粒度的配置*/
/// xpath
@property (atomic, copy) NSString *xpath;
/// 请求策略
@property (atomic, strong) NSDictionary *policy;
/// 激励视频缓冲时间 默认5s
@property (atomic, strong) NSNumber *vbtt;
/// 是否开启边下边播功能,默认开启
@property (nonatomic, assign) BOOL isReadVideoFromCache;
/// 广告域名
@property (atomic, copy) NSString *adsUrl;
/// app_log上报地址
@property (atomic, copy) NSString *appLogUrl;
 
/// FL 圈人群的id
@property (atomic, copy) NSString *cohort_id;
 
/// 是否初始化pitaya
@property (nonatomic, assign) BOOL pitaya_init;
 
/// pitaya host
@property (atomic, copy) NSString *pitaya_host;
 
/// pitaya_cer_host
@property (atomic, copy) NSString *pitaya_cer_host;
 
/// 海外apm url
@property (atomic, copy) NSString *apmOverseaUrl;
/// 服务器所在地址,国内、新加坡、中东
//@property (nonatomic, copy) NSString *dc;
/// 动态布局模板增量的id集合
//@property (nonatomic, copy) NSArray *tplIds_infos;
//@property (nonatomic, copy) NSArray *tplIds;
/// SDK总开关
@property (nonatomic, assign, readonly) BOOL silenceSDK;
/// setting试验 是否灰度
@property (nonatomic, assign) BOOL isGrey;
/// 是否监控crash
@property (nonatomic, assign) BOOL collectCrash;
/// setting AB test
@property (atomic, strong) CSJABTest *abtest;
/// playable需要拦截的字段
@property (atomic, copy) NSArray *playableInterceptAry;
/// playable的loading页面
@property (atomic, copy) NSString *purePyloadH5;
/// v2700 0,1,2,3 默认1 https://bytedance.feishu.cn/space/doc/doccn7W9DGNpZRFG8ZIE8N287Re
//@property (nonatomic, assign) BUSplashLoadType splashLoadType;
/// v2700 默认开启校验 0:check逻辑分支不校验check接口,仅验证缓存逻辑 1:开启校验
@property (nonatomic, assign) BOOL checkTypeOpen;
/// 是否为国外
//@property (nonatomic, assign) BOOL overSeas;
/// 区域类型CN,VA,SG
//@property (nonatomic, assign) BUTerritoryType territoryType;
/// 离线化动态布局+playable宽展的headers字段
@property (atomic, strong) NSDictionary *headersExt;
/// if_both_open 开启同时打开deeplink
@property (nonatomic, assign) NSInteger bothOpen;
/// 是否支持TNC容灾切流,默认1
@property (nonatomic, assign) NSInteger supportTNC;
/// 海外隐私协议地址
@property (atomic, copy) NSString *privacy_url;
/// 用户同意链接
@property (atomic, copy) NSString *consent_url;
/// 动态布局子模板缓存的最大数量
@property (nonatomic, assign) NSInteger max_tpl_cnts;
/// 动态布局主模板地址动态下发
@property (atomic, copy) NSString *dyn_draw_engine_url;
/// 动态布局兜底超时时长配置
@property (nonatomic, assign) NSInteger fetch_tpl_timeout_ctrl;
/// 后端下发的强制语言类型
@property (atomic, copy) NSString *force_language;
/// 循环加载duration 控制 min
@property (nonatomic, assign) NSInteger circle_time;
/// 是否开启循环加载 1 开启, 2不开启(默认)
@property (nonatomic, assign) NSInteger circle_splash;
/// 落地页吊起白名单
@property (atomic, copy) NSArray *scheme_wlist;
/// 开屏点睛需求:浮窗展示时长
@property (nonatomic, assign) NSInteger icon_show_time;
/// 3200需求: gecko 容灾域名
@property (atomic, copy) NSArray *gecko_hosts;
/// 是否关闭动态代码组功能
@property (nonatomic, assign) BOOL disable_dynamic_code_group;
/// 动态代码缓存时长,单位为s,默认3600s
@property (nonatomic, assign) NSInteger dynamic_code_group_cache_time;
 
// webView缓存池最大数量
@property (nonatomic, assign) NSInteger webViewPoolCacheMaxCount;
// webView最大并发渲染数
@property (nonatomic, assign) NSInteger webViewRenderMaxConcurrentOperationCount;
// dislike操作后的是否轮播标识
@property (nonatomic, assign) BURotateBannerDislikeViewType rotateBannerDislike;
 
/// 是否初始化apm模块 默认为YES
@property (nonatomic, assign, readonly) BOOL isInitCrashModule;
/// 内开浏览器样式
@property (nonatomic, assign) BOOL lpNewStyle;
 
/**
 配置的SD最大缓存个数 , 默认值为: 6
 @Version 4100
 */
@property (nonatomic, assign) NSInteger sdMaxMemoryCount;
 
///视频缓存动态下发
@property (nonatomic, assign) NSInteger video_cache_splash_num;
 
@property (nonatomic, assign) NSInteger video_cache_reward_num;
 
@property (nonatomic, assign) NSInteger video_cache_brand_num;
 
@property (nonatomic, assign) NSInteger video_cache_other_num;
 
/**
 配置的SD最大缓存大小 默认值为:24 , 单位为M
 @Version 4100
 */
@property (nonatomic, assign) NSInteger sdMaxMemoryCost ;
 
/// 4300是否开启webview黑白屏检测,1:开启 0:关闭 默认下发1
@property (nonatomic, assign) NSInteger enable_bw_screen_detection;
@property (atomic, strong) CSJInsertJSConfigModel *insertJSConfig;
@property (atomic, strong) CSJClogConfigModel *clogConfig;
 
// 是否有并发渲染的功能
- (BOOL)hasWebViewRenderConcurrentFunction;
 
/// 3300需求:支持iOS 14,穿山甲的SKAdNetwork IDs,不会为nil
@property (atomic, copy, readonly) NSArray<NSString *> *network_id_list;
/// 3500 需求:服务端会在 settings 返回报文增加埋点采样率字段
@property (atomic, strong) CSJLogRateConfigModel *logRateConf;
// 4250 海外需求 服务端在settings下发 appstore拦截域名以及appId匹配正则
@property (atomic, strong, readonly) NSArray<NSString *> *lp_hook_host_list;
@property (atomic, copy, readonly) NSString *lp_hook_reg_rule;
 
// 4500 开屏卡片每天展示次数 若未下发,取默认值3
@property (nonatomic, assign) NSInteger splashCardShowMaxCount;
 
// 4600 品牌视频预缓存最大数量
@property (nonatomic, assign) NSInteger precacheBrandVideoCount;
 
/// 预渲染数量控制
@property (nonatomic, assign) NSInteger playable_landing_cache_count;
+ (instancetype)service;
- (void)fetchSetting;
- (CSJURitSettingModel *)modelWithRit:(NSString *)rit;
+ (void)deleteLocalSetting;
 
 
// 新旧埋点 控制字段  https://bytedance.feishu.cn/wiki/wikcniIx9ve1eilblF7mVrUgRPh
@property (nonatomic, assign) BUAdLogEnableType adlog_enable_type;
@property (atomic, assign) NSInteger adlog_interval;
@property (atomic, assign) NSInteger adlog_batch;
@property (atomic, assign) NSInteger adlog_exception_batch;
@property (atomic, assign) NSInteger adlog_debug;
 
@end
 
@interface CSJUSettingService (BUUnion_Logic)
 
@property (atomic, copy, class, readonly) NSString *jsActLogURLString;
+ (NSString *)shouldEvaluateActLogJsWith:(NSString *)adID;
 
@end