Skip to content

Commit 6b765be

Browse files
committed
Release 1.0.2
1 parent 8d8fedd commit 6b765be

6 files changed

Lines changed: 37 additions & 15 deletions

File tree

SensorsABTest/Network/SABRequest.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ extern NSString *const kSABRequestBodyParamName;
3535

3636
@end
3737

38+
/// 分流试验请求
3839
@interface SABExperimentRequest : NSObject <SABRequestProtocol>
3940

4041
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
@@ -74,6 +75,7 @@ extern NSString *const kSABRequestBodyParamName;
7475

7576
@end
7677

78+
/// 上传白名单请求
7779
@interface SABWhiteListRequest : NSObject <SABRequestProtocol>
7880

7981
@property (nonatomic, copy) NSURL *openURL;

SensorsABTest/Network/SABRequest.m

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,17 @@ @interface SABExperimentRequest()
5151

5252
@implementation SABExperimentRequest
5353

54+
// 初始化 App 原生分流请求
55+
- (instancetype)initWithBaseURL:(NSURL *)url projectKey:(NSString *)key userIdenty:(SABUserIdenty *)userIdenty {
56+
self = [[SABExperimentRequest alloc] initWebRequestWithBaseURL:url projectKey:key userIdenty:userIdenty];
57+
if (self) {
58+
// 拼接自定义主体 ID
59+
[self appendCustomIDs:userIdenty.customIDs];
60+
}
61+
return self;
62+
}
63+
64+
// 初始化 App 内嵌 H5 分流请求
5465
- (instancetype)initWebRequestWithBaseURL:(NSURL *)url projectKey:(NSString *)key userIdenty:(SABUserIdenty *)userIdenty {
5566
self = [super init];
5667
if (self) {
@@ -93,16 +104,6 @@ - (instancetype)initWebRequestWithBaseURL:(NSURL *)url projectKey:(NSString *)ke
93104
return self;
94105
}
95106

96-
- (instancetype)initWithBaseURL:(NSURL *)url projectKey:(NSString *)key userIdenty:(SABUserIdenty *)userIdenty {
97-
self = [[SABExperimentRequest alloc] initWebRequestWithBaseURL:url projectKey:key userIdenty:userIdenty];
98-
if (self) {
99-
// 拼接自定义主体 ID
100-
[self appendCustomIDs:userIdenty.customIDs];
101-
102-
}
103-
return self;
104-
}
105-
106107
- (void)appendCustomIDs:(NSDictionary *)customIDs {
107108
if (customIDs.count == 0) {
108109
return;

SensorsABTest/SABConstants.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
#import "SABConstants.h"
2626

2727
// 当前版本号
28-
NSString *const kSABLibVersion = @"1.0.1";
28+
NSString *const kSABLibVersion = @"1.0.2";
2929

3030
// SA 最低支持版本
3131
NSString *const kSABMinSupportedSALibVersion = @"4.5.6";

SensorsABTest/SABManager.m

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,9 @@ - (void)fetchAsyncABTestWithExperiment:(SensorsABTestExperiment *)experiment {
373373
return;
374374
}
375375

376-
[self.requestManager addRequestTask:requestData experiment:experiment];
376+
if (experiment.modeType == SABFetchABTestModeTypeFast) {
377+
[self.requestManager addRequestTask:requestData experiment:experiment];
378+
}
377379

378380
__weak typeof(self) weakSelf = self;
379381
[self.dataManager asyncFetchAllExperimentWithRequest:requestData completionHandler:^(SABFetchResultResponse *_Nullable responseData, NSError *_Nullable error) {
@@ -383,6 +385,13 @@ - (void)fetchAsyncABTestWithExperiment:(SensorsABTestExperiment *)experiment {
383385
SABLogError(@"asyncFetchAllExperimentWithRequest failure,error: %@", error);
384386
// 请求失败,主线程回调结果
385387
dispatch_async(dispatch_get_main_queue(), ^{
388+
389+
if (experiment.modeType == SABFetchABTestModeTypeAsync) {
390+
experiment.handler(experiment.defaultValue);
391+
return;
392+
}
393+
394+
// 请求合并,只针对 fast 调用
386395
[strongSelf.requestManager excuteExperimentsWithRequest:requestData completion:^(SensorsABTestExperiment *obj) {
387396
obj.handler(obj.defaultValue);
388397
}];
@@ -392,10 +401,17 @@ - (void)fetchAsyncABTestWithExperiment:(SensorsABTestExperiment *)experiment {
392401

393402
// 通过请求管理器统一回调试验结果,切到主线程回调结果
394403
dispatch_async(dispatch_get_main_queue(), ^{
404+
if (experiment.modeType == SABFetchABTestModeTypeAsync) {
405+
id cacheValue = [strongSelf fetchCacheABTestWithExperiment:experiment];
406+
experiment.handler(cacheValue ?: experiment.defaultValue);
407+
return;
408+
}
409+
410+
// 请求合并,只针对 fast 调用
395411
[strongSelf.requestManager excuteExperimentsWithRequest:requestData completion:^(SensorsABTestExperiment *obj) {
396412
// 获取缓存并触发 $ABTestTrigger 事件
397413
id cacheValue = [strongSelf fetchCacheABTestWithExperiment:obj];
398-
obj.handler(cacheValue ? : obj.defaultValue);
414+
obj.handler(cacheValue ?: obj.defaultValue);
399415
}];
400416
});
401417
}];

SensorsABTest/SABRequestManager.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,17 @@
2323

2424
NS_ASSUME_NONNULL_BEGIN
2525

26+
/// 请求任务管理
27+
///
28+
/// 考虑到 asyncFetch 请求,都是直接触发,所以此处只针对 fastFetch 触发的请求
2629
@interface SABRequestManager : NSObject
2730

2831
/// 检查当前是否已存在相同的请求任务
2932
/// @param request 检查对象
3033
/// @return 检查结果
3134
- (BOOL)containsRequest:(SABExperimentRequest *)request;
3235

33-
/// 合并当前试验至已存在的相同请求任务中
36+
/// 合并当前请求参数至已存在的相同请求任务中
3437
/// @param request 当前请求
3538
/// @param experiment 当前试验
3639
- (void)mergeExperimentWithRequest:(SABExperimentRequest *)request experiment:(SensorsABTestExperiment *)experiment;

SensorsABTesting.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'SensorsABTesting'
3-
s.version = "1.0.1"
3+
s.version = "1.0.2"
44
s.summary = 'The official iOS/macOS SDK of Sensors A/B Testing.'
55
s.homepage = 'http://www.sensorsdata.cn'
66
s.license = { :type => 'Apache 2.0', :file => 'LICENSE' }

0 commit comments

Comments
 (0)