Commit f492285842e3f02e5f463292dcf92596aa623ee8

Authored by iOS-Xiaowen
1 parent 5a5164da

no message

CNLiveScioLive.xcodeproj/project.pbxproj
@@ -700,6 +700,7 @@ @@ -700,6 +700,7 @@
700 08C090BF215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; }; 700 08C090BF215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; };
701 08C090C0215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; }; 701 08C090C0215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; };
702 08C090C1215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; }; 702 08C090C1215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */; };
  703 + 08E7998F24B2F52C00F15587 /* WKWebView+JavaScript.m in Sources */ = {isa = PBXBuildFile; fileRef = 08E7998E24B2F52C00F15587 /* WKWebView+JavaScript.m */; };
703 08FB8769215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; }; 704 08FB8769215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; };
704 08FB876A215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; }; 705 08FB876A215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; };
705 08FB876B215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; }; 706 08FB876B215DD1C200DA5423 /* VoiceViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FB8767215DD1C200DA5423 /* VoiceViewController.m */; };
@@ -1193,6 +1194,8 @@ @@ -1193,6 +1194,8 @@
1193 08C090B421510E4B00E23D16 /* CNLiveTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveTableViewCell.m; sourceTree = "<group>"; }; 1194 08C090B421510E4B00E23D16 /* CNLiveTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveTableViewCell.m; sourceTree = "<group>"; };
1194 08C090BD215116CB00E23D16 /* CNLiveIndicatorTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveIndicatorTableViewCell.h; sourceTree = "<group>"; }; 1195 08C090BD215116CB00E23D16 /* CNLiveIndicatorTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveIndicatorTableViewCell.h; sourceTree = "<group>"; };
1195 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveIndicatorTableViewCell.m; sourceTree = "<group>"; }; 1196 08C090BE215116CB00E23D16 /* CNLiveIndicatorTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveIndicatorTableViewCell.m; sourceTree = "<group>"; };
  1197 + 08E7998D24B2F52C00F15587 /* WKWebView+JavaScript.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "WKWebView+JavaScript.h"; sourceTree = "<group>"; };
  1198 + 08E7998E24B2F52C00F15587 /* WKWebView+JavaScript.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "WKWebView+JavaScript.m"; sourceTree = "<group>"; };
1196 08FB8767215DD1C200DA5423 /* VoiceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VoiceViewController.m; sourceTree = "<group>"; }; 1199 08FB8767215DD1C200DA5423 /* VoiceViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VoiceViewController.m; sourceTree = "<group>"; };
1197 08FB8768215DD1C200DA5423 /* VoiceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VoiceViewController.h; sourceTree = "<group>"; }; 1200 08FB8768215DD1C200DA5423 /* VoiceViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VoiceViewController.h; sourceTree = "<group>"; };
1198 08FB876C215DD3C400DA5423 /* NewVoiceTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewVoiceTableViewCell.m; sourceTree = "<group>"; }; 1201 08FB876C215DD3C400DA5423 /* NewVoiceTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewVoiceTableViewCell.m; sourceTree = "<group>"; };
@@ -1340,13 +1343,15 @@ @@ -1340,13 +1343,15 @@
1340 0838485A215CAB1C00186618 /* Html5Utils */ = { 1343 0838485A215CAB1C00186618 /* Html5Utils */ = {
1341 isa = PBXGroup; 1344 isa = PBXGroup;
1342 children = ( 1345 children = (
  1346 + 0838485E215CAB1C00186618 /* Html5Utils.h */,
  1347 + 0838485F215CAB1C00186618 /* UIColor+Change.h */,
1343 0838485B215CAB1C00186618 /* UIColor+Change.m */, 1348 0838485B215CAB1C00186618 /* UIColor+Change.m */,
1344 0838485C215CAB1C00186618 /* YWWebScrollView.h */, 1349 0838485C215CAB1C00186618 /* YWWebScrollView.h */,
  1350 + 08384861215CAB1C00186618 /* YWWebScrollView.m */,
1345 0838485D215CAB1C00186618 /* UIWebView+JavaScript.h */, 1351 0838485D215CAB1C00186618 /* UIWebView+JavaScript.h */,
1346 - 0838485E215CAB1C00186618 /* Html5Utils.h */,  
1347 - 0838485F215CAB1C00186618 /* UIColor+Change.h */,  
1348 08384860215CAB1C00186618 /* UIWebView+JavaScript.m */, 1352 08384860215CAB1C00186618 /* UIWebView+JavaScript.m */,
1349 - 08384861215CAB1C00186618 /* YWWebScrollView.m */, 1353 + 08E7998D24B2F52C00F15587 /* WKWebView+JavaScript.h */,
  1354 + 08E7998E24B2F52C00F15587 /* WKWebView+JavaScript.m */,
1350 ); 1355 );
1351 path = Html5Utils; 1356 path = Html5Utils;
1352 sourceTree = "<group>"; 1357 sourceTree = "<group>";
@@ -3090,6 +3095,7 @@ @@ -3090,6 +3095,7 @@
3090 08585CF3215B3AA900FC2CA2 /* NoticeTableViewCell.m in Sources */, 3095 08585CF3215B3AA900FC2CA2 /* NoticeTableViewCell.m in Sources */,
3091 085D86292159C72F0037D480 /* ZXVideoPlayerBatteryView.m in Sources */, 3096 085D86292159C72F0037D480 /* ZXVideoPlayerBatteryView.m in Sources */,
3092 08384862215CAB1C00186618 /* UIColor+Change.m in Sources */, 3097 08384862215CAB1C00186618 /* UIColor+Change.m in Sources */,
  3098 + 08E7998F24B2F52C00F15587 /* WKWebView+JavaScript.m in Sources */,
3093 08C08FF2214FA24F00E23D16 /* CNLiveBaseNavigationController.m in Sources */, 3099 08C08FF2214FA24F00E23D16 /* CNLiveBaseNavigationController.m in Sources */,
3094 08C09017215088B800E23D16 /* CNMyViewController.m in Sources */, 3100 08C09017215088B800E23D16 /* CNMyViewController.m in Sources */,
3095 084ACE0721547C0C0089E035 /* CNLiveCertificatesViewController.m in Sources */, 3101 084ACE0721547C0C0089E035 /* CNLiveCertificatesViewController.m in Sources */,
CNLiveScioLive/Pages/Home/新闻详情/Controller/VideoDetailViewController.m
@@ -10,8 +10,9 @@ @@ -10,8 +10,9 @@
10 #import "CNHomeModel.h" 10 #import "CNHomeModel.h"
11 #import "CNLiveNewsLeftPicTableViewCell.h" 11 #import "CNLiveNewsLeftPicTableViewCell.h"
12 #import "CNLiveNewsDetailsView.h" 12 #import "CNLiveNewsDetailsView.h"
  13 +#import <WebKit/WebKit.h>
13 14
14 -@interface VideoDetailViewController ()<UIWebViewDelegate,UITableViewDelegate,UITableViewDataSource>{ 15 +@interface VideoDetailViewController ()<WKUIDelegate,WKNavigationDelegate,UITableViewDelegate,UITableViewDataSource>{
15 UIScrollView *_backgroundView; 16 UIScrollView *_backgroundView;
16 NSURL *_movieUrl; 17 NSURL *_movieUrl;
17 NSString *_url; 18 NSString *_url;
@@ -26,7 +27,7 @@ @@ -26,7 +27,7 @@
26 27
27 @property (copy, nonatomic) NSString *authorName; 28 @property (copy, nonatomic) NSString *authorName;
28 @property (strong, nonatomic) NSMutableArray *data; 29 @property (strong, nonatomic) NSMutableArray *data;
29 -@property (strong, nonatomic) UIWebView *webView; 30 +@property (strong, nonatomic) WKWebView *webView;
30 31
31 @property (nonatomic, assign) NSInteger pageNo; 32 @property (nonatomic, assign) NSInteger pageNo;
32 @property (nonatomic, assign) BOOL isRefreshing; 33 @property (nonatomic, assign) BOOL isRefreshing;
@@ -206,13 +207,13 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;; @@ -206,13 +207,13 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;;
206 } 207 }
207 if (0 == weakSelf.fontIndex) { 208 if (0 == weakSelf.fontIndex) {
208 NSLog(@"0"); 209 NSLog(@"0");
209 - [weakSelf.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'"]; 210 + [weakSelf.webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'" completionHandler:nil];
210 } else if (1 == weakSelf.fontIndex) { 211 } else if (1 == weakSelf.fontIndex) {
211 NSLog(@"1"); 212 NSLog(@"1");
212 - [weakSelf.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '120%'"]; 213 + [weakSelf.webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '120%'" completionHandler:nil];
213 } else if (2 == weakSelf.fontIndex) { 214 } else if (2 == weakSelf.fontIndex) {
214 NSLog(@"2"); 215 NSLog(@"2");
215 - [weakSelf.webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '140%'"]; 216 + [weakSelf.webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '140%'" completionHandler:nil];
216 } 217 }
217 } 218 }
218 break; 219 break;
@@ -408,16 +409,48 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;; @@ -408,16 +409,48 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;;
408 [super didReceiveMemoryWarning]; 409 [super didReceiveMemoryWarning];
409 // Dispose of any resources that can be recreated. 410 // Dispose of any resources that can be recreated.
410 } 411 }
411 -#pragma mark - UIWebViewDelegate  
412 -- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{  
413 - NSURL *requestURL =[request URL];  
414 - if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationType == UIWebViewNavigationTypeLinkClicked)) {  
415 - [[UIApplication sharedApplication] openURL:[request URL]];  
416 - return NO; 412 +#pragma mark - WebViewDelegate
  413 +- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
  414 + NSURL *requestURL = webView.URL;
  415 + if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationAction.navigationType == WKNavigationTypeLinkActivated)) {
  416 + [[UIApplication sharedApplication] openURL:requestURL];
  417 + decisionHandler(WKNavigationActionPolicyCancel);
417 } 418 }
418 - return YES;  
419 -}  
420 -- (void)webViewDidFinishLoad:(UIWebView *)webView{ 419 + decisionHandler(WKNavigationActionPolicyAllow);
  420 +}
  421 +//- (void)webViewDidFinishLoad:(UIWebView *)webView{
  422 +// CGFloat width = MainScreenWidth - 20;
  423 +// NSString *string = [NSString stringWithFormat:
  424 +// @"var script = document.createElement('script');"
  425 +// "script.type = 'text/javascript';"
  426 +// "script.text = \"function ResizeImages() { "
  427 +// "var myimg,oldwidth;"
  428 +// "var maxwidth=%f;" //缩放系数
  429 +// "for(i=0;i <document.images.length;i++){"
  430 +// "myimg = document.images[i];"
  431 +// "if(myimg.width > maxwidth){"
  432 +// "oldwidth = myimg.width;"
  433 +// "myimg.width = maxwidth;"
  434 +// "myimg.height = myimg.height * (maxwidth/oldwidth);"
  435 +// "}"
  436 +// "}"
  437 +// "}\";"
  438 +// "document.getElementsByTagName('head')[0].appendChild(script);",width];
  439 +// [webView stringByEvaluatingJavaScriptFromString:string];
  440 +// [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];
  441 +// CGRect frame = _webView.frame;
  442 +// frame.size.width = MainScreenWidth;
  443 +// frame.size.height = 1;
  444 +// _webView.frame = frame;
  445 +// CGFloat graphicLiveHeight = _webView.scrollView.contentSize.height;
  446 +// frame.size.height = _webView.scrollView.contentSize.height;
  447 +// _webView.frame = frame;
  448 +// if (0 == [_heightArr[_fontIndex] floatValue]) {
  449 +// [_heightArr replaceObjectAtIndex:_fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];
  450 +// }
  451 +// [self loadRelatedInformation];
  452 +//}
  453 +- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation*)navigation {
421 CGFloat width = MainScreenWidth - 20; 454 CGFloat width = MainScreenWidth - 20;
422 NSString *string = [NSString stringWithFormat: 455 NSString *string = [NSString stringWithFormat:
423 @"var script = document.createElement('script');" 456 @"var script = document.createElement('script');"
@@ -435,18 +468,22 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;; @@ -435,18 +468,22 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;;
435 "}" 468 "}"
436 "}\";" 469 "}\";"
437 "document.getElementsByTagName('head')[0].appendChild(script);",width]; 470 "document.getElementsByTagName('head')[0].appendChild(script);",width];
438 - [webView stringByEvaluatingJavaScriptFromString:string];  
439 - [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];  
440 - CGRect frame = _webView.frame;  
441 - frame.size.width = MainScreenWidth;  
442 - frame.size.height = 1;  
443 - _webView.frame = frame;  
444 - CGFloat graphicLiveHeight = _webView.scrollView.contentSize.height;  
445 - frame.size.height = _webView.scrollView.contentSize.height;  
446 - _webView.frame = frame;  
447 - if (0 == [_heightArr[_fontIndex] floatValue]) {  
448 - [_heightArr replaceObjectAtIndex:_fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];  
449 - } 471 + [webView evaluateJavaScript:@"ResizeImages();" completionHandler:nil];
  472 + [webView evaluateJavaScript:string completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  473 + NSLog(@"value: %@ error: %@", response, error);
  474 + dispatch_async(dispatch_get_main_queue(), ^{
  475 + CGRect frame = self->_webView.frame;
  476 + frame.size.width = MainScreenWidth;
  477 + frame.size.height = 1;
  478 + self->_webView.frame = frame;
  479 + CGFloat graphicLiveHeight = self->_webView.scrollView.contentSize.height;
  480 + frame.size.height = self->_webView.scrollView.contentSize.height;
  481 + self->_webView.frame = frame;
  482 + if (0 == [self->_heightArr[self->_fontIndex] floatValue]) {
  483 + [self->_heightArr replaceObjectAtIndex:self->_fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];
  484 + }
  485 + });
  486 + }];
