Commit c4cbe6dde77e230e7b906c217b2d2ab62e222cf0

Authored by liushiyu
2 parents 4b35123b 5619c354
Showing 33 changed files with 195 additions and 482 deletions
metaCode.xcodeproj/project.pbxproj
@@ -695,7 +695,7 @@ @@ -695,7 +695,7 @@
695 1938BD152B3D6C6000390A34 /* Controller */ = { 695 1938BD152B3D6C6000390A34 /* Controller */ = {
696 isa = PBXGroup; 696 isa = PBXGroup;
697 children = ( 697 children = (
698 - 1938BD272B48009600390A34 /* AuthController */, 698 + 1938BD272B48009600390A34 /* HomeController */,
699 1938BD1D2B46791400390A34 /* PlayletHomePage */, 699 1938BD1D2B46791400390A34 /* PlayletHomePage */,
700 ); 700 );
701 path = Controller; 701 path = Controller;
@@ -753,13 +753,13 @@ @@ -753,13 +753,13 @@
753 path = PlayletHomePage; 753 path = PlayletHomePage;
754 sourceTree = "<group>"; 754 sourceTree = "<group>";
755 }; 755 };
756 - 1938BD272B48009600390A34 /* AuthController */ = { 756 + 1938BD272B48009600390A34 /* HomeController */ = {
757 isa = PBXGroup; 757 isa = PBXGroup;
758 children = ( 758 children = (
759 1938BD282B4800E500390A34 /* push相关 */, 759 1938BD282B4800E500390A34 /* push相关 */,
760 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */, 760 1938BD162B3D6C7F00390A34 /* CNLiveAuthViewController.swift */,
761 ); 761 );
762 - path = AuthController; 762 + path = HomeController;
763 sourceTree = "<group>"; 763 sourceTree = "<group>";
764 }; 764 };
765 1938BD282B4800E500390A34 /* push相关 */ = { 765 1938BD282B4800E500390A34 /* push相关 */ = {
@@ -2078,7 +2078,7 @@ @@ -2078,7 +2078,7 @@
2078 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; 2078 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements;
2079 CODE_SIGN_IDENTITY = "Apple Development"; 2079 CODE_SIGN_IDENTITY = "Apple Development";
2080 CODE_SIGN_STYLE = Automatic; 2080 CODE_SIGN_STYLE = Automatic;
2081 - CURRENT_PROJECT_VERSION = 1.0.6.24.02.04.18; 2081 + CURRENT_PROJECT_VERSION = 1.0.7.24.03.01.16;
2082 DEVELOPMENT_TEAM = 94X49GG3ZW; 2082 DEVELOPMENT_TEAM = 94X49GG3ZW;
2083 ENABLE_BITCODE = NO; 2083 ENABLE_BITCODE = NO;
2084 ENABLE_MODULE_VERIFIER = NO; 2084 ENABLE_MODULE_VERIFIER = NO;
@@ -2150,7 +2150,7 @@ @@ -2150,7 +2150,7 @@
2150 "$(inherited)", 2150 "$(inherited)",
2151 "@executable_path/Frameworks", 2151 "@executable_path/Frameworks",
2152 ); 2152 );
2153 - MARKETING_VERSION = 1.0.6; 2153 + MARKETING_VERSION = 1.0.7;
2154 OTHER_LDFLAGS = ( 2154 OTHER_LDFLAGS = (
2155 "$(inherited)", 2155 "$(inherited)",
2156 "-all_load", 2156 "-all_load",
@@ -2332,7 +2332,7 @@ @@ -2332,7 +2332,7 @@
2332 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements; 2332 CODE_SIGN_ENTITLEMENTS = metaCode/metaCode.entitlements;
2333 CODE_SIGN_IDENTITY = "Apple Development"; 2333 CODE_SIGN_IDENTITY = "Apple Development";
2334 CODE_SIGN_STYLE = Automatic; 2334 CODE_SIGN_STYLE = Automatic;
2335 - CURRENT_PROJECT_VERSION = 1.0.6.24.02.04.18; 2335 + CURRENT_PROJECT_VERSION = 1.0.7.24.03.01.16;
2336 DEVELOPMENT_TEAM = 94X49GG3ZW; 2336 DEVELOPMENT_TEAM = 94X49GG3ZW;
2337 ENABLE_BITCODE = NO; 2337 ENABLE_BITCODE = NO;
2338 ENABLE_MODULE_VERIFIER = NO; 2338 ENABLE_MODULE_VERIFIER = NO;
@@ -2404,7 +2404,7 @@ @@ -2404,7 +2404,7 @@
2404 "$(inherited)", 2404 "$(inherited)",
2405 "@executable_path/Frameworks", 2405 "@executable_path/Frameworks",
2406 ); 2406 );
2407 - MARKETING_VERSION = 1.0.6; 2407 + MARKETING_VERSION = 1.0.7;
2408 OTHER_LDFLAGS = ( 2408 OTHER_LDFLAGS = (
2409 "$(inherited)", 2409 "$(inherited)",
2410 "-all_load", 2410 "-all_load",
metaCode/Classes/Common/Util/CNLiveCommonQiniuTool.swift
@@ -90,7 +90,7 @@ class UploadManager: NSObject { @@ -90,7 +90,7 @@ class UploadManager: NSObject {
90 /// - resultBlock: 结果 90 /// - resultBlock: 结果
91 static private func uploadData(madiaData: NSData, key: String, progress: ProgressBlcok?, success: SuccessBlock?) { 91 static private func uploadData(madiaData: NSData, key: String, progress: ProgressBlcok?, success: SuccessBlock?) {
92 let param = NSMutableDictionary() 92 let param = NSMutableDictionary()
93 - param.setValue(APPId, forKey: "appId") 93 + param.setValue(CNLiveMCEnvironmentManager.shared.appId, forKey: "appId")
94 param.setValue("POST", forKey: "verb") 94 param.setValue("POST", forKey: "verb")
95 param.setValue("2", forKey: "storageType") 95 param.setValue("2", forKey: "storageType")
96 param.setValue(kBucketName_QN, forKey: "bucket") 96 param.setValue(kBucketName_QN, forKey: "bucket")
@@ -101,7 +101,7 @@ class UploadManager: NSObject { @@ -101,7 +101,7 @@ class UploadManager: NSObject {
101 CNLiveNetworking.setupShowResult(true) 101 CNLiveNetworking.setupShowResult(true)
102 CNLiveNetworking.setAllowRequestDefaultArgument(true) 102 CNLiveNetworking.setAllowRequestDefaultArgument(true)
103 CNLiveNetworking.setupShowDataResult(false) 103 CNLiveNetworking.setupShowDataResult(false)
104 - CNLiveNetworking.setupSignRequestKey(APPKey)//APPKey_wjj APPKey 104 + CNLiveNetworking.setupSignRequestKey(CNLiveMCEnvironmentManager.shared.appKey)//APPKey_wjj APPKey
105 105
106 CNLiveNetworking.requestNetwork(with: .POST, urlString: "\(CNLiveMCEnvironmentManager.shared.img_token_url)/vod_epg/getUploadAuthForApp", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in 106 CNLiveNetworking.requestNetwork(with: .POST, urlString: "\(CNLiveMCEnvironmentManager.shared.img_token_url)/vod_epg/getUploadAuthForApp", param: param as! [String : String], cacheType: .networkOnly) { task, result, error in
107 hiddenLoading() 107 hiddenLoading()
metaCode/Classes/Main/HomePage/Controller/AuthMainController/CNMetaCodeHomePageController.swift
@@ -17,7 +17,7 @@ let Height: CGFloat = UIScreen.main.bounds.size.height @@ -17,7 +17,7 @@ let Height: CGFloat = UIScreen.main.bounds.size.height
17 let LeftGap: CGFloat = UIScreen.main.bounds.size.width <= 375 ? 23 : 40 17 let LeftGap: CGFloat = UIScreen.main.bounds.size.width <= 375 ? 23 : 40
18 18
19 ///主窗口宽度 19 ///主窗口宽度
20 -let MainViewW: CGFloat = Width-LeftGap*2//Width-50 20 +let MainViewW: CGFloat = Width-LeftGap*2
21 ///下滑页底部工具条高度 21 ///下滑页底部工具条高度
22 let DownSlideBottomViewHeight: CGFloat = 74 22 let DownSlideBottomViewHeight: CGFloat = 74
23 23
@@ -26,14 +26,6 @@ let CNKeyIsFirstAppearUpSlideHomeGuide: String = &quot;isFirstAppearUpSlideHomeGuideK @@ -26,14 +26,6 @@ let CNKeyIsFirstAppearUpSlideHomeGuide: String = &quot;isFirstAppearUpSlideHomeGuideK
26 ///存储是否第一次显示首页下滑引导 26 ///存储是否第一次显示首页下滑引导
27 let CNKeyIsFirstAppearDownSlideHomeGuide: String = "isFirstAppearDownSlideHomeGuideKey" 27 let CNKeyIsFirstAppearDownSlideHomeGuide: String = "isFirstAppearDownSlideHomeGuideKey"
28 28
29 -/////用户身份认证状态  
30 -//enum UserIdentityStatus {  
31 -// ///未认证  
32 -// case notCertified  
33 -// ///已经认证  
34 -// case haveBeenCertified  
35 -//}  
36 -  
37 ///数据状态 29 ///数据状态
38 enum NetAPIStatus { 30 enum NetAPIStatus {
39 ///接口成功 31 ///接口成功
@@ -65,8 +57,6 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -65,8 +57,6 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
65 ///tabBar 的Y坐标位置 57 ///tabBar 的Y坐标位置
66 private var tabBarY:CGFloat = 0.0 58 private var tabBarY:CGFloat = 0.0
67 59
68 - ///用户身份认证状态  
69 -// private var identityStatus: UserIdentityStatus = .notCertified  
70 ///接口状态 60 ///接口状态
71 private var NetApiStatus: NetAPIStatus = .apiError 61 private var NetApiStatus: NetAPIStatus = .apiError
72 ///接口状态 62 ///接口状态
@@ -127,51 +117,51 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -127,51 +117,51 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
127 return errorFreshButton 117 return errorFreshButton
128 }() 118 }()
129 119
130 - ///上滑引导View  
131 - lazy var upSlideGuideView:CNHomePageGuideView = {  
132 - let upSlideGuideView = CNHomePageGuideView.init(frame: UIScreen.main.bounds)  
133 - upSlideGuideView.setBottomText(text: "向上滑动")  
134 - upSlideGuideView.skipAction = {  
135 - [weak self] in  
136 - self?.upSlideGuideView.removeFromSuperview()  
137 - self?.upSlideGifView.removeFromSuperview()  
138 - UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearUpSlideHomeGuide)  
139 - UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)  
140 - self?.pageFlowView.scrollView.isScrollEnabled = true  
141 - }  
142 - return upSlideGuideView  
143 - }()  
144 - ///上滑引导动图  
145 - lazy var upSlideGifView:UIImageView = {  
146 - let gif: UIImageView = UIImageView(frame: CGRect(x: 200, y: 30, width: 40, height: 80))  
147 - gif.loadGif(name: "slide_up")  
148 - gif.center = self.view.center  
149 - gif.contentMode = .scaleAspectFill  
150 -  
151 - return gif  
152 - }()  
153 -  
154 - ///下滑引导View  
155 - lazy var downSlideGuideView:CNHomePageGuideView = {  
156 - let downSlideGuideView = CNHomePageGuideView.init(frame: UIScreen.main.bounds)  
157 - downSlideGuideView.setBottomText(text: "向下滑动")  
158 - downSlideGuideView.skipAction = {  
159 - [weak self ] in  
160 - self?.downSlideGuideView.removeFromSuperview()  
161 - self?.downSlideGifView.removeFromSuperview()  
162 - UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)  
163 - self?.pageFlowView.scrollView.isScrollEnabled = true  
164 - }  
165 - return downSlideGuideView  
166 - }()  
167 - ///下滑引导动图  
168 - lazy var downSlideGifView:UIImageView = {  
169 - let gif: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 80))  
170 - gif.center = self.view.center  
171 - gif.loadGif(name: "slide_down")  
172 - gif.contentMode = .scaleAspectFill  
173 - return gif  
174 - }() 120 +// ///上滑引导View
  121 +// lazy var upSlideGuideView:CNHomePageGuideView = {
  122 +// let upSlideGuideView = CNHomePageGuideView.init(frame: UIScreen.main.bounds)
  123 +// upSlideGuideView.setBottomText(text: "向上滑动")
  124 +// upSlideGuideView.skipAction = {
  125 +// [weak self] in
  126 +// self?.upSlideGuideView.removeFromSuperview()
  127 +// self?.upSlideGifView.removeFromSuperview()
  128 +// UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearUpSlideHomeGuide)
  129 +// UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)
  130 +// self?.pageFlowView.scrollView.isScrollEnabled = true
  131 +// }
  132 +// return upSlideGuideView
  133 +// }()
  134 +// ///上滑引导动图
  135 +// lazy var upSlideGifView:UIImageView = {
  136 +// let gif: UIImageView = UIImageView(frame: CGRect(x: 200, y: 30, width: 40, height: 80))
  137 +// gif.loadGif(name: "slide_up")
  138 +// gif.center = self.view.center
  139 +// gif.contentMode = .scaleAspectFill
  140 +//
  141 +// return gif
  142 +// }()
  143 +//
  144 +// ///下滑引导View
  145 +// lazy var downSlideGuideView:CNHomePageGuideView = {
  146 +// let downSlideGuideView = CNHomePageGuideView.init(frame: UIScreen.main.bounds)
  147 +// downSlideGuideView.setBottomText(text: "向下滑动")
  148 +// downSlideGuideView.skipAction = {
  149 +// [weak self ] in
  150 +// self?.downSlideGuideView.removeFromSuperview()
  151 +// self?.downSlideGifView.removeFromSuperview()
  152 +// UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)
  153 +// self?.pageFlowView.scrollView.isScrollEnabled = true
  154 +// }
  155 +// return downSlideGuideView
  156 +// }()
  157 +// ///下滑引导动图
  158 +// lazy var downSlideGifView:UIImageView = {
  159 +// let gif: UIImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 40, height: 80))
  160 +// gif.center = self.view.center
  161 +// gif.loadGif(name: "slide_down")
  162 +// gif.contentMode = .scaleAspectFill
  163 +// return gif
  164 +// }()
175 165
176 ///左右滑动分页view 166 ///左右滑动分页view
177 lazy var pageFlowView: NewPagedFlowView = { 167 lazy var pageFlowView: NewPagedFlowView = {
@@ -266,14 +256,6 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -266,14 +256,6 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
266 256
267 self.makeConstraints() 257 self.makeConstraints()
268 258
269 -// switch self.identityStatus{  
270 -//  
271 -// case .notCertified:  
272 -// self.view.addSubview(self.addCertificationView)  
273 -// case .haveBeenCertified:  
274 -// self.addPageView()  
275 -// }  
276 -  
277 } 259 }
278 260
279 // MARK: -事件 261 // MARK: -事件
@@ -355,32 +337,31 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -355,32 +337,31 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
355 self.view.addSubview(self.pageFlowView) 337 self.view.addSubview(self.pageFlowView)
356 self.pageFlowView.reloadData() 338 self.pageFlowView.reloadData()
357 339
358 - //首选判断是否显示了上滑引导  
359 - let isFirstAppearUpSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearUpSlideHomeGuide)  
360 340
361 - if let tempGuide = isFirstAppearUpSlideHomeGuide{  
362 - //已经显示过上滑引导  
363 -  
364 - //判断是否显示过下滑引导  
365 - let isFirstAppearDownSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearDownSlideHomeGuide)  
366 - if let tempDownGuide = isFirstAppearDownSlideHomeGuide{  
367 -  
368 - }else{  
369 - //没有显示下滑引导  
370 - self.pageFlowView.scrollView.isScrollEnabled = false  
371 - UIApplication.shared.keyWindow!.addSubview(self.downSlideGuideView)  
372 - UIApplication.shared.keyWindow!.addSubview(self.downSlideGifView)  
373 -// self.tabBarController?.tabBar.isHidden = true  
374 - }  
375 -  
376 - }else{  
377 - //没显示过上滑引导  
378 - self.pageFlowView.scrollView.isScrollEnabled = false  
379 -  
380 - UIApplication.shared.keyWindow!.addSubview(self.upSlideGuideView)  
381 - UIApplication.shared.keyWindow!.addSubview(self.upSlideGifView)  
382 -// self.tabBarController?.tabBar.isHidden = true  
383 - } 341 +// //首选判断是否显示了上滑引导
  342 +// let isFirstAppearUpSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearUpSlideHomeGuide)
  343 +//
  344 +// if let tempGuide = isFirstAppearUpSlideHomeGuide{
  345 +// //已经显示过上滑引导
  346 +//
  347 +// //判断是否显示过下滑引导
  348 +// let isFirstAppearDownSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearDownSlideHomeGuide)
  349 +// if let tempDownGuide = isFirstAppearDownSlideHomeGuide{
  350 +//
  351 +// }else{
  352 +// //没有显示下滑引导
  353 +// self.pageFlowView.scrollView.isScrollEnabled = false
  354 +// UIApplication.shared.keyWindow!.addSubview(self.downSlideGuideView)
  355 +// UIApplication.shared.keyWindow!.addSubview(self.downSlideGifView)
  356 +// }
  357 +//
  358 +// }else{
  359 +// //没显示过上滑引导
  360 +// self.pageFlowView.scrollView.isScrollEnabled = false
  361 +//
  362 +// UIApplication.shared.keyWindow!.addSubview(self.upSlideGuideView)
  363 +// UIApplication.shared.keyWindow!.addSubview(self.upSlideGifView)
  364 +// }
384 } 365 }
385 366
386 // MARK: -左滑手势代理 367 // MARK: -左滑手势代理
@@ -501,23 +482,23 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -501,23 +482,23 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
501 func customIndexViewWillBeiginScroll(scrollView: UIScrollView) { 482 func customIndexViewWillBeiginScroll(scrollView: UIScrollView) {
502 self.view.height = KSreenHeight 483 self.view.height = KSreenHeight
503 484
504 - /**开始拖拽移除引导View**/  
505 -  
506 - //移除上滑引导  
507 - if(self.upSlideGuideView.superview != nil){  
508 - self.upSlideGuideView.removeFromSuperview()  
509 - self.upSlideGifView.removeFromSuperview()  
510 - UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearUpSlideHomeGuide)  
511 - }  
512 -  
513 - //移除下滑引导  
514 - if (self.downSlideGuideView.superview != nil) {  
515 -  
516 - self.downSlideGuideView.removeFromSuperview()  
517 - self.downSlideGifView.removeFromSuperview()  
518 - UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)  
519 - self.pageFlowView.scrollView.isScrollEnabled = true  
520 - } 485 +// /**开始拖拽移除引导View**/
  486 +//
  487 +// //移除上滑引导
  488 +// if(self.upSlideGuideView.superview != nil){
  489 +// self.upSlideGuideView.removeFromSuperview()
  490 +// self.upSlideGifView.removeFromSuperview()
  491 +// UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearUpSlideHomeGuide)
  492 +// }
  493 +//
  494 +// //移除下滑引导
  495 +// if (self.downSlideGuideView.superview != nil) {
  496 +//
  497 +// self.downSlideGuideView.removeFromSuperview()
  498 +// self.downSlideGifView.removeFromSuperview()
  499 +// UserDefaults.standard.set("flase", forKey: CNKeyIsFirstAppearDownSlideHomeGuide)
  500 +// self.pageFlowView.scrollView.isScrollEnabled = true
  501 +// }
521 502
522 } 503 }
523 func customIndexViewDidScroll(scrollView: UIScrollView) { 504 func customIndexViewDidScroll(scrollView: UIScrollView) {
@@ -566,16 +547,16 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel @@ -566,16 +547,16 @@ class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDel
566 if scrollView.contentOffset.y == KSreenHeight { 547 if scrollView.contentOffset.y == KSreenHeight {
567 self.view.height = self.tabBarY 548 self.view.height = self.tabBarY
568 549
569 - //判断是否显示过下滑引导  
570 - let isFirstAppearDownSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearDownSlideHomeGuide)  
571 - if let tempDownGuide = isFirstAppearDownSlideHomeGuide{  
572 - print("不该进来")  
573 - }else{  
574 - //没有显示下滑引导  
575 - UIApplication.shared.keyWindow!.addSubview(self.downSlideGuideView)  
576 - UIApplication.shared.keyWindow!.addSubview(self.downSlideGifView)  
577 - self.pageFlowView.scrollView.isScrollEnabled = false  
578 - } 550 +// //判断是否显示过下滑引导
  551 +// let isFirstAppearDownSlideHomeGuide:Any? = UserDefaults.standard.object(forKey: CNKeyIsFirstAppearDownSlideHomeGuide)
  552 +// if let tempDownGuide = isFirstAppearDownSlideHomeGuide{
  553 +// print("不该进来")
  554 +// }else{
  555 +// //没有显示下滑引导
  556 +// UIApplication.shared.keyWindow!.addSubview(self.downSlideGuideView)
  557 +// UIApplication.shared.keyWindow!.addSubview(self.downSlideGifView)
  558 +// self.pageFlowView.scrollView.isScrollEnabled = false
  559 +// }
579 } 560 }
580 } 561 }
581 562
metaCode/Classes/Main/HomePage/Controller/DownSlideController/CNUpSlideViewController.swift
@@ -75,7 +75,6 @@ class CNUpSlideViewController: CNLiveBaseViewController,UITableViewDelegate,UITa @@ -75,7 +75,6 @@ class CNUpSlideViewController: CNLiveBaseViewController,UITableViewDelegate,UITa
75 tableView.delegate = self 75 tableView.delegate = self
76 tableView.separatorStyle = .none 76 tableView.separatorStyle = .none
77 tableView.bounces = false 77 tableView.bounces = false
78 -// tableView.register(CNDownSlideSingleCourseCell.self, forCellReuseIdentifier: kCNLiveDownSlideCellIdentifier)  
79 tableView.register(CNLiveDownSlideRecommendCell.self, forCellReuseIdentifier: kCNLiveDownSlideRecommendCellIdentifier) 78 tableView.register(CNLiveDownSlideRecommendCell.self, forCellReuseIdentifier: kCNLiveDownSlideRecommendCellIdentifier)
80 tableView.register(CNLiveDownSlideTodayRecommendCell.self, forCellReuseIdentifier: kCNLiveDownSlideTodayRecommendCellIdentifier) 79 tableView.register(CNLiveDownSlideTodayRecommendCell.self, forCellReuseIdentifier: kCNLiveDownSlideTodayRecommendCellIdentifier)
81 tableView.register(CNDownSlideSingleCourseCell.self, forCellReuseIdentifier: kCNLiveDownSlideAllCourseCellIdentifier) 80 tableView.register(CNDownSlideSingleCourseCell.self, forCellReuseIdentifier: kCNLiveDownSlideAllCourseCellIdentifier)
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebView.swift
@@ -11,6 +11,10 @@ import WebViewJavascriptBridge @@ -11,6 +11,10 @@ import WebViewJavascriptBridge
11 import CNLiveShareToolKit 11 import CNLiveShareToolKit
12 import CommonCrypto 12 import CommonCrypto
13 import CNLiveBusinessTools 13 import CNLiveBusinessTools
  14 +import SKPhotoBrowser
  15 +
  16 +//更新Web控制器导航回调
  17 +typealias cnWebControllerUpdateNavBlock = (_ isFinish:Bool , _ titleName:String ,_ isDecidePolicy:Bool , _ urlStr:String)->Void
