Commit 7a582b1e9467275a31fb6106aca37927d29c1424

Authored by zhangxiaowen
1 parent c7da130d

no message

CNLiveMineModule.podspec
... ... @@ -99,7 +99,7 @@ TODO: 网家家-我的模块.
99 99 s.dependency 'CNLiveIntegralModule'
100 100  
101 101 # 订单模块
102   - s.dependency 'CNLiveMyOrderModule'
  102 + #s.dependency 'CNLiveMyOrderModule'
103 103  
104 104 # 设置模块
105 105 s.dependency 'CNLiveSettingModule'
... ...
Example/CNLiveMineModule.xcodeproj/project.pbxproj
... ... @@ -8,7 +8,6 @@
8 8  
9 9 /* Begin PBXBuildFile section */
10 10 084AE78223891906005C9A94 /* UIViewController+Present.m in Sources */ = {isa = PBXBuildFile; fileRef = 084AE78123891906005C9A94 /* UIViewController+Present.m */; };
11   - 08755590239B839E0025B3AE /* CNLiveWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 0875558F239B839E0025B3AE /* CNLiveWebViewController.m */; };
12 11 08B0B213237D1A4D00337DEC /* CNLiveConfigurationManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08B0B211237D1A4D00337DEC /* CNLiveConfigurationManager.m */; };
13 12 08B0B219237D1FAF00337DEC /* CNLiveRootControllerManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08B0B218237D1FAE00337DEC /* CNLiveRootControllerManager.m */; };
14 13 0F994A788957F1E7B1DD445B /* Pods_CNLiveMineModule_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 218A75B2DA9772C6C6C9B5D8 /* Pods_CNLiveMineModule_Tests.framework */; };
... ... @@ -43,8 +42,6 @@
43 42 /* Begin PBXFileReference section */
44 43 084AE78023891906005C9A94 /* UIViewController+Present.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIViewController+Present.h"; sourceTree = "<group>"; };
45 44 084AE78123891906005C9A94 /* UIViewController+Present.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+Present.m"; sourceTree = "<group>"; };
46   - 0875558E239B839E0025B3AE /* CNLiveWebViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CNLiveWebViewController.h; sourceTree = "<group>"; };
47   - 0875558F239B839E0025B3AE /* CNLiveWebViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CNLiveWebViewController.m; sourceTree = "<group>"; };
48 45 08B0B20E237D1A4D00337DEC /* CNLiveConfigurationManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveConfigurationManager.h; sourceTree = "<group>"; };
49 46 08B0B211237D1A4D00337DEC /* CNLiveConfigurationManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveConfigurationManager.m; sourceTree = "<group>"; };
50 47 08B0B217237D1FAE00337DEC /* CNLiveRootControllerManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveRootControllerManager.h; sourceTree = "<group>"; };
... ... @@ -158,8 +155,6 @@
158 155 6003F594195388D20070C39A /* Supporting Files */,
159 156 084AE78023891906005C9A94 /* UIViewController+Present.h */,
160 157 084AE78123891906005C9A94 /* UIViewController+Present.m */,
161   - 0875558E239B839E0025B3AE /* CNLiveWebViewController.h */,
162   - 0875558F239B839E0025B3AE /* CNLiveWebViewController.m */,
163 158 );
164 159 name = "Example for CNLiveMineModule";
165 160 path = CNLiveMineModule;
... ... @@ -227,8 +222,8 @@
227 222 6003F586195388D20070C39A /* Sources */,
228 223 6003F587195388D20070C39A /* Frameworks */,
229 224 6003F588195388D20070C39A /* Resources */,
230   - 143193D31A269794593F870D /* [CP] Embed Pods Frameworks */,
231   - B743709D01B1691569A283FB /* [CP] Copy Pods Resources */,
  225 + AD736352E5FD1D68F9DFD6DD /* [CP] Embed Pods Frameworks */,
  226 + E31DCB37E222CBC3A95FD233 /* [CP] Copy Pods Resources */,