450 [self loadRelatedInformation]; 487 [self loadRelatedInformation];
451 } 488 }
452 489
@@ -535,14 +572,23 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;; @@ -535,14 +572,23 @@ static NSString *newsLeftPicTableViewCell = @&quot;CNLiveNewsLeftPicTableViewCell&quot;;
535 [self.navigationController popToRootViewControllerAnimated:YES]; 572 [self.navigationController popToRootViewControllerAnimated:YES];
536 } 573 }
537 #pragma mark - Lazy Laoding 574 #pragma mark - Lazy Laoding
538 -- (UIWebView *)webView { 575 +- (WKWebView *)webView {
539 if (!_webView) { 576 if (!_webView) {
540 - _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, 0)]; 577 + NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
  578 +
  579 + WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
  580 + WKUserContentController *wkUController = [[WKUserContentController alloc] init];
  581 + [wkUController addUserScript:wkUScript];
  582 +
  583 + WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
  584 + wkWebConfig.userContentController = wkUController;
  585 + _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, 0) configuration:wkWebConfig];
541 _webView.scrollView.backgroundColor = [UIColor clearColor]; 586 _webView.scrollView.backgroundColor = [UIColor clearColor];
542 - _webView.dataDetectorTypes = UIDataDetectorTypeNone; 587 +// _webView.dataDetectorTypes = UIDataDetectorTypeNone;
543 _webView.backgroundColor = [UIColor clearColor]; 588 _webView.backgroundColor = [UIColor clearColor];
544 _webView.scrollView.bounces = NO; 589 _webView.scrollView.bounces = NO;
545 - _webView.delegate = self; 590 + _webView.navigationDelegate = self;
  591 + _webView.UIDelegate = self;
