// // KWMBlogDetailVC.m // iCemarose // // Created by 陈荣科 on 2016/10/28. // Copyright © 2016年 kollway. All rights reserved. // #import "KWMBlogDetailVC.h" @interface KWMBlogDetailVC ()<UIWebViewDelegate> @end @implementation KWMBlogDetailVC + (NSString *)kwmTag{ return @"KWMBlogDetailVC"; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view if(!self.title) self.title = @"正文"; self.automaticallyAdjustsScrollViewInsets = NO; if (!self.handle) { [self initData]; }else{ [self requestData]; } } - (void) requestData { [self showLoading]; void(^cacheCallback)(id) = ^(id result) { [self hideLoading]; if (self.type == KWMContentTypePage) { self.article = [[result pages] firstObject]; }else{ self.article = [[result blogs] firstObject]; } [self initData]; }; void(^success)(NSURLSessionDataTask *,id) = ^(NSURLSessionDataTask *task, id result) { [self hideLoading]; if (self.type == KWMContentTypePage) { self.article = [[result pages] firstObject]; }else{ self.article = [[result blogs] firstObject]; } [self initData]; }; void(^failure)(NSURLSessionDataTask *,NSError *) = ^(NSURLSessionDataTask *task, NSError *error) { [self showError:error]; NSLog(@"error:%@",error); self.view.hidden = NO; }; id param = @{ @"handle":self.handle }; if (self.type == KWMContentTypePage) { [self.api getAllPage:param success:success failure:failure]; }else{ [self.api getAllBlog:param cacheCallback:nil success:success failure:failure]; } } - (void) initData { self.flagImg.hidden = NO; self.wbArticle.delegate = self; self.wbArticle.scrollView.scrollEnabled = NO; self.lbTitle.text = _article.title; self.publishTime.text = [self returnTimeStr:_article.published_at]; self.tbvArticle.backgroundColor = [UIColor clearColor]; self.tbvArticle.separatorStyle = UITableViewCellSeparatorStyleNone; [self initWebView]; } //2016-08-10T03:04:16-04:00 //初始化 时间格式 2016-10-28 09:32 - (NSString *)returnTimeStr:(NSString *)timeStr{ timeStr = [timeStr substringWithRange:NSMakeRange(0, timeStr.length-6)]; NSInteger fromMark=0,toMark=0; for (int i = 0; i < timeStr.length; ++i) { unichar aChar = [timeStr characterAtIndex:i]; NSString *aStr = [NSString stringWithFormat:@"%c",aChar]; if ([aStr isEqualToString:@"T"]) { fromMark= i; } if ([aStr isEqualToString:@":"]) { toMark = i; break; } } if (fromMark < toMark) { NSString *tempStr = [timeStr substringWithRange:NSMakeRange(fromMark, toMark-fromMark+1)]; timeStr = [timeStr stringByReplacingOccurrencesOfString:tempStr withString:@" "]; } return timeStr; } - (void)initWebView{ NSString *htmlString = [NSString stringWithFormat:@"%@",_article.body_html]; NSString *searchStr = @"src=\""; NSString *replaceStr = @"src=\"https:"; htmlString = [_article.body_html stringByReplacingOccurrencesOfString:searchStr withString:replaceStr]; NSString *BookStr = [NSString stringWithFormat:@"<html> \n" "<head> \n" "<style type=\"text/css\"> \n" "body {margin:20;marginTop:11;font-size: %d;color:#4C5966}\n" "</style> \n" "</head> \n" "<body>%@</body> \n" "</html>",18,htmlString]; [self.wbArticle loadHTMLString:BookStr baseURL:nil]; } - (void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.navigationController setNavigationBarHidden:NO]; } - (void)webViewDidFinishLoad:(UIWebView *)webView{ CGFloat t = UI_SCREEN_WIDTH - 40; NSString *js = [NSString stringWithFormat:@"var script = document.createElement('script');" "script.type = 'text/javascript';" "script.text = \"function ResizeImages() { " "var myimg,oldwidth;" "var maxwidth = %@;" // UIWebView中显示的图片宽度 "for(i=0;i <document.images.length;i++){" "myimg = document.images[i];" "if(myimg.width > maxwidth){"//大于屏幕宽度减去边距时缩小 "oldwidth = myimg.width;" "myimg.width = maxwidth;" "}" "}" "}\";" "document.getElementsByTagName('head')[0].appendChild(script);",@(t).stringValue]; [webView stringByEvaluatingJavaScriptFromString:js]; [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"]; [self getWebViewHeight];//根据网页内容设置webView高度 } - (void)getWebViewHeight{ //获取到webview的高度 CGFloat height = [[self.wbArticle stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue] +10; //10是网页的margin self.wbArticle.frame = CGRectMake(self.wbArticle.frame.origin.x,self.wbArticle.frame.origin.y, UI_SCREEN_WIDTH, height); height = height + 150;//加上本来的高度 self.vHeader.frame = CGRectMake(0, 0, UI_SCREEN_WIDTH, height); self.tbvArticle.tableHeaderView = self.vHeader; self.tbvArticle.tableHeaderView.frame = CGRectMake(0, 0, UI_SCREEN_WIDTH, height); [self.tbvArticle reloadData]; } @end