// // CountDataVC.m // smartRhino // // Created by niuzhen on 2020/3/5. // Copyright © 2020 tederen. All rights reserved. // #import "CountDataVC.h" #import "MyTDGroupViewController.h" #import "MyTDTopicCreateVC.h" #import "MoveViewController.h" #import "TDGroupInfoListVC.h" #import "NoteBookShareVC.h" #import "ShareListVC.h" @interface CountDataVC () @property (weak, nonatomic) IBOutlet UIView *navBar; @property (weak, nonatomic) IBOutlet UIButton *shareBtn; @property (weak, nonatomic) IBOutlet UILabel *titleL; @property (nonatomic, strong)WKWebView * webView; @property (strong, nonatomic) NoteBookShareVC * noteBookShareVC; @end @implementation CountDataVC +(CountDataVC *)initCountDataVC{ CountDataVC *controller = [StoryboardManager.shared.verisonData instantiateViewControllerWithIdentifier:@"CountDataVC"]; return controller; } - (void)shareHander{ [self.noteBookShareVC initNoteBookShareData]; self.noteBookShareVC.isWork = YES; self.noteBookShareVC.view.hidden = !self.noteBookShareVC.view.hidden; } - (NoteBookShareVC *)noteBookShareVC{ if (_noteBookShareVC == nil) { _noteBookShareVC = [NoteBookShareVC initNoteBookShareVC]; [_noteBookShareVC.view setFrame:CGRectMake(0,0, SCREEN_WIDTH, SCREEN_HEIGHT)]; [_noteBookShareVC.view setHidden:YES]; _noteBookShareVC.delegate = self; } return _noteBookShareVC; } -(void)userSelectType:(NSString *)typeName WithIndexPath:(NSIndexPath *)indexPath{ self.noteBookShareVC.view.hidden = !self.noteBookShareVC.view.hidden; if ([typeName isEqualToString:@"发给微信好友"]) { }else if ([typeName isEqualToString:@"发到朋友圈"]){ }else if ([typeName isEqualToString:@"发到微博"]){ }else if ([typeName isEqualToString:@"发给QQ好友"]){ }else if ([typeName isEqualToString:@"发到消息"]){ [self returnToMessage]; }else if ([typeName isEqualToString:@"发到小组"]){ [self returnToGroup]; }else if ([typeName isEqualToString:@"发到笔记"]){ [self returnToNote]; }else if ([typeName isEqualToString:@"发到话题"]){ [self returnToTopic]; }else{ } } - (void)returnToMessage { ShareListVC * vc = [ShareListVC initShareListVC]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.SoureTypeId = [self returnType:self.index]; model.Title = self.titleStr; vc.sendModel = model; vc.isReturn = YES; [self.navigationController pushViewController:vc animated:YES]; } - (void)returnToGroup { MyTDGroupViewController * vc = [[MyTDGroupViewController alloc] init]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.SoureTypeId = [self returnType:self.index]; model.Title = self.titleStr; vc.type = CollectModel_Group; vc.sendModel = model; vc.isReturn = YES; [self.navigationController pushViewController:vc animated:YES]; } - (void)returnToNote { MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.SoureTypeId = [self returnType:self.index]; model.Title = self.titleStr; vc.type = CollectModel_NoteBook; vc.sendModel = model; vc.isReturn = YES; [self.navigationController pushViewController:vc animated:YES]; } - (void)returnToTopic { MyTDTopicCreateVC * vc = [MyTDTopicCreateVC initMyTDTopicCreateVC]; FlowAttachmentsModel * model = [[FlowAttachmentsModel alloc] init]; model.SoureTypeId = [self returnType:self.index]; model.Title = self.titleStr; vc.sendModel = model; vc.type = CollectModel_NewTopic; vc.isReturn = YES; [self.navigationController pushViewController:vc animated:YES]; } - (IBAction)backAction:(id)sender { [super backAction:sender]; } - (IBAction)menuAction:(id)sender { [super menuAction:sender]; } - (void)viewDidLoad { [super viewDidLoad]; self.fd_prefersNavigationBarHidden = YES; [self.view addSubview:self.webView]; [self.webView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.mas_equalTo(self.navBar.mas_bottom); make.left.right.mas_equalTo(self.view); if (@available(iOS 11.0, *)) { make.bottom.equalTo(self.view.mas_safeAreaLayoutGuideBottom); } else { make.bottom.equalTo(self.view.mas_bottom); } }]; self.webView.UIDelegate = self; // 导航代理 self.webView.navigationDelegate = self; self.automaticallyAdjustsScrollViewInsets = YES; NSURL *pathUrl = [NSURL URLWithString:HtmlHost(@"/mobile/total")]; // NSURL *pathUrl = [NSURL URLWithString:@"http://192.168.0.118:8080/#/mobile/total"]; NSURLRequest *request = [NSURLRequest requestWithURL:pathUrl]; [self.webView loadRequest:request]; self.titleL.text = self.titleStr; [[UtilsTools getWindow] addSubview:self.noteBookShareVC.view]; WS(weakSelf); [self.shareBtn setAction:^{ [weakSelf shareHander]; }]; } #pragma mark - layload - (WKWebView *)webView { if (!_webView) { WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init]; // 实例化对象 WKUserContentController* userContent = [[WKUserContentController alloc] init]; [userContent addScriptMessageHandler:self name:@"getTotal"]; configuration.userContentController = userContent; WKPreferences *preferences = [WKPreferences new]; preferences.javaScriptCanOpenWindowsAutomatically = YES; preferences.minimumFontSize = 10.0; configuration.preferences = preferences; // 初始化WKWebView _webView = [[WKWebView alloc]initWithFrame:CGRectZero configuration:configuration]; // UI代理 } return _webView; } #pragma mark - WKScriptMessageHandler - (void)userContentController:(nonnull WKUserContentController *)userContentController didReceiveScriptMessage:(nonnull WKScriptMessage *)message { if ([message.name isEqualToString:@"getTotal"]) { NSArray * array = @[]; switch (self.index) { case 0: array = @[@(1),@(2),@(3)]; break; case 1: array = @[@(4),@(5),@(6)]; break; default: array = @[@(7),@(8),@(9)]; break; } NSString *jsonString = [NSString stringWithFormat:@"getTotal('%@')",[self arrayToJSONString:array]]; [self.webView evaluateJavaScript:jsonString completionHandler:^(id _Nullable data, NSError * _Nullable error) { NSLog(@"data:%@",data); NSLog(@"error:%@",error); }]; } } - (NSString *)arrayToJSONString:(NSArray *)array { if (array.count == 0) { return @""; } NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSMutableString *mutStr = [NSMutableString stringWithString:jsonString]; NSRange range = {0,jsonString.length}; //去掉字符串中的空格 [mutStr replaceOccurrencesOfString:@" " withString:@"" options:NSLiteralSearch range:range]; NSRange range2 = {0,mutStr.length}; //去掉字符串中的换行符 [mutStr replaceOccurrencesOfString:@"\n" withString:@"" options:NSLiteralSearch range:range2]; return mutStr; } #pragma mark - WKUIDelegete - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage:(nonnull NSString *)message initiatedByFrame:(nonnull WKFrameInfo *)frame completionHandler:(nonnull void (^)(void))completionHandler { NSLog(@"=========%@",message); completionHandler(); } - (void)dealloc { [self.webView stopLoading]; self.webView.UIDelegate = nil; self.webView.navigationDelegate = nil; self.webView.scrollView.delegate = nil; [self.webView removeFromSuperview]; WKWebsiteDataStore *dateStore = [WKWebsiteDataStore defaultDataStore]; [dateStore fetchDataRecordsOfTypes:[WKWebsiteDataStore allWebsiteDataTypes] completionHandler:^(NSArray * __nonnull records) { for (WKWebsiteDataRecord *record in records) { [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:record.dataTypes forDataRecords:@[record] completionHandler:^{ NSLog(@"Cookies for %@ deleted successfully",record.displayName); }]; } }]; WKUserContentController *userCC = self.webView.configuration.userContentController; [userCC removeScriptMessageHandlerForName:@"getTotal"]; [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (CollectModelType)returnType:(NSInteger)index { switch (index) { case 0: return CollectModel_financeCount; break; case 1: return CollectModel_affairsCount; break; default: return CollectModel_publishCount; break; } } @end