546 _webView.backgroundColor = [UIColor whiteColor]; 592 _webView.backgroundColor = [UIColor whiteColor];
547 _webView.opaque = NO; 593 _webView.opaque = NO;
548 _webView.scrollView.scrollEnabled = NO; 594 _webView.scrollView.scrollEnabled = NO;
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldArticleDetailViewController.h
@@ -7,7 +7,9 @@ @@ -7,7 +7,9 @@
7 // 7 //
8 8
9 #import "CNLiveBaseViewController.h" 9 #import "CNLiveBaseViewController.h"
10 -@interface OldArticleDetailViewController : CNLiveBaseViewController<UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,UIWebViewDelegate>{ 10 +#import <WebKit/WebKit.h>
  11 +
  12 +@interface OldArticleDetailViewController : CNLiveBaseViewController<UIScrollViewDelegate,UITableViewDelegate,UITableViewDataSource,WKNavigationDelegate, WKUIDelegate>{
11 NSArray *_newsArray; 13 NSArray *_newsArray;
12 NSDictionary *_dicArticle; 14 NSDictionary *_dicArticle;
13 NSDictionary *_dictionary; 15 NSDictionary *_dictionary;
@@ -18,7 +20,7 @@ @@ -18,7 +20,7 @@
18 } 20 }
19 @property (strong, nonatomic) UILabel *errorLabe; 21 @property (strong, nonatomic) UILabel *errorLabe;
20 @property (strong, nonatomic) NSArray *newsArray; 22 @property (strong, nonatomic) NSArray *newsArray;
21 -@property (strong, nonatomic) UIWebView *webView; 23 +@property (strong, nonatomic) WKWebView *webView;
22 @property (strong, nonatomic) UITableView *tableView; 24 @property (strong, nonatomic) UITableView *tableView;
23 @property (strong, nonatomic) UIScrollView *scrollView; 25 @property (strong, nonatomic) UIScrollView *scrollView;
24 -(id)initWithDictionary:(NSDictionary*)dictionary; 26 -(id)initWithDictionary:(NSDictionary*)dictionary;
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldArticleDetailViewController.m
@@ -11,14 +11,10 @@ @@ -11,14 +11,10 @@
11 11
12 #import "VideoTableViewCell.h" 12 #import "VideoTableViewCell.h"
13 #import "ArticleTableViewCell.h" 13 #import "ArticleTableViewCell.h"
14 -#import "NJKWebViewProgress.h"  
15 -#import "NJKWebViewProgressView.h"  
16 #import "YWWebScrollView.h" 14 #import "YWWebScrollView.h"
17 #import "Html5Utils.h" 15 #import "Html5Utils.h"
18 16
19 -@interface OldArticleDetailViewController ()<NJKWebViewProgressDelegate,UIGestureRecognizerDelegate>{  
20 - NJKWebViewProgressView *_progressView;  
21 - NJKWebViewProgress *_progressProxy; 17 +@interface OldArticleDetailViewController ()<UIGestureRecognizerDelegate>{
22 NSMutableArray *_imageArray; 18 NSMutableArray *_imageArray;
23 NSInteger typeFlag; 19 NSInteger typeFlag;
24 NSString *htmlString; 20 NSString *htmlString;
@@ -190,13 +186,13 @@ @@ -190,13 +186,13 @@
190 } 186 }
191 if (0 == fontIndex) { 187 if (0 == fontIndex) {
192 NSLog(@"0"); 188 NSLog(@"0");
193 - [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'"]; 189 + [_webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '100%'" completionHandler:nil];
194 } else if (1 == fontIndex) { 190 } else if (1 == fontIndex) {
195 NSLog(@"1"); 191 NSLog(@"1");
196 - [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '120%'"]; 192 + [_webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '120%'" completionHandler:nil];
197 } else if (2 == fontIndex) { 193 } else if (2 == fontIndex) {
198 NSLog(@"2"); 194 NSLog(@"2");
199 - [_webView stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '140%'"]; 195 + [_webView evaluateJavaScript:@"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '140%'" completionHandler:nil];
200 } 196 }
201 } else if (20000 == btn.tag) { 197 } else if (20000 == btn.tag) {
202 TableData *notice = [[TableData alloc] initWithJSONDictionary:_dictionary]; 198 TableData *notice = [[TableData alloc] initWithJSONDictionary:_dictionary];
@@ -255,26 +251,37 @@ @@ -255,26 +251,37 @@
255 // [self.scrollView setFooter:footer]; 251 // [self.scrollView setFooter:footer];
256 [self.view addSubview:self.scrollView]; 252 [self.view addSubview:self.scrollView];
257 253
258 - _progressProxy = [[NJKWebViewProgress alloc] init];  
259 - _progressProxy.webViewProxyDelegate = self;  
260 - _progressProxy.progressDelegate = self; 254 +// _progressProxy = [[NJKWebViewProgress alloc] init];
  255 +// _progressProxy.webViewProxyDelegate = self;
  256 +// _progressProxy.progressDelegate = self;
261 257
262 - CGFloat progressBarHeight = 2.f;  
263 - CGRect navigationBarBounds = self.navigationController.navigationBar.bounds;  
264 - CGRect barFrame = CGRectMake(0, navigationBarBounds.size.height, navigationBarBounds.size.width, progressBarHeight);  
265 - _progressView = [[NJKWebViewProgressView alloc] initWithFrame:barFrame];  
266 - _progressView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin; 258 +// CGFloat progressBarHeight = 2.f;
  259 +// CGRect navigationBarBounds = self.navigationController.navigationBar.bounds;
  260 +// CGRect barFrame = CGRectMake(0, navigationBarBounds.size.height, navigationBarBounds.size.width, progressBarHeight);
  261 +// _progressView = [[NJKWebViewProgressView alloc] initWithFrame:barFrame];
  262 +// _progressView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
  263 +
  264 + NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
  265 +
  266 + WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
  267 + WKUserContentController *wkUController = [[WKUserContentController alloc] init];
  268 + [wkUController addUserScript:wkUScript];
  269 +
  270 + WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
  271 + wkWebConfig.userContentController = wkUController;
267 272
268 if (iPhoneX) { 273 if (iPhoneX) {
269 - _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight - 88 - 44 - 34)]; 274 + _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight - 88 - 44 - 34) configuration:wkWebConfig];
270 } else { 275 } else {
271 - _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight - 64 - 44)]; 276 + _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight - 64 - 44) configuration:wkWebConfig];
272 } 277 }
273 _webView.scrollView.backgroundColor = [UIColor whiteColor]; 278 _webView.scrollView.backgroundColor = [UIColor whiteColor];
274 - _webView.dataDetectorTypes = UIDataDetectorTypeNone; 279 +// _webView.dataDetectorTypes = UIDataDetectorTypeNone;
275 _webView.backgroundColor = [UIColor whiteColor]; 280 _webView.backgroundColor = [UIColor whiteColor];
276 - _webView.delegate = _progressProxy;  
277 - _webView.scalesPageToFit = YES; 281 + _webView.navigationDelegate = self;
  282 + _webView.UIDelegate = self;
  283 +// _webView.delegate = _progressProxy;
  284 +// _webView.scalesPageToFit = YES;
