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
//
// 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(^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 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