Commit 7a582b1e9467275a31fb6106aca37927d29c1424
1 parent
c7da130d
no message
Showing
4 changed files
with
29 additions
and
359 deletions
CNLiveMineModule.podspec
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 |