278 _webView.opaque = NO; 285 _webView.opaque = NO;
279 [self.scrollView addSubview:_webView]; 286 [self.scrollView addSubview:_webView];
280 287
@@ -310,7 +317,6 @@ @@ -310,7 +317,6 @@
310 317
311 - (void)viewWillAppear:(BOOL)animated { 318 - (void)viewWillAppear:(BOOL)animated {
312 [super viewWillAppear:animated]; 319 [super viewWillAppear:animated];
313 - [self.navigationController.navigationBar addSubview:_progressView];  
314 320
315 NSError *error = nil; 321 NSError *error = nil;
316 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error]; 322 [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: &error];
@@ -360,48 +366,20 @@ @@ -360,48 +366,20 @@
360 } 366 }
361 } 367 }
362 368
363 --(void)viewWillDisappear:(BOOL)animated { 369 +- (void)viewWillDisappear:(BOOL)animated {
364 [super viewWillDisappear:animated]; 370 [super viewWillDisappear:animated];
365 - [_progressView removeFromSuperview];  
366 } 371 }
367 372
368 #pragma mark - WebView加载H5页面区域 373 #pragma mark - WebView加载H5页面区域
369 -  
370 --(void)webViewProgress:(NJKWebViewProgress *)webViewProgress updateProgress:(float)progress {  
371 - [_progressView setProgress:progress animated:YES];  
372 - NSLog(@"%f",progress);  
373 - if (progress >= 1.0) {  
374 - CGRect frame = _webView.frame;  
375 - frame.size.width = MainScreenWidth;  
376 - frame.size.height = 1;  
377 - _webView.frame = frame;  
378 - CGFloat graphicLiveHeight = _webView.scrollView.contentSize.height;  
379 - frame.size.height = _webView.scrollView.contentSize.height;  
380 - _webView.frame = frame;  
381 -  
382 - if (0 == [heightArr[fontIndex] floatValue]) {  
383 - [heightArr replaceObjectAtIndex:fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];  
384 - }  
385 - [self.scrollView.mj_header endRefreshing];  
386 - [_webView setFrame:CGRectMake(0, 0, MainScreenWidth, [heightArr[fontIndex] floatValue])];  
387 - [self.scrollView setContentSize:CGSizeMake(MainScreenWidth, [heightArr[fontIndex] floatValue])];  
388 - if (!hasLoad) {  
389 - [self loadProgramRelativeData];  
390 - }  
391 - }  
392 -}  
393 -  
394 -- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {  
395 - 374 +- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
396 if (_imageArray.count) { 375 if (_imageArray.count) {
397 - NSURL *requestURL = [request URL]; 376 + NSURL *requestURL = webView.URL;
398 BOOL isImg = [@"img" isEqualToString:[requestURL scheme]]; 377 BOOL isImg = [@"img" isEqualToString:[requestURL scheme]];
399 BOOL isHttp = [[requestURL scheme] isEqualToString: @"http"]; 378 BOOL isHttp = [[requestURL scheme] isEqualToString: @"http"];
400 BOOL isHttps = [[requestURL scheme] isEqualToString: @"https"]; 379 BOOL isHttps = [[requestURL scheme] isEqualToString: @"https"];
401 BOOL isMailto = [[requestURL scheme] isEqualToString: @"mailto"]; 380 BOOL isMailto = [[requestURL scheme] isEqualToString: @"mailto"];
402 -  
403 if (isImg) { 381 if (isImg) {
404 - NSString *requesturl = [[NSString stringWithFormat:@"%@",request.URL] substringFromIndex:4]; 382 + NSString *requesturl = [[NSString stringWithFormat:@"%@",webView.URL] substringFromIndex:4];
405 for (NSInteger indes = 0; indes < _imageArray.count; indes++) { 383 for (NSInteger indes = 0; indes < _imageArray.count; indes++) {
406 NSString *url = [NSString stringWithFormat:@"%@",_imageArray[indes]]; 384 NSString *url = [NSString stringWithFormat:@"%@",_imageArray[indes]];
407 if ([url isEqualToString:requesturl]) { 385 if ([url isEqualToString:requesturl]) {
@@ -409,24 +387,21 @@ @@ -409,24 +387,21 @@
409 break; 387 break;
410 } 388 }
411 } 389 }
412 - return NO;  
413 } else if (isHttp || isHttps || isMailto) { 390 } else if (isHttp || isHttps || isMailto) {
414 - [[UIApplication sharedApplication] openURL:[request URL]];  
415 - return NO; 391 + [[UIApplication sharedApplication] openURL:webView.URL];
  392 + decisionHandler(WKNavigationActionPolicyCancel);
416 } 393 }
417 } else { 394 } else {
418 - NSURL *requestURL =[request URL];  
419 - if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationType == UIWebViewNavigationTypeLinkClicked)) {  
420 - [[UIApplication sharedApplication] openURL:[request URL]];  
421 - return NO; 395 + NSURL *requestURL = webView.URL;
  396 + if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationAction.navigationType == WKNavigationTypeLinkActivated)) {
  397 + [[UIApplication sharedApplication] openURL:webView.URL];
  398 + decisionHandler(WKNavigationActionPolicyCancel);
422 } 399 }
423 } 400 }
424 - return YES; 401 + decisionHandler(WKNavigationActionPolicyAllow);
425 } 402 }
426 -- (void)webViewDidStartLoad:(UIWebView *)webView{  
427 - NSLog(@"did start");  
428 -}  
429 -- (void)webViewDidFinishLoad:(UIWebView *)webView{ 403 +
  404 +- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation*)navigation {
430 _imageArray = [_webView getImgs]; 405 _imageArray = [_webView getImgs];
431 NSMutableArray *array = [NSMutableArray array]; 406 NSMutableArray *array = [NSMutableArray array];
432 for (NSString *string in _imageArray) { 407 for (NSString *string in _imageArray) {
@@ -438,20 +413,38 @@ @@ -438,20 +413,38 @@
438 [webView addClickEventOnImg];//有的图片没有点击事件 413 [webView addClickEventOnImg];//有的图片没有点击事件
439 414
440 //使页面中图片width=100% 415 //使页面中图片width=100%
441 - [self.webView stringByEvaluatingJavaScriptFromString: 416 + [self.webView evaluateJavaScript:
442 @"var script = document.createElement('script');" 417 @"var script = document.createElement('script');"
443 "script.type = 'text/javascript';" 418 "script.type = 'text/javascript';"
444 "script.text = \"var imgs = document.getElementById('article_content').getElementsByTagName('img')\";" 419 "script.text = \"var imgs = document.getElementById('article_content').getElementsByTagName('img')\";"
445 "for(var i=0; i<imgs.length; i++){" 420 "for(var i=0; i<imgs.length; i++){"
446 "imgs[i].style.width = '100%';" 421 "imgs[i].style.width = '100%';"
447 "}" 422 "}"
448 - "document.getElementsByTagName('body')[0].appendChild(script);"]; 423 + "document.getElementsByTagName('body')[0].appendChild(script);" completionHandler:nil];
449 424
450 //通过css隐藏h5页面中头部和底部的logo 425 //通过css隐藏h5页面中头部和底部的logo
451 NSString *cssString = @".container { display:none !important; }"; 426 NSString *cssString = @".container { display:none !important; }";
452 NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)"; 427 NSString *javascriptString = @"var style = document.createElement('style'); style.innerHTML = '%@'; document.head.appendChild(style)";
453 NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString]; 428 NSString *javascriptWithCSSString = [NSString stringWithFormat:javascriptString, cssString];
454 - [webView stringByEvaluatingJavaScriptFromString:javascriptWithCSSString]; 429 + [webView evaluateJavaScript:javascriptWithCSSString completionHandler:nil];
  430 +
  431 + CGRect frame = _webView.frame;
  432 + frame.size.width = MainScreenWidth;
  433 + frame.size.height = 1;
  434 + _webView.frame = frame;
  435 + CGFloat graphicLiveHeight = _webView.scrollView.contentSize.height;
  436 + frame.size.height = _webView.scrollView.contentSize.height;
  437 + _webView.frame = frame;
  438 +
  439 + if (0 == [heightArr[fontIndex] floatValue]) {
  440 + [heightArr replaceObjectAtIndex:fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];
  441 + }
  442 + [self.scrollView.mj_header endRefreshing];
  443 + [_webView setFrame:CGRectMake(0, 0, MainScreenWidth, [heightArr[fontIndex] floatValue])];
  444 + [self.scrollView setContentSize:CGSizeMake(MainScreenWidth, [heightArr[fontIndex] floatValue])];
  445 + if (!hasLoad) {
  446 + [self loadProgramRelativeData];
  447 + }
455 } 448 }
456 449
457 -(void)pushPicController:(NSString *)url withPoint:(NSInteger)CurrentIndex { 450 -(void)pushPicController:(NSString *)url withPoint:(NSInteger)CurrentIndex {
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldVideoDetailViewController.h
@@ -10,15 +10,16 @@ @@ -10,15 +10,16 @@
10 #import "CNLiveMyCollectionViewController.h" 10 #import "CNLiveMyCollectionViewController.h"
11 #import "CNLivePlayerController.h" 11 #import "CNLivePlayerController.h"
12 #import "BaseViewController.h" 12 #import "BaseViewController.h"
  13 +#import <WebKit/WebKit.h>
13 14
14 -@interface OldVideoDetailViewController : BaseViewController<UITableViewDelegate,UITableViewDataSource,UIWebViewDelegate>{ 15 +@interface OldVideoDetailViewController : BaseViewController<UITableViewDelegate,UITableViewDataSource,WKUIDelegate,WKNavigationDelegate>{
15 UIScrollView *backgroundView; 16 UIScrollView *backgroundView;
16 UIImageView *imageView; 17 UIImageView *imageView;
17 UIButton *playBtn; 18 UIButton *playBtn;
18 NSURL *movieUrl; 19 NSURL *movieUrl;
19 NSString *url; 20 NSString *url;
20 UIImage *bgImg; 21 UIImage *bgImg;
21 - UIWebView *_webView; 22 + WKWebView *_webView;
22 NSArray *_newsArray; 23 NSArray *_newsArray;
23 CGFloat videoHeight; 24 CGFloat videoHeight;
24 NSDictionary *_dictionary; 25 NSDictionary *_dictionary;
CNLiveScioLive/Pages/Home/新闻详情/OldController/OldVideoDetailViewController.m
@@ -201,13 +201,24 @@ @@ -201,13 +201,24 @@
201 fontIndex = (int)[[NSUserDefaults standardUserDefaults] integerForKey:@"FontSize"]; 201 fontIndex = (int)[[NSUserDefaults standardUserDefaults] integerForKey:@"FontSize"];
202 heightArr = [NSMutableArray arrayWithArray:@[@"0",@"0",@"0"]]; 202 heightArr = [NSMutableArray arrayWithArray:@[@"0",@"0",@"0"]];
203 fontArray = @[@"16",@"20",@"24"]; 203 fontArray = @[@"16",@"20",@"24"];
  204 +
  205 + NSString *jScript = @"var meta = document.createElement('meta'); meta.setAttribute('name', 'viewport'); meta.setAttribute('content', 'width=device-width'); document.getElementsByTagName('head')[0].appendChild(meta);";
  206 +
  207 + WKUserScript *wkUScript = [[WKUserScript alloc] initWithSource:jScript injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
  208 + WKUserContentController *wkUController = [[WKUserContentController alloc] init];
  209 + [wkUController addUserScript:wkUScript];
  210 +
  211 + WKWebViewConfiguration *wkWebConfig = [[WKWebViewConfiguration alloc] init];
  212 + wkWebConfig.userContentController = wkUController;
204 213
205 - _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, 0)]; 214 + _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, 0) configuration:wkWebConfig];
206 _webView.scrollView.backgroundColor = [UIColor clearColor]; 215 _webView.scrollView.backgroundColor = [UIColor clearColor];
207 - _webView.dataDetectorTypes = UIDataDetectorTypeNone; 216 +// _webView.dataDetectorTypes = UIDataDetectorTypeNone;
208 _webView.backgroundColor = [UIColor clearColor]; 217 _webView.backgroundColor = [UIColor clearColor];
209 _webView.scrollView.bounces = NO; 218 _webView.scrollView.bounces = NO;
210 - _webView.delegate = self; 219 +// _webView.delegate = self;
  220 + _webView.navigationDelegate = self;
  221 + _webView.UIDelegate = self;
211 _webView.opaque = NO; 222 _webView.opaque = NO;
212 [backgroundView addSubview:_webView]; 223 [backgroundView addSubview:_webView];
213 [_webView loadHTMLString:[self setHTMLString] baseURL:nil]; 224 [_webView loadHTMLString:[self setHTMLString] baseURL:nil];
@@ -366,15 +377,15 @@ @@ -366,15 +377,15 @@
366 video.title = _dictionary[@"title"]; 377 video.title = _dictionary[@"title"];
367 self.videoController.video = video; 378 self.videoController.video = video;
368 } 379 }
369 -- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{  
370 - NSURL *requestURL =[request URL];  
371 - if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationType == UIWebViewNavigationTypeLinkClicked)) {  
372 - [[UIApplication sharedApplication] openURL:[request URL]];  
373 - return NO; 380 +- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
  381 + NSURL *requestURL = webView.URL;
  382 + if (([[requestURL scheme] isEqualToString: @"http"] || [[requestURL scheme] isEqualToString:@"https"] || [[requestURL scheme] isEqualToString: @"mailto" ]) && (navigationAction.navigationType == WKNavigationTypeLinkActivated)) {
  383 + [[UIApplication sharedApplication] openURL:requestURL];
  384 + decisionHandler(WKNavigationActionPolicyCancel);
374 } 385 }
375 - return YES; 386 + decisionHandler(WKNavigationActionPolicyAllow);
376 } 387 }
377 -- (void)webViewDidFinishLoad:(UIWebView *)webView{ 388 +- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation*)navigation {
378 CGFloat width = MainScreenWidth - 20; 389 CGFloat width = MainScreenWidth - 20;
379 NSString *string = [NSString stringWithFormat: 390 NSString *string = [NSString stringWithFormat:
380 @"var script = document.createElement('script');" 391 @"var script = document.createElement('script');"
@@ -392,18 +403,22 @@ @@ -392,18 +403,22 @@
392 "}" 403 "}"
393 "}\";" 404 "}\";"
394 "document.getElementsByTagName('head')[0].appendChild(script);",width]; 405 "document.getElementsByTagName('head')[0].appendChild(script);",width];
395 - [webView stringByEvaluatingJavaScriptFromString:string];  
396 - [webView stringByEvaluatingJavaScriptFromString:@"ResizeImages();"];  
397 - CGRect frame = _webView.frame;  
398 - frame.size.width = MainScreenWidth;  
399 - frame.size.height = 1;  
400 - _webView.frame = frame;  
401 - CGFloat graphicLiveHeight = _webView.scrollView.contentSize.height;  
402 - frame.size.height = _webView.scrollView.contentSize.height;  
403 - _webView.frame = frame;  
404 - if (0 == [heightArr[fontIndex] floatValue]) {  
405 - [heightArr replaceObjectAtIndex:fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];  
406 - } 406 + [webView evaluateJavaScript:@"ResizeImages();" completionHandler:nil];
  407 + [webView evaluateJavaScript:string completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  408 + NSLog(@"value: %@ error: %@", response, error);
  409 + dispatch_async(dispatch_get_main_queue(), ^{
  410 + CGRect frame = self->_webView.frame;
  411 + frame.size.width = MainScreenWidth;
  412 + frame.size.height = 1;
  413 + self->_webView.frame = frame;
  414 + CGFloat graphicLiveHeight = self->_webView.scrollView.contentSize.height;
  415 + frame.size.height = self->_webView.scrollView.contentSize.height;
  416 + self->_webView.frame = frame;
  417 + if (0 == [self->heightArr[self->fontIndex] floatValue]) {
  418 + [self->heightArr replaceObjectAtIndex:self->fontIndex withObject:[NSString stringWithFormat:@"%f",graphicLiveHeight]];
  419 + }
  420 + });
  421 + }];
