diff --git a/iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Function/DoraemonPingThread.m b/iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Function/DoraemonPingThread.m index ffeff60a3a5246da6980bc528557dc36c8a7ce03..28ad1ff71913ea18c6fcf652ce425ad6ea5f4512 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Function/DoraemonPingThread.m +++ b/iOS/DoraemonKit/Src/Core/Plugin/Performance/ANR/Function/DoraemonPingThread.m @@ -112,7 +112,7 @@ } } -#pragma mark - Notification +#pragma mark - Notific ation - (void)applicationDidBecomeActive { _isApplicationInActive = YES; } diff --git a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.h b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.h index 06e6d1f0643f61595a0a7058a6556d8ea078f566..67fb3350a4127f4c5a99289ee2a773a26a3daa7a 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.h +++ b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.h @@ -11,11 +11,12 @@ NS_ASSUME_NONNULL_BEGIN typedef void (^DoraemonHealthAlertOKActionBlock)(void); typedef void (^DoraemonHealthAlertCancleActionBlock)(void); +typedef void (^DoraemonHealthAlertQuitActionBlock)(void); @interface DoraemonHealthAlertView : UIView -- (void)renderUI:(NSString *)title placeholder:(NSArray*)placeholders inputTip:(NSArray*)inputTips ok:(NSString *)okText cancle:(NSString *)cancleText okBlock:(DoraemonHealthAlertOKActionBlock)okBlock -cancleBlock:(DoraemonHealthAlertCancleActionBlock)cancleBlock; +- (void)renderUI:(NSString *)title placeholder:(NSArray*)placeholders inputTip:(NSArray*)inputTips ok:(NSString *)okText quit:(NSString *)quitText cancle:(NSString *)cancleText okBlock:(DoraemonHealthAlertOKActionBlock)okBlock quitBlock:(DoraemonHealthAlertQuitActionBlock) quitBlock +cancleBlock:(DoraemonHealthAlertCancleActionBlock)cancleBlock ; - (NSArray *)getInputText; diff --git a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.m b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.m index a855ea9b78a07147e3faba7d0819204fe3792efb..e37f4c4e00489884bc62adae44053d10597a71d6 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.m +++ b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Alert/DoraemonHealthAlertView.m @@ -20,9 +20,10 @@ @property (nonatomic, strong) NSMutableArray *inputViewArray; @property (nonatomic, strong) UIButton *okBtn; @property (nonatomic, strong) UIButton *cancleBtn; +@property (nonatomic, strong) UIButton *quitBtn; @property (nonatomic, copy) DoraemonHealthAlertOKActionBlock okBlock; @property (nonatomic, copy) DoraemonHealthAlertCancleActionBlock cancleBlock; - +@property (nonatomic, copy) DoraemonHealthAlertQuitActionBlock quitBlock; @end @@ -47,7 +48,7 @@ _inputViewArray = [[NSMutableArray alloc] init]; - _okBtn = [[UIButton alloc] initWithFrame:CGRectMake(_width/2, 0, _width/2, kDoraemonSizeFrom750_Landscape(90))]; + _okBtn = [[UIButton alloc] initWithFrame:CGRectMake(_width/3*2, 0, _width/3, kDoraemonSizeFrom750_Landscape(90))]; _okBtn.titleLabel.font = [UIFont systemFontOfSize:kDoraemonSizeFrom750_Landscape(30)]; [_okBtn.layer setBorderColor:[UIColor doraemon_black_3].CGColor]; [_okBtn.layer setBorderWidth:kDoraemonSizeFrom750_Landscape(0.5)]; @@ -57,7 +58,16 @@ _okBtn.enabled = NO; [_okBtn addTarget:self action:@selector(okBtnAction:) forControlEvents:UIControlEventTouchUpInside]; - _cancleBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, _width/2, _okBtn.doraemon_height)]; + _quitBtn = [[UIButton alloc] initWithFrame:CGRectMake(_width/3, 0, _width/3, kDoraemonSizeFrom750_Landscape(90))]; + _quitBtn.titleLabel.font = [UIFont systemFontOfSize:kDoraemonSizeFrom750_Landscape(30)]; + [_quitBtn.layer setBorderColor:[UIColor doraemon_black_3].CGColor]; + [_quitBtn.layer setBorderWidth:kDoraemonSizeFrom750_Landscape(0.5)]; + [_quitBtn.layer setMasksToBounds:YES]; + [_quitBtn setTitleColor:[UIColor doraemon_black_3] forState:UIControlStateNormal]; + [_quitBtn setTitle:DoraemonLocalizedString(@"丢弃") forState:UIControlStateNormal]; + [_quitBtn addTarget:self action:@selector(quitBtnAction:) forControlEvents:UIControlEventTouchUpInside]; + + _cancleBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, _width/3, _okBtn.doraemon_height)]; _cancleBtn.titleLabel.font = [UIFont systemFontOfSize:kDoraemonSizeFrom750_Landscape(30)]; [_cancleBtn.layer setBorderColor:[UIColor doraemon_black_3].CGColor]; [_cancleBtn.layer setBorderWidth:kDoraemonSizeFrom750_Landscape(0.5)]; @@ -70,15 +80,15 @@ [_alertView addSubview:_title]; [_alertView addSubview:_okBtn]; + [_alertView addSubview:_quitBtn]; [_alertView addSubview:_cancleBtn]; } return self; } -- (void)renderUI:(NSString *)title placeholder:(NSArray*)placeholders inputTip:(NSArray*)inputTips ok:(NSString *)okText - cancle:(NSString *)cancleText okBlock:(DoraemonHealthAlertOKActionBlock)okBlock - cancleBlock:(DoraemonHealthAlertCancleActionBlock)cancleBlock{ +- (void)renderUI:(NSString *)title placeholder:(NSArray*)placeholders inputTip:(NSArray*)inputTips ok:(NSString *)okText quit:(NSString *)quitText cancle:(NSString *)cancleText okBlock:(DoraemonHealthAlertOKActionBlock)okBlock quitBlock:(DoraemonHealthAlertQuitActionBlock) quitBlock +cancleBlock:(DoraemonHealthAlertCancleActionBlock)cancleBlock{ int index = 0; _title.text = title; NSString *placeholder = nil; @@ -101,6 +111,10 @@ if(okText.length>0){ [_okBtn setTitle:okText forState:UIControlStateNormal]; } + _quitBtn.frame = CGRectMake(_quitBtn.doraemon_x, _height, _quitBtn.doraemon_width, _quitBtn.doraemon_height); + if (quitText.length>0) { + [_quitBtn setTitle:quitText forState:UIControlStateNormal]; + } _cancleBtn.frame = CGRectMake(_cancleBtn.doraemon_x, _height, _cancleBtn.doraemon_width, _cancleBtn.doraemon_height); if(cancleText.length>0){ [_cancleBtn setTitle:cancleText forState:UIControlStateNormal]; @@ -109,6 +123,7 @@ _alertView.frame = CGRectMake(_padding, _alertView.doraemon_y, _width, _height); self.okBlock = okBlock; self.cancleBlock = cancleBlock; + self.quitBlock = quitBlock; } - (NSArray *)getInputText{ @@ -129,6 +144,11 @@ self.hidden = YES; } +- (void)quitBtnAction:(id)sender{ + self.quitBlock ? self.quitBlock() : nil; + self.hidden = YES; +} + - (void)textFieldDidEndEditing:(UITextField *)textField{ BOOL enabled = YES; for (DoraemonHealthEndInputView *inputView in _inputViewArray) { diff --git a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/DoraemonHealthViewController.m b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/DoraemonHealthViewController.m index 7b350bff7722da8b82604f479cc23701997f4256..5db1c44ba534a9a7999b191542a78d676c103224 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/DoraemonHealthViewController.m +++ b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/DoraemonHealthViewController.m @@ -84,7 +84,7 @@ if(show){ __weak typeof(self) weakSelf = self; DoraemonHealthAlertView *alertView = [[DoraemonHealthAlertView alloc] init]; - [alertView renderUI:DoraemonLocalizedString(@"结束前请完善下列信息") placeholder:@[] inputTip:@[DoraemonLocalizedString(@"测试用例名称"),DoraemonLocalizedString(@"测试人名称")] ok:DoraemonLocalizedString(@"提交") cancle:DoraemonLocalizedString(@"取消") okBlock:^{ + [alertView renderUI:DoraemonLocalizedString(@"结束前请完善下列信息") placeholder:@[] inputTip:@[DoraemonLocalizedString(@"测试用例名称"),DoraemonLocalizedString(@"测试人名称")] ok:DoraemonLocalizedString(@"提交") quit:DoraemonLocalizedString(@"丢弃") cancle:DoraemonLocalizedString(@"取消") okBlock:^{ NSArray *result = [alertView getInputText]; if (result.count == 2) { @@ -95,6 +95,13 @@ [weakSelf.homeView.startingTitle renderUIWithTitle:@"点击开始检测"]; [[DoraemonHealthManager sharedInstance] stopHealthCheck]; } + } quitBlock:^{ + [DoraemonHealthManager sharedInstance].caseName = @""; + [DoraemonHealthManager sharedInstance].testPerson = @""; + [weakSelf showFooter:YES]; + [weakSelf.homeView.btnView statusForBtn:NO]; + [weakSelf.homeView.startingTitle renderUIWithTitle:@"点击开始检测"]; + [[DoraemonHealthManager sharedInstance] stopHealthCheck]; } cancleBlock:^{ }]; [self.view addSubview:alertView]; diff --git a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Function/DoraemonHealthManager.m b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Function/DoraemonHealthManager.m index 32485510ca07a63e5f86bb6b3360807f0408d6e3..8a9a4b4a03271fbb773c5cbc965656074540d6fd 100644 --- a/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Function/DoraemonHealthManager.m +++ b/iOS/DoraemonKit/Src/Core/Plugin/Platform/Health/Function/DoraemonHealthManager.m @@ -195,80 +195,81 @@ } - (void)upLoadData{ - NSString *testTime = [DoraemonUtil dateFormatNow]; - NSString *phoneName = [DoraemonAppInfoUtil iphoneType]; - NSString *phoneSystem = [[UIDevice currentDevice] systemVersion]; - NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]; - NSString *appName = [DoraemonAppInfoUtil appName]; - - - //启动流程 - NSArray *loadArray = nil; - #if __has_include("DoraemonMethodUseTimeManager.h") - loadArray = [[DoraemonMethodUseTimeManager sharedInstance] fixLoadModelArrayForHealth]; - #endif - - NSDictionary *appStart = @{ - @"costTime" : @(self.startTime), - @"costDetail" : STRING_NOT_NULL(self.costDetail), - @"loadFunc" : loadArray ? loadArray : @[] - }; - - //大文件扫描 - NSString *homeDir = NSHomeDirectory(); - DoraemonUtil *util = [[DoraemonUtil alloc] init]; - [util getBigSizeFileFormPath:homeDir]; - NSArray *bigFileInfoArray = [self formatInfoByPathArray:util.bigFileArray]; - - NSDictionary *dic = @{ - @"baseInfo":@{ - @"caseName":STRING_NOT_NULL(self.caseName), - @"testPerson":STRING_NOT_NULL(self.testPerson), - @"platform":@"iOS", - @"time":testTime, - @"phoneMode":phoneName, - @"systemVersion":phoneSystem, - @"appName":appName, - @"appVersion":appVersion, - @"dokitVersion":DoKitVersion, - @"pId":STRING_NOT_NULL([DoraemonManager shareInstance].pId) - }, - @"data":@{ - @"cpu":[_cpuArray copy], - @"memory":[_memoryArray copy], - @"fps":[_fpsArray copy], - @"appStart":appStart, - @"network": [_networkArray copy], - @"block":[_blockArray copy], - @"subThreadUI":[_subThreadUIArray copy], - @"uiLevel":[_uiLevelArray copy], - @"leak":[_leakArray copy], - @"pageLoad":[_pageLoadArray copy], - @"bigFile":[bigFileInfoArray copy] - } - }; - - DoKitLog(@"上传信息 == %@",dic); - - if (![DoraemonManager shareInstance].pId) { - DoKitLog(@"dokik pId 为空"); - } - - [DoraemonNetworkUtil postWithUrlString:@"https://www.dokit.cn/healthCheck/addCheckData" params:dic success:^(NSDictionary * _Nonnull result) { - NSInteger code = [result[@"code"] integerValue]; - if (code == 200) { - [DoraemonToastUtil showToastBlack:@"数据上传成功" inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; - }else{ - NSString *msg = result[@"msg"]; - if (msg) { - [DoraemonToastUtil showToastBlack:msg inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; + if (self.caseName.length>0 && self.testPerson.length>0) { + NSString *testTime = [DoraemonUtil dateFormatNow]; + NSString *phoneName = [DoraemonAppInfoUtil iphoneType]; + NSString *phoneSystem = [[UIDevice currentDevice] systemVersion]; + NSString *appVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey: @"CFBundleShortVersionString"]; + NSString *appName = [DoraemonAppInfoUtil appName]; + + + //启动流程 + NSArray *loadArray = nil; + #if __has_include("DoraemonMethodUseTimeManager.h") + loadArray = [[DoraemonMethodUseTimeManager sharedInstance] fixLoadModelArrayForHealth]; + #endif + + NSDictionary *appStart = @{ + @"costTime" : @(self.startTime), + @"costDetail" : STRING_NOT_NULL(self.costDetail), + @"loadFunc" : loadArray ? loadArray : @[] + }; + + //大文件扫描 + NSString *homeDir = NSHomeDirectory(); + DoraemonUtil *util = [[DoraemonUtil alloc] init]; + [util getBigSizeFileFormPath:homeDir]; + NSArray *bigFileInfoArray = [self formatInfoByPathArray:util.bigFileArray]; + + NSDictionary *dic = @{ + @"baseInfo":@{ + @"caseName":STRING_NOT_NULL(self.caseName), + @"testPerson":STRING_NOT_NULL(self.testPerson), + @"platform":@"iOS", + @"time":testTime, + @"phoneMode":phoneName, + @"systemVersion":phoneSystem, + @"appName":appName, + @"appVersion":appVersion, + @"dokitVersion":DoKitVersion, + @"pId":STRING_NOT_NULL([DoraemonManager shareInstance].pId) + }, + @"data":@{ + @"cpu":[_cpuArray copy], + @"memory":[_memoryArray copy], + @"fps":[_fpsArray copy], + @"appStart":appStart, + @"network": [_networkArray copy], + @"block":[_blockArray copy], + @"subThreadUI":[_subThreadUIArray copy], + @"uiLevel":[_uiLevelArray copy], + @"leak":[_leakArray copy], + @"pageLoad":[_pageLoadArray copy], + @"bigFile":[bigFileInfoArray copy] } + }; + + DoKitLog(@"上传信息 == %@",dic); + + if (![DoraemonManager shareInstance].pId) { + DoKitLog(@"dokik pId 为空"); } - } error:^(NSError * _Nonnull error) { - [DoraemonToastUtil showToastBlack:@"数据上传失败" inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; - }]; + [DoraemonNetworkUtil postWithUrlString:@"https://www.dokit.cn/healthCheck/addCheckData" params:dic success:^(NSDictionary * _Nonnull result) { + NSInteger code = [result[@"code"] integerValue]; + if (code == 200) { + [DoraemonToastUtil showToastBlack:@"数据上传成功" inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; + }else{ + NSString *msg = result[@"msg"]; + if (msg) { + [DoraemonToastUtil showToastBlack:msg inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; + } + } + } error:^(NSError * _Nonnull error) { + [DoraemonToastUtil showToastBlack:@"数据上传失败" inView:[UIViewController rootViewControllerForDoraemonHomeWindow].view]; + }]; + } [_cpuPageArray removeAllObjects]; [_memoryPageArray removeAllObjects];