14 18
15 class CNWebView:UIView,WKNavigationDelegate{ 19 class CNWebView:UIView,WKNavigationDelegate{
16 20
@@ -21,11 +25,15 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -21,11 +25,15 @@ class CNWebView:UIView,WKNavigationDelegate{
21 return cnWebView 25 return cnWebView
22 }() 26 }()
23 27
24 -  
25 var webUrl:URL?//初始URL 28 var webUrl:URL?//初始URL
26 var currentUrl:String = ""//当前网页的url 29 var currentUrl:String = ""//当前网页的url
27 var bridge:WKWebViewJavascriptBridge? 30 var bridge:WKWebViewJavascriptBridge?
28 31
  32 + //CNWebController
  33 + var isCNWebController:Bool = false//是否网页控制器
  34 + var webControllerUpdateNavBlock:cnWebControllerUpdateNavBlock?
  35 +
  36 +
29 init(frame: CGRect, configuration: WKWebViewConfiguration ,url:URL?) { 37 init(frame: CGRect, configuration: WKWebViewConfiguration ,url:URL?) {
30 super.init(frame: frame) 38 super.init(frame: frame)
31 self.configuration = configuration 39 self.configuration = configuration
@@ -56,8 +64,9 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -56,8 +64,9 @@ class CNWebView:UIView,WKNavigationDelegate{
56 self.bridge = WKWebViewJavascriptBridge(for: self.cnWebView) 64 self.bridge = WKWebViewJavascriptBridge(for: self.cnWebView)
57 self.bridge?.setWebViewDelegate(self) 65 self.bridge?.setWebViewDelegate(self)
58 } 66 }
59 - //h5拉起原生分享 js call oc 67 + //h5拉起原生
60 func configBridgeRegister() -> Void { 68 func configBridgeRegister() -> Void {
  69 + //h5拉起原生分享 js call oc
61 self.bridge?.registerHandler("wjjylzgVideoShare", handler: { data, responseCallback in 70 self.bridge?.registerHandler("wjjylzgVideoShare", handler: { data, responseCallback in
62 // print("js call oc\(data)") 71 // print("js call oc\(data)")
63 let dic = data as! Dictionary<String, String> 72 let dic = data as! Dictionary<String, String>
@@ -70,6 +79,33 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -70,6 +79,33 @@ class CNWebView:UIView,WKNavigationDelegate{
70 } 79 }
71 80
72 }) 81 })
  82 + // 网页内容图片预览
  83 + self.bridge?.registerHandler("wjjPreviewImage", handler: { data, responseCallback in
  84 + // print("js call oc\(data)")
  85 + var images = [SKPhoto]()
  86 + let dic = data as! Dictionary<String, Any>
  87 + let index = (dic["index"] as! NSString).integerValue
  88 + let imageArray = dic["imgArr"] as! NSArray
  89 + var imgArray = NSMutableArray()
  90 + for dict in imageArray {
  91 + var imgUrl = ""
  92 + if let dictemp = dict as? String{
  93 + imgArray.add(dictemp)
  94 + imgUrl = dictemp
  95 + }else if let dictemp = dict as? Dictionary<String, Any>{
  96 + imgArray.add(dictemp["src"] ?? "")
  97 + imgUrl = dictemp["src"] as! String
  98 + }
  99 + let photo = SKPhoto.photoWithImageURL(imgUrl)
  100 + photo.shouldCachePhotoURLImage = false
  101 + photo.photoURL = imgUrl
  102 + images.append(photo)
  103 + }
  104 + let browser = SKPhotoBrowser(photos: images)
  105 + browser.initializePageIndex(index)
  106 + currentViewController()?.present(browser, animated: true)
  107 +
  108 + })
73 } 109 }
74 110
75 required init?(coder: NSCoder) { 111 required init?(coder: NSCoder) {
@@ -143,7 +179,7 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -143,7 +179,7 @@ class CNWebView:UIView,WKNavigationDelegate{
143 // 页面加载完成之后调用 179 // 页面加载完成之后调用
144 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { 180 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
145 print("didFinish") 181 print("didFinish")
146 -// titleName = webView.title! 182 + self.webControllerUpdateNavBlock?(true, webView.title!, false , "")
147 } 183 }
148 // 页面加载失败时调用 184 // 页面加载失败时调用
149 func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) { 185 func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {
@@ -160,8 +196,6 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -160,8 +196,6 @@ class CNWebView:UIView,WKNavigationDelegate{
160 196
161 //允许跳转 197 //允许跳转
162 decisionHandler(.allow) 198 decisionHandler(.allow)
163 - //不允许跳转  
164 - // decisionHandler(.cancel)  
165 } 199 }
166 // 在发送请求之前,决定是否跳转 -> 默认允许 200 // 在发送请求之前,决定是否跳转 -> 默认允许
167 func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { 201 func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {
@@ -170,14 +204,8 @@ class CNWebView:UIView,WKNavigationDelegate{ @@ -170,14 +204,8 @@ class CNWebView:UIView,WKNavigationDelegate{
170 var urlStr = (navigationAction.request.url?.absoluteString)! 204 var urlStr = (navigationAction.request.url?.absoluteString)!
171 205
172 if navigationAction.request.url?.host == WjjH5 { 206 if navigationAction.request.url?.host == WjjH5 {
  207 + self.webControllerUpdateNavBlock?(false, "", true , urlStr)
173 208
174 -// if urlStr.contains("&isWjjReport=true") || urlStr.contains("?isWjjReport=true"){  
175 -// self.rightNavBtns = [self.moreNavBtn]  
176 -// self.moreNavBtn.isHidden = false  
177 -// }else{  
178 -// self.moreNavBtn.isHidden = true  
179 -// }  
180 -  
181 urlStr = self.checkURLWithStr(urlStr: urlStr) 209 urlStr = self.checkURLWithStr(urlStr: urlStr)
182 self.currentUrl = urlStr 210 self.currentUrl = urlStr
183 } 211 }
metaCode/Classes/Main/HomePage/Controller/WebController/CNWebViewController.swift
@@ -11,6 +11,7 @@ import WebViewJavascriptBridge @@ -11,6 +11,7 @@ import WebViewJavascriptBridge
11 import CNLiveShareToolKit 11 import CNLiveShareToolKit
12 import CommonCrypto 12 import CommonCrypto
13 import CNLiveBusinessTools 13 import CNLiveBusinessTools
  14 +import SKPhotoBrowser
14 15
15 16
16 let WjjH5 = "wjjh5.cnlive.com" 17 let WjjH5 = "wjjh5.cnlive.com"
@@ -21,7 +22,7 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -21,7 +22,7 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
21 var bridge:WKWebViewJavascriptBridge? 22 var bridge:WKWebViewJavascriptBridge?
22 var currentUrl:String = ""//当前网页的url 23 var currentUrl:String = ""//当前网页的url
23 24
24 - lazy var webView: WKWebView = { 25 + lazy var webView: CNWebView = {
25 let configuration = WKWebViewConfiguration() 26 let configuration = WKWebViewConfiguration()
26 configuration.allowsInlineMediaPlayback = true 27 configuration.allowsInlineMediaPlayback = true
27 let preferences = WKPreferences() 28 let preferences = WKPreferences()
@@ -30,11 +31,10 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -30,11 +31,10 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
30 configuration.preferences.minimumFontSize = 0.0 31 configuration.preferences.minimumFontSize = 0.0
31 configuration.preferences = preferences 32 configuration.preferences = preferences
32 configuration.userContentController = WKUserContentController() 33 configuration.userContentController = WKUserContentController()
33 -  
34 - let webView = WKWebView(frame: CGRectMake(0, 0, Width, Height), configuration: configuration)  
35 - webView.scrollView.showsVerticalScrollIndicator = false  
36 - webView.scrollView.showsHorizontalScrollIndicator = false  
37 -// webView.navigationDelegate = self 34 + let webView = CNWebView(frame: CGRectMake(0, 0, Width, Height), configuration: configuration, url: _url)
  35 + webView.cnWebView.scrollView.showsVerticalScrollIndicator = false
  36 + webView.cnWebView.scrollView.showsHorizontalScrollIndicator = false
  37 + webView.isCNWebController = true
38 return webView 38 return webView
39 }() 39 }()
40 40
@@ -62,58 +62,29 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -62,58 +62,29 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
62 super.viewDidLoad() 62 super.viewDidLoad()
63 navigationBarHidden = false 63 navigationBarHidden = false
64 self.view.addSubview(self.webView) 64 self.view.addSubview(self.webView)
  65 + self.webView.webControllerUpdateNavBlock = { isFinish , title,isDecidePolicy ,urlStr in
  66 + if isFinish{
  67 + self.titleName = title
  68 + }else if isDecidePolicy{
  69 + if urlStr.contains("&isWjjReport=true") || urlStr.contains("?isWjjReport=true"){
  70 + self.rightNavBtns = [self.moreNavBtn]
  71 + self.moreNavBtn.isHidden = false
  72 + }else{
  73 + self.moreNavBtn.isHidden = true
  74 + }
  75 + }
  76 + }
65 webView.snp.makeConstraints { make in 77 webView.snp.makeConstraints { make in
66 make.top.equalTo(get_system_nav_height()) 78 make.top.equalTo(get_system_nav_height())
67 make.left.right.bottom.equalToSuperview() 79 make.left.right.bottom.equalToSuperview()
68 } 80 }
69 - webView.evaluateJavaScript("navigator.userAgent") { [self] result, error in  
70 - let userAgent = result as! String  
71 - if error == nil && userAgent.count > 0 {  
72 - if !userAgent.contains(CNLiveMCEnvironmentManager.shared.base_web_UA) {  
73 - let newUserAgent = userAgent + CNLiveMCEnvironmentManager.shared.base_web_UA  
74 - webView.customUserAgent = newUserAgent  
75 -  
76 - if (_url != nil){  
77 - let urlStr = self.checkURLWithStr(urlStr: _url!.absoluteString)  
78 - self.currentUrl = urlStr  
79 -  
80 - webView.load(URLRequest.init(url:URL(string: urlStr)!))  
81 - }  
82 - self.configBridge()  
83 - self.configBridgeRegister()  
84 - }  
85 - }  
86 - }  
87 - }  
88 -  
89 - func configBridge(){  
90 - WKWebViewJavascriptBridge.enableLogging()  
91 - self.bridge = WKWebViewJavascriptBridge(for: self.webView)  
92 - self.bridge?.setWebViewDelegate(self)  
93 - }  
94 - //h5拉起原生分享 js call oc  
95 - func configBridgeRegister() -> Void {  
96 - self.bridge?.registerHandler("wjjylzgVideoShare", handler: { data, responseCallback in  
97 -// print("js call oc\(data)")  
98 - let dic = data as! Dictionary<String, String>  
99 - CNLiveShareManager.showShareViewWithParam(forShareTitle: dic["title"], shareUrl: dic["shareUrl"], shareDesc: dic["subTitle"], shareImage: dic["cover"], screenFull: false, hiddenWjj: true, hiddenQQ: false, hiddenWB: true, hiddenLifeCircle: true, hiddenWechatCircle: false, hiddenWechat: false, hiddenSafari: true, formVC: self, topImage: [], topTitles: [], platformType: .all) { title in  
100 -  
101 - } completerBlock: { resultType, platformType, typeString in  
102 - if resultType == .succ{  
103 -  
104 - }  
105 - }  
106 -  
107 - })  
108 } 81 }
109 82
110 //点击...分享获取h5参数oc call js 83 //点击...分享获取h5参数oc call js
111 func configBridgeCallHander() -> Void { 84 func configBridgeCallHander() -> Void {
112 - self.bridge?.callHandler("wjjClientGetShareParaFromJS", data: ["":""], responseCallback: { data in 85 + self.webView.bridge?.callHandler("wjjClientGetShareParaFromJS", data: ["":""], responseCallback: { data in
113 // print("js call oc\(data)") 86 // print("js call oc\(data)")
114 let dic = data as! Dictionary<String, String> 87 let dic = data as! Dictionary<String, String>
115 -// let shareType = dic["shareType"]  
116 -// let contentIdStr = dic["activityId"]  
117 let title = dic["title"] 88 let title = dic["title"]
118 let desc = dic["desc"] 89 let desc = dic["desc"]
119 let shareImg = dic["shareImg"] 90 let shareImg = dic["shareImg"]
@@ -139,143 +110,15 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{ @@ -139,143 +110,15 @@ class CNWebViewController:CNLiveBaseViewController ,WKNavigationDelegate{
139 }) 110 })
140 } 111 }
141 112
142 - func checkURLWithStr(urlStr:String) -> String{  
143 - if URL(string: urlStr)?.host != WjjH5 {  
144 - return urlStr//不是wjjh5不作处理  
145 - }  
146 - var str = urlStr  
147 - let date = Date()  
148 - let formatter = DateFormatter()  
149 - formatter.dateFormat = "yyyyMMdd"  
150 - let dateStr = formatter.string(from: date)  
151 - let sidStr = String(format: "%@%@", UserInfoManager.shared.userInfo.uid,dateStr)  
152 - let signStr = sidStr.crypt(operation: CCOperation(kCCEncrypt), key: CNLiveMCEnvironmentManager.shared.appKey)  
153 - //看是 appKey还是appKeywjj  
154 - let sidSignStr = (signStr ?? "").isEmpty ? "" : signStr  
155 - let sourceArray = str.components(separatedBy: "?")  
156 - let buildVersion = Bundle.main.infoDictionary!["CFBundleVersion"] as! String  
157 - let appVersion = Bundle.main.infoDictionary!["CFBundleShortVersionString"] as! String  
158 - let uuid = CNLiveBusinessTools.getUidForStat(Date())  
159 - if sourceArray.count == 1{  
160 - //是wjjh5且无参数  
161 - str = String(format: "%@?shareSid=%@&sid=%@&plat=i&ver=%@&version=%@&wjjFrom=apple&wjjUUID=%@&appId=%@&voteId=%@&wjjToken=%@", str,UserInfoManager.shared.userInfo.uid,UserInfoManager.shared.userInfo.uid,buildVersion,appVersion,uuid,CNLiveMCEnvironmentManager.shared.appId,sidSignStr!,UserInfoManager.shared.userInfo.token)  
162 - return str  
163 - }  
164 - //是wjjh5且有参数  
165 - let paraArr = NSMutableArray(array: ["shareSid=","sid=","plat=","ver=","version=","wjjFrom=","wjjUUID=","appId=","voteId=","wjjToken="])  
166 - let valueArr = NSMutableArray(array:[UserInfoManager.shared.userInfo.uid,UserInfoManager.shared.userInfo.uid,"i",buildVersion,appVersion,"apple",uuid,CNLiveMCEnvironmentManager.shared.appId,sidSignStr!,UserInfoManager.shared.userInfo.token])  
167 - var i = 0  
168 - for paraStr in paraArr{  
169 - let tempStr = paraStr as! String  
170 - let paramStr = "&".appending(tempStr)  
171 - let paramStr2 = "?".appending(tempStr)  
172 -  
173 - if str.contains(paramStr){  
174 - //包含则替换 &sid=  
175 - let lastStr = str.components(separatedBy: tempStr).last  
176 - let lastSeparatedStr = (lastStr?.components(separatedBy: "&").first)!  
177 - let oldStr = tempStr.appending(lastSeparatedStr)  
178 - let tempValueStr = tempStr.appending(valueArr[i] as! String)  
179 - str = str.replacingOccurrences(of: oldStr, with: tempValueStr)  
180 - }else if str.contains(paramStr2){  
181 - //包含则替换 &sid=  
182 - let lastStr = str.components(separatedBy: tempStr).last  
183 - let lastSeparatedStr = (lastStr?.components(separatedBy: "&").first)!  
184 - let oldStr = tempStr.appending(lastSeparatedStr)  
185 - let tempValueStr = tempStr.appending(valueArr[i] as! String)  
186 - str = str.replacingOccurrences(of: oldStr, with: tempValueStr)  
187 - }else{  
188 - //不包含则拼接  
189 - str = String(format: "%@&%@%@", str,tempStr,valueArr[i] as! String)  
190 - }  
191 - i = i + 1  
192 - }  
193 - return str  
194 - }  
195 -  
196 - // MARK: - BtnAction  
197 - // 内部链接右上角···分享 113 + // MARK: - 内部链接右上角···分享
198 @objc func moreNavBtnAction(){ 114 @objc func moreNavBtnAction(){
199 self.configBridgeCallHander() 115 self.configBridgeCallHander()
200 } 116 }
201 override func ClickBackBtn() { 117 override func ClickBackBtn() {
202 - if self.webView.canGoBack{  
203 - self.webView.goBack() 118 + if self.webView.cnWebView.canGoBack{
  119 + self.webView.cnWebView.goBack()
204 }else{ 120 }else{
205 super.ClickBackBtn() 121 super.ClickBackBtn()
206 } 122 }
207 } 123 }
208 -  
209 - // MARK: - WKWebViewDelegate  
210 - // 页面开始加载时调用  
211 - func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) {  
212 -// print("didStartProvisionalNavigation")  
213 - }  
214 - // 当内容开始返回时调用  
215 - func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {  
216 -// print("didCommit")  
217 - }  
218 -  
219 - // 页面加载完成之后调用  
220 - func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {  
221 -// print("didFinish")  
222 - titleName = webView.title!  
223 - }  
224 - // 页面加载失败时调用  
225 - func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) {  
226 -// print("didFailProvisionalNavigation")  
227 - }  
228 - // 接收到服务器跳转请求之后调用  
229 - func webView(_ webView: WKWebView, didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) {  
230 -// print("didReceiveServerRedirectForProvisionalNavigation")  
231 - }  
232 - // 在收到响应后,决定是否跳转 -> 默认允许  
233 - func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {  
234 -  
235 -// print("decidePolicyFornavigationResponse")  
236 -  
237 - //允许跳转  
238 - decisionHandler(.allow)  
239 - //不允许跳转  
240 - // decisionHandler(.cancel)  
241 - }  
242 - // 在发送请求之前,决定是否跳转 -> 默认允许  
243 - func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) {  
244 -// print("decidePolicyFornavigationAction")  
245 -  
246 - var urlStr = (navigationAction.request.url?.absoluteString)!  
247 -  
248 - if navigationAction.request.url?.host == WjjH5 {  
249 -  
250 - if urlStr.contains("&isWjjReport=true") || urlStr.contains("?isWjjReport=true"){  
251 - self.rightNavBtns = [self.moreNavBtn]  
252 - self.moreNavBtn.isHidden = false  
253 - }else{  
254 - self.moreNavBtn.isHidden = true  
255 - }  
256 -  
257 - urlStr = self.checkURLWithStr(urlStr: urlStr)  
258 - self.currentUrl = urlStr  
259 - }  
260 -  
261 - if navigationAction.navigationType == .other{  
262 - //跳转Appstore  
263 - let url = URL(string: "https://apps.apple.com/cn/app/%E7%BD%91%E5%AE%B6%E5%AE%B6%E5%95%86%E5%AE%B6%E7%89%88/id1337575497")  
264 - if url == navigationAction.request.url {  
265 - if UIApplication.shared.canOpenURL(url!) { UIApplication.shared.open(url!, options: [:], completionHandler: nil)  
266 - }  
267 - }  
268 - }else if navigationAction.navigationType == .linkActivated{  
269 -  
270 - //以后可判断h5地址 ,可跳转原生页面或网页  
271 - //暂时只跳h5  
272 - let webVC = CNWebViewController()  
273 - webVC.url = URL(string: urlStr)  
274 - navigationViewController().pushViewController(webVC, animated: pushAnimated)  
275 - decisionHandler(.cancel)  
276 - return  
277 -  
278 - }  
279 - decisionHandler(.allow)  
280 - }  
281 } 124 }
metaCode/Classes/Main/HomePage/View/VerticalViews/CNCustomIndexView.swift
@@ -131,20 +131,6 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -131,20 +131,6 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
131 131
132 } 132 }
133 133
134 -// private(set) var userInfo: UserInfoModel {  
135 -//  
136 -// set {  
137 -// _userInfo = newValue  
138 -// }  
139 -//  
140 -// get {  
141 -// if _userInfo != nil && (_userInfo?.uid.count)! > 0 {  
142 -// return _userInfo!  
143 -// }  
144 -// return UserInfoManager.readUserInfo()  
145 -// }  
146 -// }  
147 -  
148 // MARK: - 懒加载 134 // MARK: - 懒加载
149 135
150 ///颜色数据 136 ///颜色数据
@@ -269,12 +255,6 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange @@ -269,12 +255,6 @@ class CNCustomIndexView:PGIndexBannerSubiew, UIScrollViewDelegate, WJColorChange
269 self.baseScrollView.setContentOffset(CGPointMake(0, self.frame.size.height), animated: true) 255 self.baseScrollView.setContentOffset(CGPointMake(0, self.frame.size.height), animated: true)
270 } 256 }
271 257
272 -// func addCustomGestureRecognizer(){  
273 -// let singleTap: UITapGestureRecognizer = UITapGestureRecognizer.init(target: self, action: #selector(singleCellTapAction))  
274 -//  
275 -// self.addGestureRecognizer(singleTap)  
276 -// }  
277 -  
278 // MARK: - 设置前置视图容器 258 // MARK: - 设置前置视图容器
279 func isHiddenMainFrontContentView(isHidden:Bool){ 259 func isHiddenMainFrontContentView(isHidden:Bool){
280 self.mainView.isHiddenMainFrontContentView(isHidden: isHidden) 260 self.mainView.isHiddenMainFrontContentView(isHidden: isHidden)
metaCode/Classes/Main/HomePage/View/VerticalViews/DownSlide/CNDownSlideSingleCourseCell.swift
@@ -107,7 +107,16 @@ class CNDownSlideSingleCourseCell: UITableViewCell { @@ -107,7 +107,16 @@ class CNDownSlideSingleCourseCell: UITableViewCell {
107 bgBackView.layer.cornerRadius = 12 107 bgBackView.layer.cornerRadius = 12
108 bgBackView.backgroundColor = .white 108 bgBackView.backgroundColor = .white
109 109
110 - let titleLbl = UILabel(frame: CGRect(x: DownSlideRecommendLeftGap, y: DownSlideRecommendLeftGap, width: DownSlideSingleCourseW-DownSlideRecommendLeftGap*2, height: 30)) 110 + var titleTop:CGFloat = DownSlideRecommendLeftGap
  111 + if model.blockSubTitle?.count ?? 0 > 0{
  112 + let subtitleLbl = UILabel(frame: CGRect(x: DownSlideRecommendLeftGap, y: DownSlideRecommendLeftGap, width: DownSlideSingleCourseW-DownSlideRecommendLeftGap*2, height: 17))
  113 + subtitleLbl.text = model.blockSubTitle
  114 + subtitleLbl.font = Font_12
  115 + subtitleLbl.textColor = HexColor("#999999")
  116 + bgBackView.addSubview(subtitleLbl)
  117 + titleTop = DownSlideRecommendLeftGap+17+1
  118 + }
  119 + let titleLbl = UILabel(frame: CGRect(x: DownSlideRecommendLeftGap, y: titleTop, width: DownSlideSingleCourseW-DownSlideRecommendLeftGap*2, height: 30))
111 titleLbl.text = model.blockName ?? "全部课程" 120 titleLbl.text = model.blockName ?? "全部课程"
112 titleLbl.font = BoldFont_21 121 titleLbl.font = BoldFont_21
113 titleLbl.textColor = HexColor("#333333") 122 titleLbl.textColor = HexColor("#333333")
metaCode/Classes/Main/HomePage/View/VerticalViews/MainView/CNHomePageGuideView.swift
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 // metaCode 3 // metaCode
4 // 4 //
5 // Created by daojian on 2023/6/7. 5 // Created by daojian on 2023/6/7.
6 -// 首页引导 6 +// 认证-首页引导
7 7
8 import Foundation 8 import Foundation
9 9
metaCode/Classes/Main/HomePage/View/VerticalViews/MainView/CNIDCardView.swift
@@ -17,7 +17,7 @@ class CNIDCardView: UIView{ @@ -17,7 +17,7 @@ class CNIDCardView: UIView{
17 } 17 }
18 set{ 18 set{
19 _idModel = newValue 19 _idModel = newValue
20 - self.iDCardBGView.kf.setImage(with: URL(string: _idModel!.cardImg), placeholder: UIImage(named: "homePage_idCardBG")) 20 + self.iDCardBGView.kf.setImage(with: URL(string: _idModel!.cardImg))
21 if _idModel?.id == 9{ 21 if _idModel?.id == 9{
22 //电商 , 拼接数据 22 //电商 , 拼接数据
23 let nameArr = ["公司名称","认证时间","编号"] 23 let nameArr = ["公司名称","认证时间","编号"]
metaCode/Classes/Main/HomePage/View/VerticalViews/MainView/CNMainView.swift
@@ -512,14 +512,14 @@ class CNFrontMainView : UIView{ @@ -512,14 +512,14 @@ class CNFrontMainView : UIView{
512 //有企业认证显示提示lbl 512 //有企业认证显示提示lbl
513 if idModel!.enterpriseAuth{ 513 if idModel!.enterpriseAuth{
514 self.enterpriseTipsLabel.isHidden = false 514 self.enterpriseTipsLabel.isHidden = false
515 - self.enterpriseTipsLabel.textColor = HexColor(newValue!.backgroundColor) 515 + self.enterpriseTipsLabel.textColor = HexColor(newValue!.tipsColour)
516 }else{ 516 }else{
517 self.enterpriseTipsLabel.isHidden = true 517 self.enterpriseTipsLabel.isHidden = true
518 } 518 }
519 //有机构认证显示提示lbl 519 //有机构认证显示提示lbl
520 if idModel!.agencyAuth{ 520 if idModel!.agencyAuth{
521 self.agencyTipsLabel.isHidden = false 521 self.agencyTipsLabel.isHidden = false
522 - self.agencyTipsLabel.textColor = HexColor(newValue!.backgroundColor) 522 + self.agencyTipsLabel.textColor = HexColor(newValue!.tipsColour)
523 }else{ 523 }else{
524 self.agencyTipsLabel.isHidden = false 524 self.agencyTipsLabel.isHidden = false
525 } 525 }
@@ -833,7 +833,7 @@ class CNBackMainView : UIView{ @@ -833,7 +833,7 @@ class CNBackMainView : UIView{
833 lazy var imageView:UIImageView = { 833 lazy var imageView:UIImageView = {
834 834
835 let tempImageView:UIImageView = UIImageView(frame: CGRect(x: 10, y: 10, width: self.width-20, height: self.height - 20)) 835 let tempImageView:UIImageView = UIImageView(frame: CGRect(x: 10, y: 10, width: self.width-20, height: self.height - 20))
836 - tempImageView.image = UIImage(named: "homePage_backViewImage") 836 + tempImageView.image = UIImage(named: "")
837 837
838 return tempImageView 838 return tempImageView
839 }() 839 }()
@@ -943,13 +943,6 @@ class CNMainView : UIView{ @@ -943,13 +943,6 @@ class CNMainView : UIView{
943 943
944 944
945 self.backView.isHidden = true; 945 self.backView.isHidden = true;
946 -  
947 -// self.layer.cornerRadius = 20;  
948 -// self.layer.shadowOpacity = 1;  
949 -// self.layer.shadowColor = UIColor("#eeeeee")?.cgColor  
950 -// self.layer.shadowOffset = CGSize(width: 10, height: 10)  
951 -// self.layer.shadowRadius = 10;  
952 -  
953 } 946 }
954 947
955 // MARK: -设置前置视图容器 948 // MARK: -设置前置视图容器
metaCode/Classes/Main/HomePages/Controller/AuthController/CNLiveAuthViewController.swift renamed to metaCode/Classes/Main/HomePages/Controller/HomeController/CNLiveAuthViewController.swift
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 // metaCode 3 // metaCode
4 // 4 //
5 // Created by zx on 2023/12/28. 5 // Created by zx on 2023/12/28.
6 -// 6 +// 首页-根控制器
7 7
8 import Foundation 8 import Foundation
9 import MJRefresh 9 import MJRefresh
metaCode/Classes/Main/HomePages/Controller/AuthController/push相关/CNHomePageAnimationTransition.swift renamed to metaCode/Classes/Main/HomePages/Controller/HomeController/push相关/CNHomePageAnimationTransition.swift
@@ -69,12 +69,14 @@ extension CNHomePageAnimationTransition: UIViewControllerAnimatedTransitioning { @@ -69,12 +69,14 @@ extension CNHomePageAnimationTransition: UIViewControllerAnimatedTransitioning {
69 if fromNaviVC.topViewController is CNHomepageDuanJuDetailViewController{ 69 if fromNaviVC.topViewController is CNHomepageDuanJuDetailViewController{
70 guard let selectedCell = toVC.selectedDuanjuCell else { return } 70 guard let selectedCell = toVC.selectedDuanjuCell else { return }
71 let fromVC = fromNaviVC.topViewController as! CNHomepageDuanJuDetailViewController 71 let fromVC = fromNaviVC.topViewController as! CNHomepageDuanJuDetailViewController
  72 +
  73 + fromVC.view.isHidden = true
72 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { 74 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
73 let frame = selectedCell.convert(selectedCell.totalView.frame, to: toVC.view) 75 let frame = selectedCell.convert(selectedCell.totalView.frame, to: toVC.view)
74 fromVC.view.frame = frame 76 fromVC.view.frame = frame
75 fromVC.view.layer.cornerRadius = GlobalConstants.toDayCardCornerRadius 77 fromVC.view.layer.cornerRadius = GlobalConstants.toDayCardCornerRadius
76 fromVC.closeBtn.alpha = 0 78 fromVC.closeBtn.alpha = 0
77 - fromVC.tableView.alpha = 0 79 +
78 }) { (completed) in 80 }) { (completed) in
79 transitionContext.completeTransition(completed) 81 transitionContext.completeTransition(completed)
80 } 82 }
metaCode/Classes/Main/HomePages/Controller/AuthController/push相关/CNHomePageBaseNavigationController.swift renamed to metaCode/Classes/Main/HomePages/Controller/HomeController/push相关/CNHomePageBaseNavigationController.swift
metaCode/Classes/Main/HomePages/Controller/AuthController/push相关/CNHomepageDetailViewController.swift renamed to metaCode/Classes/Main/HomePages/Controller/HomeController/push相关/CNHomepageDetailViewController.swift
metaCode/Classes/Main/HomePages/Controller/AuthController/push相关/CNHomepageDuanJuDetailViewController.swift renamed to metaCode/Classes/Main/HomePages/Controller/HomeController/push相关/CNHomepageDuanJuDetailViewController.swift
metaCode/Classes/Main/MinePage/ViewModel/CNLiveMineBaseModel.swift
@@ -147,6 +147,7 @@ final class StandListModel: BaseModel {//, TableCodable { @@ -147,6 +147,7 @@ final class StandListModel: BaseModel {//, TableCodable {
147 var backgroundColor: String = kCNDownSlideBackgroundColorHex//企业认证按钮背景色- 147 var backgroundColor: String = kCNDownSlideBackgroundColorHex//企业认证按钮背景色-
148 var atPersonageColour: String = kCNDownSlideBackgroundColorHex//个人认证按钮背景色- 148 var atPersonageColour: String = kCNDownSlideBackgroundColorHex//个人认证按钮背景色-
149 var backgroundColour: String = ""//- 149 var backgroundColour: String = ""//-
  150 + var tipsColour: String = ""//-企业,机构 提醒文本颜色
150 var description: String = ""//首页身份说明描述- 151 var description: String = ""//首页身份说明描述-
151 var descBackgroundImg: String = ""//首页文字背景图 152 var descBackgroundImg: String = ""//首页文字背景图
152 var cardImg: String = ""//卡片背景图- 153 var cardImg: String = ""//卡片背景图-
metaCode/Classes/Main/Model/CNLiveDownSlideModel.swift
@@ -13,6 +13,8 @@ class CNLiveDownSlideModel: BaseModel { @@ -13,6 +13,8 @@ class CNLiveDownSlideModel: BaseModel {
13 var blockId: String? 13 var blockId: String?
14 ///大块标题 14 ///大块标题
15 var blockName: String? 15 var blockName: String?
  16 + ///大块副标题
  17 + var blockSubTitle: String?
16 ///类型 type=4一排两个 74今日推荐 12列表全部课程 75单课程大图/ 18 ///类型 type=4一排两个 74今日推荐 12列表全部课程 75单课程大图/
17 var type: String? 19 var type: String?
18 ///显示几行 20 ///显示几行
metaCode/Classes/Main/Util/CNUpSlideAnimationTransition.swift
@@ -150,6 +150,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning { @@ -150,6 +150,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning {
150 if fromNaviVC.topViewController is CNUpSlideDetailViewController{ 150 if fromNaviVC.topViewController is CNUpSlideDetailViewController{
151 guard let selectedCell = toVC.selectedCell else { return } 151 guard let selectedCell = toVC.selectedCell else { return }
152 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController 152 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController
  153 + fromVC.view.isHidden = true
153 154
154 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { 155 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
155 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view) 156 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view)
@@ -158,13 +159,14 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning { @@ -158,13 +159,14 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning {
158 fromVC.scrollView.imageView.frame.size.width = GlobalConstants.todayCardSize.width 159 fromVC.scrollView.imageView.frame.size.width = GlobalConstants.todayCardSize.width
159 fromVC.scrollView.imageView.frame.size.height = GlobalConstants.todayCardSize.height 160 fromVC.scrollView.imageView.frame.size.height = GlobalConstants.todayCardSize.height
160 fromVC.closeBtn.alpha = 0 161 fromVC.closeBtn.alpha = 0
161 - fromVC.tableView.alpha = 0 162 +
162 }) { (completed) in 163 }) { (completed) in
163 transitionContext.completeTransition(completed) 164 transitionContext.completeTransition(completed)
164 } 165 }
165 }else if fromNaviVC.topViewController is CNHomepageDuanJuDetailViewController{ 166 }else if fromNaviVC.topViewController is CNHomepageDuanJuDetailViewController{
166 guard let selectedCell = toVC.selectedDuanjuCell else { return } 167 guard let selectedCell = toVC.selectedDuanjuCell else { return }
167 let fromVC = fromNaviVC.topViewController as! CNHomepageDuanJuDetailViewController 168 let fromVC = fromNaviVC.topViewController as! CNHomepageDuanJuDetailViewController
  169 + fromVC.view.isHidden = true
168 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { 170 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
169 let frame = selectedCell.convert(selectedCell.totalView.frame, to: toVC.view) 171 let frame = selectedCell.convert(selectedCell.totalView.frame, to: toVC.view)
170 fromVC.view.frame = frame 172 fromVC.view.frame = frame
@@ -184,7 +186,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning { @@ -184,7 +186,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning {
184 guard let toVC = transitionContext.viewController(forKey: .to) as? CNUpSlideViewController else { return } 186 guard let toVC = transitionContext.viewController(forKey: .to) as? CNUpSlideViewController else { return }
185 guard let selectedCell = toVC.selectedCell else { return } 187 guard let selectedCell = toVC.selectedCell else { return }
186 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController 188 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController
187 - 189 + fromVC.view.isHidden = true
188 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { 190 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
189 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view) 191 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view)
190 fromVC.view.frame = frame 192 fromVC.view.frame = frame
@@ -205,6 +207,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning { @@ -205,6 +207,7 @@ extension CNUpSlideAnimationTransition: UIViewControllerAnimatedTransitioning {
205 guard let selectedCell = toVC.selectedCell else { return } 207 guard let selectedCell = toVC.selectedCell else { return }
206 if fromNaviVC.topViewController is CNUpSlideDetailViewController{ 208 if fromNaviVC.topViewController is CNUpSlideDetailViewController{
207 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController 209 let fromVC = fromNaviVC.topViewController as! CNUpSlideDetailViewController
  210 + fromVC.view.isHidden = true
208 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: { 211 UIView.animate(withDuration: transitonDuration - 0.8, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: [], animations: {
209 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view) 212 let frame = selectedCell.convert(selectedCell.bgBackView.frame, to: toVC.view)
210 fromVC.view.frame = frame 213 fromVC.view.frame = frame
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_backViewImage.imageset/4671683516653_.pic.jpg deleted 100644 → 0

82.2 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_backViewImage.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "filename" : "4671683516653_.pic.jpg",  
5 - "idiom" : "universal",  
6 - "scale" : "1x"  
7 - },  
8 - {  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "idiom" : "universal",  
14 - "scale" : "3x"  
15 - }  
16 - ],  
17 - "info" : {  
18 - "author" : "xcode",  
19 - "version" : 1  
20 - }  
21 -}  
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_idCardBG.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "scale" : "1x"  
6 - },  
7 - {  
8 - "filename" : "homePage_idCardBG@2x.png",  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "filename" : "homePage_idCardBG@3x.png",  
14 - "idiom" : "universal",  
15 - "scale" : "3x"  
16 - }  
17 - ],  
18 - "info" : {  
19 - "author" : "xcode",  
20 - "version" : 1  
21 - }  
22 -}  
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_idCardBG.imageset/homePage_idCardBG@2x.png deleted 100644 → 0

19.2 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_idCardBG.imageset/homePage_idCardBG@3x.png deleted 100644 → 0

36.6 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_mainView_front.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "scale" : "1x"  
6 - },  
7 - {  
8 - "filename" : "证件@2x.png",  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "filename" : "证件@3x.png",  
14 - "idiom" : "universal",  
15 - "scale" : "3x"  
16 - }  
17 - ],  
18 - "info" : {  
19 - "author" : "xcode",  
20 - "version" : 1  
21 - }  
22 -}  
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_mainView_front.imageset/证件@2x.png deleted 100644 → 0

35.9 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_mainView_front.imageset/证件@3x.png deleted 100644 → 0

67.6 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_payMoneyImage.imageset/4651683514228_.pic.jpg deleted 100644 → 0

52.1 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_payMoneyImage.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "scale" : "1x"  
6 - },  
7 - {  
8 - "filename" : "4651683514228_.pic.jpg",  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "idiom" : "universal",  
14 - "scale" : "3x"  
15 - }  
16 - ],  
17 - "info" : {  
18 - "author" : "xcode",  
19 - "version" : 1  
20 - }  
21 -}  
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_topImage.imageset/4771683609542_.pic.jpg deleted 100644 → 0

230 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_topImage.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "scale" : "1x"  
6 - },  
7 - {  
8 - "filename" : "4771683609542_.pic.jpg",  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "idiom" : "universal",  
14 - "scale" : "3x"  
15 - }  
16 - ],  
17 - "info" : {  
18 - "author" : "xcode",  
19 - "version" : 1  
20 - }  
21 -}  
metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_zhongguorenming_bank.imageset/4431683250159_.pic.jpg deleted 100644 → 0

79.4 KB

metaCode/Supporting Files/Assets.xcassets/RenzhenPage/homePage_zhongguorenming_bank.imageset/Contents.json deleted 100644 → 0
1 -{  
2 - "images" : [  
3 - {  
4 - "idiom" : "universal",  
5 - "scale" : "1x"  
6 - },  
7 - {  
8 - "filename" : "4431683250159_.pic.jpg",  
9 - "idiom" : "universal",  
10 - "scale" : "2x"  
11 - },  
12 - {  
13 - "idiom" : "universal",  
14 - "scale" : "3x"  
15 - }  
16 - ],  
17 - "info" : {  
18 - "author" : "xcode",  
19 - "version" : 1  
20 - }  
21 -}