407 [self loadRelatedInformation]; 422 [self loadRelatedInformation];
408 } 423 }
409 - (void)loadRelatedInformation { 424 - (void)loadRelatedInformation {
@@ -447,8 +462,6 @@ @@ -447,8 +462,6 @@
447 [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"ServerBusy")]; 462 [AlertViewTool showHUDAddedToView:self.view text:CustomStr(@"ServerBusy")];
448 }]; 463 }];
449 } 464 }
450 -- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error{  
451 -}  
452 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 465 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
453 return [_newsArray count]; 466 return [_newsArray count];
454 } 467 }
CNLiveScioLive/Pages/Live/View/CNLiveIndicatorTableViewCell.m
@@ -23,7 +23,7 @@ @@ -23,7 +23,7 @@
23 { 23 {
24 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 24 self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
25 if (self) { 25 if (self) {
26 - self.accessoryType = UITableViewCellAccessoryDisclosureIndicator; 26 +// self.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
27 _titleLabel = [[UILabel alloc] init]; 27 _titleLabel = [[UILabel alloc] init];
28 _titleLabel.numberOfLines = 2; 28 _titleLabel.numberOfLines = 2;
29 _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail; 29 _titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
CNLiveScioLive/Pages/SDK/Html5Utils/Html5Utils.h
@@ -8,6 +8,8 @@ @@ -8,6 +8,8 @@
8 8
9 #import <UIKit/UIKit.h> 9 #import <UIKit/UIKit.h>
10 #import "UIWebView+JavaScript.h" 10 #import "UIWebView+JavaScript.h"
  11 +#import "WKWebView+JavaScript.h"
  12 +
11 //! Project version number for Html5Utils. 13 //! Project version number for Html5Utils.
12 FOUNDATION_EXPORT double Html5UtilsVersionNumber; 14 FOUNDATION_EXPORT double Html5UtilsVersionNumber;
13 15
CNLiveScioLive/Pages/SDK/Html5Utils/WKWebView+JavaScript.h 0 → 100644
  1 +//
  2 +// WKWebView+JavaScript.h
  3 +// CNLiveScioLive
  4 +//
  5 +// Created by CNLive-zxw on 2020/7/6.
  6 +// Copyright © 2020 CNLive. All rights reserved.
  7 +//
  8 +
  9 +#import <WebKit/WebKit.h>
  10 +
  11 +NS_ASSUME_NONNULL_BEGIN
  12 +
  13 +@interface WKWebView (JavaScript)
  14 +/// 获取某个标签的结点个数
  15 +- (int)nodeCountOfTag:(NSString *)tag;
  16 +
  17 +/// 获取当前页面URL
  18 +- (NSString *)getCurrentURL;
  19 +
  20 +/// 获取标题
  21 +- (NSString *)getTitle;
  22 +
  23 +/// 获取文章内容
  24 +- (NSString *)getContent;
  25 +
  26 +/// 获取图片
  27 +- (NSMutableArray *)getImgs;
  28 +
  29 +/// 获取当前页面所有链接
  30 +- (NSArray *)getOnClicks;
  31 +
  32 +/// 改变背景颜色
  33 +- (void)setBackgroundColor:(UIColor *)color;
  34 +
  35 +/// 为所有图片添加点击事件(网页中有些图片添加无效)
  36 +- (void)addClickEventOnImg;
  37 +
  38 +/// 改变指定标签的字体颜色
  39 +- (void)setFontColor:(UIColor *)color withTag:(NSString *)tagName;
  40 +
  41 +/// 改变指定标签的字体大小
  42 +- (void)setFontSize:(int)size withTag:(NSString *)tagName;
  43 +
  44 +/// 设置网页没有拷贝粘贴
  45 +- (void)disableTouchCallout;
  46 +@end
  47 +
  48 +NS_ASSUME_NONNULL_END
CNLiveScioLive/Pages/SDK/Html5Utils/WKWebView+JavaScript.m 0 → 100644
  1 +//
  2 +// WKWebView+JavaScript.m
  3 +// CNLiveScioLive
  4 +//
  5 +// Created by CNLive-zxw on 2020/7/6.
  6 +// Copyright © 2020 CNLive. All rights reserved.
  7 +//
  8 +
  9 +#import "WKWebView+JavaScript.h"
  10 +#import "UIColor+Change.h"
  11 +#define HTML_STRING_NIL_TO_NONE_IF(x) [WKWebView STRING_NIL_TO_NONE:x]
  12 +
  13 +@implementation WKWebView (JavaScript)
  14 +
  15 ++ (NSString *)STRING_NIL_TO_NONE:(NSString *)x {
  16 + if (x == nil || ([x isKindOfClass:[NSNull class]]) || ([x isKindOfClass:[NSString class]]&&x.length<=0) || [x isEqual:NULL]){
  17 + return @"";
  18 + } else {
  19 + return [NSString stringWithFormat:@"%@",x];
  20 + }
  21 +}
  22 +
  23 +/// 获取某个标签的结点个数
  24 +- (int)nodeCountOfTag:(NSString *)tag {
  25 + __block int len = 0;
  26 + [self evaluateJavaScript:@"document.getElementsByTagName('%@').length" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  27 + NSLog(@"value: %@ error: %@", response, error);
  28 + len = [response intValue];
  29 + }];
  30 + return len;
  31 +
  32 +// NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('%@').length", tag];
  33 +//
  34 +// int len = [[self evaluateJavaScript:jsString completionHandler:nil] intValue];
  35 +// return len;
  36 +}
  37 +
  38 +/// 获取当前页面URL
  39 +- (NSString *)getCurrentURL {
  40 +// return HTML_STRING_NIL_TO_NONE_IF([self evaluateJavaScript:@"document.location.href" completionHandler:nil]);
  41 + __block NSString *result = @"";
  42 + [self evaluateJavaScript:@"document.location.href" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  43 + NSLog(@"value: %@ error: %@", response, error);
  44 + result = HTML_STRING_NIL_TO_NONE_IF(response);
  45 + }];
  46 + return result;
  47 +}
  48 +
  49 +/// 获取标题
  50 +- (NSString *)getTitle {
  51 + __block NSString *result = @"";
  52 + [self evaluateJavaScript:@"document.title" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  53 + NSLog(@"value: %@ error: %@", response, error);
  54 + result = HTML_STRING_NIL_TO_NONE_IF(response);
  55 + }];
  56 + return result;
  57 +// return HTML_STRING_NIL_TO_NONE_IF([self evaluateJavaScript:@"document.title" completionHandler:nil]);
  58 +}
  59 +
  60 +/// 获取文章内容
  61 +- (NSString *)getContent{
  62 + __block NSString *result = @"";
  63 + [self evaluateJavaScript:@"document.documentElement.innerText" completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  64 + NSLog(@"value: %@ error: %@", response, error);
  65 +// if (!result) {
  66 +// result = [self evaluateJavaScript:@"document.body.innerText" completionHandler:nil];
  67 +// }
  68 + result = HTML_STRING_NIL_TO_NONE_IF(result);
  69 + }];
  70 + return result;
  71 +
  72 +// NSString *result = [self evaluateJavaScript:@"document.documentElement.innerText" completionHandler:nil];
  73 +// if (!result) {
  74 +// result = [self evaluateJavaScript:@"document.body.innerText" completionHandler:nil];
  75 +// }
  76 +// result = HTML_STRING_NIL_TO_NONE_IF(result);
  77 +// return result;
  78 +}
  79 +
  80 +/// 获取所有图片链接
  81 +- (NSMutableArray *)getImgs {
  82 + __block NSMutableArray *arrImgURL = [[NSMutableArray alloc] init];
  83 + int node = [self nodeCountOfTag:@"img"];
  84 + for (int i = 0; i < node; i++) {
  85 + NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('img')[%d].src", i];
  86 +// NSString *img = [self evaluateJavaScript:jsString completionHandler:nil];
  87 + [self evaluateJavaScript:jsString completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  88 + NSLog(@"value: %@ error: %@", response, error);
  89 + [arrImgURL addObject:response];
  90 + }];
  91 +// [arrImgURL addObject:img];
  92 + }
  93 + return arrImgURL;
  94 +}
  95 +
  96 +/// 获取当前页面所有点击链接
  97 +- (NSArray *)getOnClicks {
  98 + __block NSMutableArray *arrOnClicks = [[NSMutableArray alloc] init];
  99 + int node = [self nodeCountOfTag:@"a"];
  100 + for (int i = 0; i < node; i++) {
  101 + NSString *jsString = [NSString stringWithFormat:@"document.getElementsByTagName('a')[%d].getAttribute('onclick')", i];
  102 +// NSString *clickString = [self evaluateJavaScript:jsString completionHandler:nil];
  103 + [self evaluateJavaScript:jsString completionHandler:^(id _Nullable response, NSError * _Nullable error) {
  104 + NSLog(@"value: %@ error: %@", response, error);
  105 + [arrOnClicks addObject:response];
  106 + }];
  107 +// [arrOnClicks addObject:clickString];
  108 + }
  109 + return arrOnClicks;
  110 +}
  111 +
  112 +/// 改变背景颜色
  113 +- (void)setBackgroundColor:(UIColor *)color {
  114 + NSString * jsString = [NSString stringWithFormat:@"document.body.style.backgroundColor = '%@'",[color webColorString]];
  115 + [self evaluateJavaScript:jsString completionHandler:nil];
  116 +}
  117 +
  118 +/// 为所有图片添加点击事件(网页中有些图片添加无效)
  119 +- (void)addClickEventOnImg {
  120 + int node = [self nodeCountOfTag:@"img"];
  121 + for (int i = 0; i < node; i++) {
  122 + //利用重定向获取img.src,为区分,给url添加'img:'前缀
  123 + NSString *jsString = [NSString stringWithFormat:
  124 + @"document.getElementsByTagName('img')[%d].onclick = \
  125 + function() { document.location.href = 'img:' + this.src; }",i];
  126 + [self evaluateJavaScript:jsString completionHandler:nil];
  127 + }
  128 +}
  129 +
  130 +/// 改变指定标签的字体颜色
  131 +- (void)setFontColor:(UIColor *)color withTag:(NSString *)tagName {
  132 + NSString *jsString = [NSString stringWithFormat:
  133 + @"var nodes = document.getElementsByTagName('%@'); \
  134 + for(var i=0;i<nodes.length;i++){\
  135 + nodes[i].style.color = '%@';}", tagName, [color webColorString]];
  136 + [self evaluateJavaScript:jsString completionHandler:nil];
  137 +}
  138 +
  139 +/// 改变指定标签的字体大小
  140 +- (void)setFontSize:(int)size withTag:(NSString *)tagName {
  141 + NSString *jsString = [NSString stringWithFormat:
  142 + @"var nodes = document.getElementsByTagName('%@'); \
  143 + for(var i=0;i<nodes.length;i++){\
  144 + nodes[i].style.fontSize = '%dpx';}", tagName, size];
  145 + [self evaluateJavaScript:jsString completionHandler:nil];
  146 +}
  147 +
  148 +/// 设置网页没有拷贝粘贴
  149 +- (void)disableTouchCallout {
  150 + [self evaluateJavaScript:@"document.documentElement.style.webkitUserSelect='none';" completionHandler:nil];
  151 + [self evaluateJavaScript:@"document.documentElement.style.webkitTouchCallout='none';" completionHandler:nil];
  152 +}
  153 +
  154 +@end