232 227 );
233 228 buildRules = (
234 229 );
... ... @@ -319,7 +314,29 @@
319 314 /* End PBXResourcesBuildPhase section */
320 315  
321 316 /* Begin PBXShellScriptBuildPhase section */
322   - 143193D31A269794593F870D /* [CP] Embed Pods Frameworks */ = {
  317 + A9B5D0EFC5B6FCA241FAE929 /* [CP] Check Pods Manifest.lock */ = {
  318 + isa = PBXShellScriptBuildPhase;
  319 + buildActionMask = 2147483647;
  320 + files = (
  321 + );
  322 + inputFileListPaths = (
  323 + );
  324 + inputPaths = (
  325 + "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
  326 + "${PODS_ROOT}/Manifest.lock",
  327 + );
  328 + name = "[CP] Check Pods Manifest.lock";
  329 + outputFileListPaths = (
  330 + );
  331 + outputPaths = (
  332 + "$(DERIVED_FILE_DIR)/Pods-CNLiveMineModule_Example-checkManifestLockResult.txt",
  333 + );
  334 + runOnlyForDeploymentPostprocessing = 0;
  335 + shellPath = /bin/sh;
  336 + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
  337 + showEnvVarsInLog = 0;
  338 + };
  339 + AD736352E5FD1D68F9DFD6DD /* [CP] Embed Pods Frameworks */ = {
323 340 isa = PBXShellScriptBuildPhase;
324 341 buildActionMask = 2147483647;
325 342 files = (
... ... @@ -327,9 +344,6 @@
327 344 inputPaths = (
328 345 "${PODS_ROOT}/Target Support Files/Pods-CNLiveMineModule_Example/Pods-CNLiveMineModule_Example-frameworks.sh",
329 346 "${BUILT_PRODUCTS_DIR}/AFNetworking/AFNetworking.framework",
330   - "${BUILT_PRODUCTS_DIR}/BKCycleScrollView/BKCycleScrollView.framework",
331   - "${BUILT_PRODUCTS_DIR}/BKPickerView/BKPickerView.framework",
332   - "${BUILT_PRODUCTS_DIR}/BKTimer/BKTimer.framework",
333 347 "${BUILT_PRODUCTS_DIR}/CNLiveAVCamera/CNLiveAVCamera.framework",
334 348 "${BUILT_PRODUCTS_DIR}/CNLiveBaseClass/CNLiveBaseClass.framework",
335 349 "${BUILT_PRODUCTS_DIR}/CNLiveBaseKit/CNLiveBaseKit.framework",
... ... @@ -349,27 +363,20 @@
349 363 "${BUILT_PRODUCTS_DIR}/CNLiveIntegralModule/CNLiveIntegralModule.framework",
350 364 "${BUILT_PRODUCTS_DIR}/CNLiveManager/CNLiveManager.framework",
351 365 "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework",
352   - "${PODS_ROOT}/CNLiveSDKs/CNLiveSDKs/Classes/CNLivePaySDK.framework",
353 366 "${BUILT_PRODUCTS_DIR}/CNLiveTripartiteManagement/CNLiveTripartiteManagement.framework",
354 367 "${BUILT_PRODUCTS_DIR}/CNLiveUploadManager/CNLiveUploadManager.framework",
355 368 "${BUILT_PRODUCTS_DIR}/CNLiveUserAgreementManager/CNLiveUserAgreementManager.framework",
356 369 "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework",
357   - "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Classes/DSCnliveShopSDK.framework",
358 370 "${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework",
359   - "${BUILT_PRODUCTS_DIR}/GPUImage/GPUImage.framework",
360 371 "${BUILT_PRODUCTS_DIR}/HappyDNS/HappyDNS.framework",
361   - "${BUILT_PRODUCTS_DIR}/IQKeyboardManager/IQKeyboardManager.framework",
362 372 "${BUILT_PRODUCTS_DIR}/JXCategoryView/JXCategoryView.framework",
363   - "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework",
364 373 "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework",
365 374 "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework",
366 375 "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework",
367 376 "${BUILT_PRODUCTS_DIR}/PGDatePicker/PGDatePicker.framework",
368 377 "${BUILT_PRODUCTS_DIR}/PGPickerView/PGPickerView.framework",
369   - "${PODS_ROOT}/PLPlayerKit/Pod/Library/PLPlayerKit.framework",
370 378 "${BUILT_PRODUCTS_DIR}/QMUIKit/QMUIKit.framework",
371 379 "${BUILT_PRODUCTS_DIR}/Qiniu/Qiniu.framework",
372   - "${BUILT_PRODUCTS_DIR}/SAMKeychain/SAMKeychain.framework",
373 380 "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework",
374 381 "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework",
375 382 "${BUILT_PRODUCTS_DIR}/SGQRCode/SGQRCode.framework",
... ... @@ -380,9 +387,6 @@
380 387 name = "[CP] Embed Pods Frameworks";
381 388 outputPaths = (
382 389 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/AFNetworking.framework",
383   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BKCycleScrollView.framework",
384   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BKPickerView.framework",
385   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BKTimer.framework",
386 390 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveAVCamera.framework",
387 391 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseClass.framework",
388 392 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveBaseKit.framework",
... ... @@ -402,27 +406,20 @@
402 406 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveIntegralModule.framework",
403 407 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveManager.framework",
404 408 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework",
405   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLivePaySDK.framework",
406 409 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveTripartiteManagement.framework",
407 410 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUploadManager.framework",
408 411 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserAgreementManager.framework",
409 412 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework",
410   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DSCnliveShopSDK.framework",
411 413 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework",
412   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GPUImage.framework",
413 414 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HappyDNS.framework",
414   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework",
415 415 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/JXCategoryView.framework",
416   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework",
417 416 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework",
418 417 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework",
419 418 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework",
420 419 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PGDatePicker.framework",
421 420 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PGPickerView.framework",
422   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PLPlayerKit.framework",
423 421 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/QMUIKit.framework",
424 422 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework",
425   - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SAMKeychain.framework",
426 423 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework",
427 424 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework",
428 425 "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SGQRCode.framework",
... ... @@ -435,7 +432,7 @@
435 432 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveMineModule_Example/Pods-CNLiveMineModule_Example-frameworks.sh\"\n";
436 433 showEnvVarsInLog = 0;
437 434 };
438   - A9B5D0EFC5B6FCA241FAE929 /* [CP] Check Pods Manifest.lock */ = {
  435 + BFE3DD8ECDF347EE483385B5 /* [CP] Check Pods Manifest.lock */ = {
439 436 isa = PBXShellScriptBuildPhase;
440 437 buildActionMask = 2147483647;
441 438 files = (
... ... @@ -450,14 +447,14 @@
450 447 outputFileListPaths = (
451 448 );
452 449 outputPaths = (
453   - "$(DERIVED_FILE_DIR)/Pods-CNLiveMineModule_Example-checkManifestLockResult.txt",
  450 + "$(DERIVED_FILE_DIR)/Pods-CNLiveMineModule_Tests-checkManifestLockResult.txt",
454 451 );
455 452 runOnlyForDeploymentPostprocessing = 0;
456 453 shellPath = /bin/sh;
457 454 shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
458 455 showEnvVarsInLog = 0;
459 456 };
460   - B743709D01B1691569A283FB /* [CP] Copy Pods Resources */ = {
  457 + E31DCB37E222CBC3A95FD233 /* [CP] Copy Pods Resources */ = {
461 458 isa = PBXShellScriptBuildPhase;
462 459 buildActionMask = 2147483647;
463 460 files = (
... ... @@ -466,7 +463,6 @@
466 463 "${PODS_ROOT}/Target Support Files/Pods-CNLiveMineModule_Example/Pods-CNLiveMineModule_Example-resources.sh",
467 464 "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveBalanceModule/CNLiveBalanceModule.bundle",
468 465 "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveMineModule/CNLiveMineModule.bundle",
469   - "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveMyOrderModule/CNLiveMyOrderModule.bundle",
470 466 "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveQrCodeModule/CNLiveQrCodeModule.bundle",
471 467 "${PODS_CONFIGURATION_BUILD_DIR}/CNLiveSettingModule/CNLiveSettingModule.bundle",
472 468 );
... ... @@ -474,7 +470,6 @@
474 470 outputPaths = (
475 471 "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveBalanceModule.bundle",
476 472 "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveMineModule.bundle",
477   - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveMyOrderModule.bundle",
478 473 "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveQrCodeModule.bundle",
479 474 "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CNLiveSettingModule.bundle",
480 475 );
... ... @@ -483,28 +478,6 @@
483 478 shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveMineModule_Example/Pods-CNLiveMineModule_Example-resources.sh\"\n";
484 479 showEnvVarsInLog = 0;
485 480 };
486   - BFE3DD8ECDF347EE483385B5 /* [CP] Check Pods Manifest.lock */ = {
487   - isa = PBXShellScriptBuildPhase;
488   - buildActionMask = 2147483647;
489   - files = (
490   - );
491   - inputFileListPaths = (
492   - );
493   - inputPaths = (
494   - "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
495   - "${PODS_ROOT}/Manifest.lock",
496   - );
497   - name = "[CP] Check Pods Manifest.lock";
498   - outputFileListPaths = (
499   - );
500   - outputPaths = (
501   - "$(DERIVED_FILE_DIR)/Pods-CNLiveMineModule_Tests-checkManifestLockResult.txt",
502   - );
503   - runOnlyForDeploymentPostprocessing = 0;
504   - shellPath = /bin/sh;
505   - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
506   - showEnvVarsInLog = 0;
507   - };
508 481 /* End PBXShellScriptBuildPhase section */
509 482  
510 483 /* Begin PBXSourcesBuildPhase section */
... ... @@ -517,7 +490,6 @@
517 490 084AE78223891906005C9A94 /* UIViewController+Present.m in Sources */,
518 491 6003F5A7195388D20070C39A /* CNLIVEViewController.m in Sources */,
519 492 6003F59A195388D20070C39A /* main.m in Sources */,
520   - 08755590239B839E0025B3AE /* CNLiveWebViewController.m in Sources */,
521 493 08B0B219237D1FAF00337DEC /* CNLiveRootControllerManager.m in Sources */,
522 494 );
523 495 runOnlyForDeploymentPostprocessing = 0;
... ...
Example/CNLiveMineModule/CNLiveWebViewController.h deleted 100644 → 0
1   -//
2   -// CNLiveWebViewController.h
3   -// CNLiveMineModule_Example
4   -//
5   -// Created by CNLive-zxw on 2019/12/7.
6   -// Copyright © 2019 153993236@qq.com. All rights reserved.
7   -//
8   -
9   -#import <UIKit/UIKit.h>
10   -
11   -NS_ASSUME_NONNULL_BEGIN
12   -
13   -@interface CNLiveWebViewController : UIViewController
14   -- (instancetype)initWithUrl:(NSString *)url title:(nullable NSString *)title;
15   -
16   -- (instancetype)initWithUrl:(NSString *)url title:(nullable NSString *)title isShow:(BOOL)isShow;
17   -
18   -@end
19   -
20   -NS_ASSUME_NONNULL_END
Example/CNLiveMineModule/CNLiveWebViewController.m deleted 100644 → 0
1   -//
2   -// CNLiveWebViewController.m
3   -// CNLiveMineModule_Example
4   -//
5   -// Created by CNLive-zxw on 2019/12/7.
6   -// Copyright © 2019 153993236@qq.com. All rights reserved.
7   -//
8   -
9   -#import "CNLiveWebViewController.h"
10   -#import <WebKit/WebKit.h>
11   -#import "CNLiveCategory.h"
12   -
13   -@interface CNLiveWebViewController ()<WKUIDelegate, WKNavigationDelegate>
14   -@property (nonatomic, copy) NSString *url;
15   -@property (nonatomic, assign) BOOL isShow;
16   -
17   -@property (nonatomic, strong) UIView *navigationBar;
18   -@property (nonatomic, strong) WKWebView *webView;
19   -@property (nonatomic, strong) UIProgressView *processView;
20   -@property (nonatomic, weak) UILabel *titleLabel;
21   -
22   -@end
23   -
24   -@implementation CNLiveWebViewController
25   -static const NSInteger margin = 10;
26   -
27   -#pragma mark - 初始化方法
28   -- (instancetype)initWithUrl:(NSString *)url title:(nullable NSString *)title{
29   - return [self initWithUrl:url title:title isShow:NO];
30   -}
31   -
32   -- (instancetype)initWithUrl:(NSString *)url title:(nullable NSString *)title isShow:(BOOL)isShow {
33   - self = [super init];
34   - if (self) {
35   - self.url = url;
36   - self.title = title;
37   - self.isShow = isShow;
38   - }
39   - return self;
40   -}
41   -
42   -- (void)setTitle:(NSString *)title{
43   - _titleLabel.text = title;
44   -}
45   -
46   -#pragma mark - 加载数据
47   -- (void)loadUrl {
48   - NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:self.url] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:10.0];
49   - [self.webView loadRequest:theRequest];
50   -}
51   -
52   -#pragma mark - 生命周期
53   -- (void)viewWillAppear:(BOOL)animated {
54   - [super viewWillAppear:animated];
55   - self.navigationController.navigationBarHidden = YES;
56   -}
57   -
58   -- (void)viewWillDisappear:(BOOL)animated {
59   - [super viewWillDisappear:animated];
60   - self.navigationController.navigationBarHidden = NO;
61   -}
62   -
63   -- (void)viewDidLoad {
64   - [super viewDidLoad];
65   - self.view.backgroundColor = [UIColor whiteColor];
66   - if (@available(iOS 11, *)) {
67   - self.webView.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentAutomatic;
68   - }
69   - else {
70   - self.automaticallyAdjustsScrollViewInsets = NO;
71   - }
72   - [self createSubViews];
73   - [self loadUrl];
74   -}
75   -
76   -- (void)dealloc {
77   - [self.webView stopLoading];
78   - [self.webView removeObserver:self forKeyPath:@"estimatedProgress"];
79   - if (!self.title) {
80   - [self.webView removeObserver:self forKeyPath:@"title"];
81   - }
82   - self.webView.UIDelegate = nil;
83   - self.webView.navigationDelegate = nil;
84   - self.webView = nil;
85   -
86   -}
87   -
88   -- (void)createSubViews {
89   - [self.view addSubview:self.navigationBar];
90   - [self.view addSubview:self.webView];
91   - [self.view addSubview:self.processView];
92   -
93   - [self.webView addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil];
94   - if (!self.title) {
95   - [self.webView addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL];
96   - }
97   -
98   -}
99   -
100   -
101   -#pragma mark - WKNavigationDelegate
102   -// 在发送请求之前,决定是否跳转
103   -- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler{
104   - //允许跳转
105   - decisionHandler(WKNavigationActionPolicyAllow);
106   -}
107   -
108   -// 页面开始加载时调用
109   -- (void)webView:(WKWebView *)webView didStartProvisionalNavigation:(WKNavigation *)navigation{
110   -
111   -}
112   -
113   -// 在收到响应后,决定是否跳转
114   -- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler{
115   - //允许跳转
116   - decisionHandler(WKNavigationResponsePolicyAllow);
117   - //不允许跳转
118   - //decisionHandler(WKNavigationResponsePolicyCancel);
119   -}
120   -
121   -// 当内容开始返回时调用
122   -- (void)webView:(WKWebView *)webView didCommitNavigation:(WKNavigation *)navigation{
123   -
124   -}
125   -
126   -// 页面加载完成之后调用
127   -- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation{
128   -
129   -}
130   -
131   -// 页面加载失败时调用
132   -- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(null_unspecified WKNavigation *)navigation withError:(nonnull NSError *)error{
133   - NSLog(@"打印这个error%@",error);
134   -}
135   -
136   -// 接收到服务器跳转请求之后调用(重定向)
137   -- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation{
138   -
139   -}
140   -
141   -#pragma mark - 响应方法
142   -//回退goBack
143   -- (void)goBack {
144   - if ([self.webView canGoBack]) {
145   - [self.webView goBack];
146   - }
147   - else {
148   - [self closeClick];
149   - }
150   -}
151   -
152   -//关闭pop
153   -- (void)closeClick {
154   - if (self.presentingViewController != nil) {
155   - [self dismissViewControllerAnimated:YES completion:nil];
156   -
157   - }
158   - else {
159   - [self.navigationController popViewControllerAnimated:YES];
160   - }
161   -}
162   -
163   -#pragma mark - KVO
164   -- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context {
165   - if ([keyPath isEqualToString:@"estimatedProgress"]) {
166   - if (object == self.webView) {
167   - [self.processView setAlpha:1.0f];
168   - [self.processView setProgress:self.webView.estimatedProgress animated:YES];
169   -
170   - if(self.webView.estimatedProgress >= 1.0f) {
171   -
172   - [UIView animateWithDuration:0.3 delay:0.5 options:UIViewAnimationOptionCurveEaseOut animations:^{
173   - [self.processView setAlpha:0.0f];
174   -
175   - } completion:^(BOOL finished) {
176   - [self.processView setProgress:0.0f animated:NO];
177   -
178   - }];
179   -
180   - }
181   -
182   - }
183   - else {
184   - [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
185   - }
186   -
187   - }
188   - else if ([keyPath isEqualToString:@"title"]){
189   - if (object == self.webView) {
190   - if (self.webView.title.length != 0) {
191   - self.title = self.webView.title;
192   -
193   - }
194   - }
195   - else {
196   - [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
197   - }
198   - }
199   - else {
200   - [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
201   -
202   - }
203   -}
204   -
205   -/*
206   -#pragma mark - Navigation
207   -
208   -// In a storyboard-based application, you will often want to do a little preparation before navigation
209   -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
210   - // Get the new view controller using [segue destinationViewController].
211   - // Pass the selected object to the new view controller.
212   -}
213   -*/
214   -
215   -#pragma mark - 懒加载
216   -- (UIView *)navigationBar{
217   - if(!_navigationBar){
218   - _navigationBar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44+[UIApplication sharedApplication].statusBarFrame.size.height)];
219   - _navigationBar.backgroundColor = [UIColor clearColor];
220   - [self.view bringSubviewToFront:_navigationBar];
221   -
222   - UIButton *leftBtn = [UIButton buttonWithType:UIButtonTypeCustom];
223   - leftBtn.adjustsImageWhenHighlighted = NO;
224   - leftBtn.frame = CGRectMake(margin, [UIApplication sharedApplication].statusBarFrame.size.height, 44, 44);
225   - UIImage *leftImage = [self getImageWithImageName:@"web_black_back" bundleName:@"CNLiveUserAgreementManager" targetClass:[self class]];
226   - [leftBtn setImage:[leftImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
227   - [leftBtn addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
228   - [leftBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
229   - [_navigationBar addSubview:leftBtn];
230   -
231   - UIButton *closeBtn = [UIButton buttonWithType:UIButtonTypeCustom];
232   - closeBtn.adjustsImageWhenHighlighted = NO;
233   - closeBtn.frame = CGRectMake(44+margin, [UIApplication sharedApplication].statusBarFrame.size.height, 44, 44);
234   - UIImage *closeImage = [self getImageWithImageName:@"web_black_close" bundleName:@"CNLiveUserAgreementManager" targetClass:[self class]];
235   - [closeBtn setImage:[closeImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] forState:UIControlStateNormal];
236   - [closeBtn addTarget:self action:@selector(closeClick) forControlEvents:UIControlEventTouchUpInside];
237   - [closeBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft];
238   - closeBtn.hidden = !self.isShow;
239   - [_navigationBar addSubview:closeBtn];
240   -
241   - UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(([[UIScreen mainScreen] bounds].size.width - 200)/2.0, [UIApplication sharedApplication].statusBarFrame.size.height, 200, 44)];
242   - titleLabel.font = [UIFont boldSystemFontOfSize:17];
243   - titleLabel.textColor = [UIColor blackColor];
244   - titleLabel.text = self.title;
245   - titleLabel.textAlignment = NSTextAlignmentCenter;
246   - [_navigationBar addSubview:titleLabel];
247   - _titleLabel = titleLabel;
248   -
249   - }
250   - return _navigationBar;
251   -}
252   -
253   -- (WKWebView *)webView{
254   - if(!_webView){
255   - WKWebViewConfiguration * configuration = [[WKWebViewConfiguration alloc] init];
256   - configuration.allowsInlineMediaPlayback = YES;
257   - WKPreferences *preferences = [WKPreferences new];
258   - preferences.javaScriptCanOpenWindowsAutomatically = YES;
259   - configuration.preferences = preferences;
260   - _webView = [[WKWebView alloc] initWithFrame:CGRectMake(0, [UIApplication sharedApplication].statusBarFrame.size.height+44, [[UIScreen mainScreen] bounds].size.width, [[UIScreen mainScreen] bounds].size.height-([UIApplication sharedApplication].statusBarFrame.size.height+44)) configuration:configuration];
261   - _webView.UIDelegate = self;
262   - _webView.navigationDelegate = self;
263   - _webView.contentMode = UIViewContentModeScaleAspectFit;
264   - _webView.scrollView.showsHorizontalScrollIndicator = NO;
265   - _webView.scrollView.showsVerticalScrollIndicator = NO;
266   - _webView.allowsBackForwardNavigationGestures = YES;
267   - _webView.allowsLinkPreview = NO;
268   -
269   - }
270   - return _webView;
271   -}
272   -
273   -- (UIProgressView *)processView{
274   - if(!_processView){
275   - _processView = [[UIProgressView alloc] initWithFrame:CGRectMake(0, ([UIApplication sharedApplication].statusBarFrame.size.height+44)+0.5, [[UIScreen mainScreen] bounds].size.width, 1)];
276   - _processView.progressTintColor = [UIColor colorWithRed:19/255.0 green:204/255.0 blue:12/255.0 alpha:1.0];
277   - _processView.trackTintColor = [UIColor whiteColor];
278   - }
279   - return _processView;
280   -}
281   -
282   -@end