Commit f9ede31b4042a3c34b32cf9a789a2330ddd5c8f7
1 parent
f6d00428
首页导航返回闪动,错误页按钮无法点击
Showing
10 changed files
with
265 additions
and
23 deletions
CNLiveCServiceModule.podspec
CNLiveCServiceModule/Classes/ViewController/CNLiveAllServiceVC.m
| ... | ... | @@ -40,11 +40,13 @@ static NSString *HistoryFootID = @"UICollectionFooterView"; |
| 40 | 40 | self.dataSource = @[]; |
| 41 | 41 | [self.listCollectionView reloadData]; |
| 42 | 42 | } |
| 43 | + self.listCollectionView.hidden = NO; | |
| 43 | 44 | if (![CNLiveNetworking isNetworking]) { |
| 44 | 45 | self.listCollectionView.mj_footer.hidden = YES; |
| 45 | 46 | if (self.dataSource.count>0) { |
| 46 | 47 | return; |
| 47 | 48 | } |
| 49 | + self.listCollectionView.hidden = YES; | |
| 48 | 50 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_noNet"] text:@"网络开小差了,刷新试试" detailText:nil buttonTitle:@" 刷新 " buttonAction:@selector(requestService)]; |
| 49 | 51 | self.emptyView.frame = CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, SCREEN_HEIGHT-NavigationContentTop); |
| 50 | 52 | [self setCNAPIErrorEmptyView]; |
| ... | ... | @@ -77,6 +79,7 @@ static NSString *HistoryFootID = @"UICollectionFooterView"; |
| 77 | 79 | } |
| 78 | 80 | [self.listCollectionView.mj_footer endRefreshing]; |
| 79 | 81 | self.listCollectionView.mj_footer.hidden = YES; |
| 82 | + self.listCollectionView.hidden = YES; | |
| 80 | 83 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_failure"] text:@"加载失败,请点击重试" detailText:nil buttonTitle:@" 重试 " buttonAction:@selector(requestService)]; |
| 81 | 84 | self.emptyView.frame = CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, SCREEN_HEIGHT-NavigationContentTop); |
| 82 | 85 | [self setCNAPIErrorEmptyView]; |
| ... | ... | @@ -113,14 +116,9 @@ static NSString *HistoryFootID = @"UICollectionFooterView"; |
| 113 | 116 | make.bottom.equalTo(self.mas_bottomLayoutGuide); |
| 114 | 117 | }]; |
| 115 | 118 | } |
| 116 | -- (void)viewWillAppear:(BOOL)animated{ | |
| 117 | - [super viewWillAppear:animated]; | |
| 118 | - self.navigationController.navigationBarHidden = YES; | |
| 119 | -} | |
| 120 | -- (void)viewWillDisappear:(BOOL)animated | |
| 119 | +- (BOOL)preferredNavigationBarHidden | |
| 121 | 120 | { |
| 122 | - [super viewWillDisappear:animated]; | |
| 123 | - self.navigationController.navigationBarHidden = NO; | |
| 121 | + return YES; | |
| 124 | 122 | } |
| 125 | 123 | #pragma mark - UICollectionViewDelegate |
| 126 | 124 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ | ... | ... |
CNLiveCServiceModule/Classes/ViewController/CNLiveMyServicesVC.m
| ... | ... | @@ -31,11 +31,13 @@ static NSString *HotListCellID = @"HotListCellID"; |
| 31 | 31 | self.dataSource = @[]; |
| 32 | 32 | [self.listCollectionView reloadData]; |
| 33 | 33 | } |
| 34 | + self.listCollectionView.hidden = NO; | |
| 34 | 35 | if (![CNLiveNetworking isNetworking]) { |
| 35 | 36 | self.listCollectionView.mj_footer.hidden = YES; |
| 36 | 37 | if (self.dataSource.count > 0) { |
| 37 | 38 | return; |
| 38 | 39 | } |
| 40 | + self.listCollectionView.hidden = YES; | |
| 39 | 41 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_noNet"] text:@"网络开小差了,刷新试试" detailText:nil buttonTitle:@" 刷新 " buttonAction:@selector(myServiceData)]; |
| 40 | 42 | self.emptyView.frame = CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, SCREEN_HEIGHT-NavigationContentTop); |
| 41 | 43 | [self setCNAPIErrorEmptyView]; |
| ... | ... | @@ -51,6 +53,7 @@ static NSString *HotListCellID = @"HotListCellID"; |
| 51 | 53 | if (self.dataSource.count > 0) { |
| 52 | 54 | return; |
| 53 | 55 | } |
| 56 | + self.listCollectionView.hidden = YES; | |
| 54 | 57 | self.listCollectionView.mj_footer.hidden = YES; |
| 55 | 58 | self.navigationBar.right.hidden = YES; |
| 56 | 59 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_noMsg"] text:@"暂无内容" detailText:nil buttonTitle:NULL buttonAction:NULL]; |
| ... | ... | @@ -76,6 +79,7 @@ static NSString *HotListCellID = @"HotListCellID"; |
| 76 | 79 | [QMUITips hideAllTipsInView:self.view]; |
| 77 | 80 | [self.listCollectionView.mj_footer endRefreshing]; |
| 78 | 81 | self.listCollectionView.mj_footer.hidden = YES; |
| 82 | + self.listCollectionView.hidden = YES; | |
| 79 | 83 | strongself |
| 80 | 84 | self.navigationBar.right.hidden = YES; |
| 81 | 85 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_failure"] text:@"加载失败,请点击重试" detailText:nil buttonTitle:@" 重试 " buttonAction:@selector(myServiceData)]; |
| ... | ... | @@ -105,14 +109,9 @@ static NSString *HotListCellID = @"HotListCellID"; |
| 105 | 109 | make.bottom.equalTo(self.mas_bottomLayoutGuide); |
| 106 | 110 | }]; |
| 107 | 111 | } |
| 108 | -- (void)viewWillAppear:(BOOL)animated { | |
| 109 | - [super viewWillAppear:animated]; | |
| 110 | - self.navigationController.navigationBarHidden = YES; | |
| 111 | -} | |
| 112 | -- (void)viewWillDisappear:(BOOL)animated | |
| 112 | +- (BOOL)preferredNavigationBarHidden | |
| 113 | 113 | { |
| 114 | - [super viewWillDisappear:animated]; | |
| 115 | - self.navigationController.navigationBarHidden = NO; | |
| 114 | + return YES; | |
| 116 | 115 | } |
| 117 | 116 | #pragma mark - UICollectionViewDelegate |
| 118 | 117 | - (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ | ... | ... |
CNLiveCServiceModule/Classes/ViewController/CNLiveServiceSearchVC.m
| ... | ... | @@ -157,16 +157,18 @@ static NSString *HistoryFootID = @"HistoryFootID"; |
| 157 | 157 | - (void)viewWillAppear:(BOOL)animated |
| 158 | 158 | { |
| 159 | 159 | [super viewWillAppear:animated]; |
| 160 | - self.navigationController.navigationBarHidden = YES; | |
| 161 | 160 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(resignActive) name:UIApplicationDidEnterBackgroundNotification object:nil]; |
| 162 | 161 | } |
| 163 | 162 | - (void)viewWillDisappear:(BOOL)animated |
| 164 | 163 | { |
| 165 | 164 | [super viewWillDisappear:animated]; |
| 166 | - self.navigationController.navigationBarHidden = NO; | |
| 167 | 165 | [[NSNotificationCenter defaultCenter] removeObserver:self]; |
| 168 | 166 | [CNLiveServiceHistorySearch saveHistorySearch:self.histories.mutableCopy]; |
| 169 | 167 | } |
| 168 | +- (BOOL)preferredNavigationBarHidden | |
| 169 | +{ | |
| 170 | + return YES; | |
| 171 | +} | |
| 170 | 172 | #pragma mark - Notification |
| 171 | 173 | - (void)resignActive{ |
| 172 | 174 | [CNLiveServiceHistorySearch saveHistorySearch:self.histories.mutableCopy]; | ... | ... |
CNLiveCServiceModule/Classes/ViewController/CNLiveServiceVC.m
| ... | ... | @@ -43,11 +43,13 @@ static NSString *CNGoodsOrVideoheaderID = @"CNLiveGoodsOrVideoHeaderView"; |
| 43 | 43 | @implementation CNLiveServiceVC |
| 44 | 44 | - (void)requestService{ |
| 45 | 45 | self.isError = NO; |
| 46 | + self.listCollectionView.hidden = NO; | |
| 46 | 47 | if (![CNLiveNetworking isNetworking]) { |
| 47 | 48 | [_listCollectionView.mj_header endRefreshing]; |
| 48 | 49 | if (self.dataSource.count>0 && self.pageListSource.count>0) { |
| 49 | 50 | return; |
| 50 | 51 | } |
| 52 | + self.listCollectionView.hidden = YES; | |
| 51 | 53 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_noNet"] text:@"网络开小差了,刷新试试" detailText:nil buttonTitle:@" 刷新 " buttonAction:@selector(requestService)]; |
| 52 | 54 | self.emptyView.frame = CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, SCREEN_HEIGHT-NavigationContentTop); |
| 53 | 55 | [self setCNAPIErrorEmptyView]; |
| ... | ... | @@ -87,6 +89,7 @@ static NSString *CNGoodsOrVideoheaderID = @"CNLiveGoodsOrVideoHeaderView"; |
| 87 | 89 | if (self.dataSource.count>0||self.pageListSource.count>0) { |
| 88 | 90 | return; |
| 89 | 91 | } |
| 92 | + self.listCollectionView.hidden = YES; | |
| 90 | 93 | [self showEmptyViewWithImage:[UIImage loadCServiceBundle:@"service_failure"] text:@"加载失败,请点击重试" detailText:nil buttonTitle:@" 重试 " buttonAction:@selector(requestService)]; |
| 91 | 94 | self.emptyView.frame = CGRectMake(0, NavigationContentTop, SCREEN_WIDTH, SCREEN_HEIGHT-NavigationContentTop); |
| 92 | 95 | [self setCNAPIErrorEmptyView]; |
| ... | ... | @@ -112,18 +115,15 @@ static NSString *CNGoodsOrVideoheaderID = @"CNLiveGoodsOrVideoHeaderView"; |
| 112 | 115 | - (void)viewWillAppear:(BOOL)animated |
| 113 | 116 | { |
| 114 | 117 | [super viewWillAppear:animated]; |
| 115 | - self.navigationController.navigationBarHidden = YES; | |
| 116 | - | |
| 117 | 118 | if (self.oldFontSize != [CNFontAndRatioTool getFontSizeCoefficient]) { |
| 118 | 119 | self.oldFontSize = [CNFontAndRatioTool getFontSizeCoefficient]; |
| 119 | 120 | [self requestService]; |
| 120 | 121 | } |
| 121 | 122 | } |
| 122 | 123 | |
| 123 | -- (void)viewWillDisappear:(BOOL)animated | |
| 124 | +- (BOOL)preferredNavigationBarHidden | |
| 124 | 125 | { |
| 125 | - [super viewWillDisappear:animated]; | |
| 126 | - self.navigationController.navigationBarHidden = NO; | |
| 126 | + return YES; | |
| 127 | 127 | } |
| 128 | 128 | - (void)viewDidLayoutSubviews |
| 129 | 129 | { | ... | ... |
Example/CNLiveCServiceModule.xcodeproj/project.pbxproj
| ... | ... | @@ -7,6 +7,9 @@ |
| 7 | 7 | objects = { |
| 8 | 8 | |
| 9 | 9 | /* Begin PBXBuildFile section */ |
| 10 | + 08E1066E27910A12006DB3F7 /* CNLiveServiceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 08E1066827910A12006DB3F7 /* CNLiveServiceManager.m */; }; | |
| 11 | + 08E1066F27910A12006DB3F7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08E1066A27910A12006DB3F7 /* LaunchScreen.storyboard */; }; | |
| 12 | + 08E1067027910A12006DB3F7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 08E1066C27910A12006DB3F7 /* Main.storyboard */; }; | |
| 10 | 13 | 08FF465A2758CD4B001A767D /* CNLiveCServiceModuleImpl.m in Sources */ = {isa = PBXBuildFile; fileRef = 08FF46582758CD4A001A767D /* CNLiveCServiceModuleImpl.m */; }; |
| 11 | 14 | 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58D195388D20070C39A /* Foundation.framework */; }; |
| 12 | 15 | 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6003F58F195388D20070C39A /* CoreGraphics.framework */; }; |
| ... | ... | @@ -38,6 +41,10 @@ |
| 38 | 41 | /* End PBXContainerItemProxy section */ |
| 39 | 42 | |
| 40 | 43 | /* Begin PBXFileReference section */ |
| 44 | + 08E1066727910A12006DB3F7 /* CNLiveServiceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveServiceManager.h; sourceTree = "<group>"; }; | |
| 45 | + 08E1066827910A12006DB3F7 /* CNLiveServiceManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveServiceManager.m; sourceTree = "<group>"; }; | |
| 46 | + 08E1066B27910A12006DB3F7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = LaunchScreen.storyboard; sourceTree = "<group>"; }; | |
| 47 | + 08E1066D27910A12006DB3F7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Main.storyboard; sourceTree = "<group>"; }; | |
| 41 | 48 | 08FF46582758CD4A001A767D /* CNLiveCServiceModuleImpl.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CNLiveCServiceModuleImpl.m; sourceTree = "<group>"; }; |
| 42 | 49 | 08FF46592758CD4B001A767D /* CNLiveCServiceModuleImpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CNLiveCServiceModuleImpl.h; sourceTree = "<group>"; }; |
| 43 | 50 | 24FCDF117E18830B2795CC8A /* Pods_CNLiveCServiceModule_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CNLiveCServiceModule_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; |
| ... | ... | @@ -98,9 +105,21 @@ |
| 98 | 105 | /* End PBXFrameworksBuildPhase section */ |
| 99 | 106 | |
| 100 | 107 | /* Begin PBXGroup section */ |
| 108 | + 08E1066927910A12006DB3F7 /* Base.lproj */ = { | |
| 109 | + isa = PBXGroup; | |
| 110 | + children = ( | |
| 111 | + 08E1066A27910A12006DB3F7 /* LaunchScreen.storyboard */, | |
| 112 | + 08E1066C27910A12006DB3F7 /* Main.storyboard */, | |
| 113 | + ); | |
| 114 | + path = Base.lproj; | |
| 115 | + sourceTree = "<group>"; | |
| 116 | + }; | |
| 101 | 117 | 08FF464727586356001A767D /* CNLIveCServiceModule */ = { |
| 102 | 118 | isa = PBXGroup; |
| 103 | 119 | children = ( |
| 120 | + 08E1066927910A12006DB3F7 /* Base.lproj */, | |
| 121 | + 08E1066727910A12006DB3F7 /* CNLiveServiceManager.h */, | |
| 122 | + 08E1066827910A12006DB3F7 /* CNLiveServiceManager.m */, | |
| 104 | 123 | 08FF46592758CD4B001A767D /* CNLiveCServiceModuleImpl.h */, |
| 105 | 124 | 08FF46582758CD4A001A767D /* CNLiveCServiceModuleImpl.m */, |
| 106 | 125 | ); |
| ... | ... | @@ -221,6 +240,7 @@ |
| 221 | 240 | 6003F587195388D20070C39A /* Frameworks */, |
| 222 | 241 | 6003F588195388D20070C39A /* Resources */, |
| 223 | 242 | 388A34DFF0F9E22583B1B874 /* [CP] Embed Pods Frameworks */, |
| 243 | + C1C41FFB61C3A8767649C16C /* [CP] Copy Pods Resources */, | |
| 224 | 244 | ); |
| 225 | 245 | buildRules = ( |
| 226 | 246 | ); |
| ... | ... | @@ -297,6 +317,8 @@ |
| 297 | 317 | 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, |
| 298 | 318 | 71719F9F1E33DC2100824A3D /* LaunchScreen.storyboard in Resources */, |
| 299 | 319 | 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, |
| 320 | + 08E1067027910A12006DB3F7 /* Main.storyboard in Resources */, | |
| 321 | + 08E1066F27910A12006DB3F7 /* LaunchScreen.storyboard in Resources */, | |
| 300 | 322 | 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, |
| 301 | 323 | ); |
| 302 | 324 | runOnlyForDeploymentPostprocessing = 0; |
| ... | ... | @@ -354,13 +376,29 @@ |
| 354 | 376 | "${BUILT_PRODUCTS_DIR}/CNLiveEnvironment/CNLiveEnvironment.framework", |
| 355 | 377 | "${BUILT_PRODUCTS_DIR}/CNLiveNewTripartiteManagement/CNLiveNewTripartiteManagement.framework", |
| 356 | 378 | "${BUILT_PRODUCTS_DIR}/CNLiveRequestBastKit/CNLiveRequestBastKit.framework", |
| 379 | + "${PODS_ROOT}/CNLiveSDK/CNLiveSDK/Classes/CNLivePaySDK.framework", | |
| 357 | 380 | "${BUILT_PRODUCTS_DIR}/CNLiveUserManagement/CNLiveUserManagement.framework", |
| 381 | + "${PODS_ROOT}/DSARModule/DSARModule/Frameworks/DSARModule.framework", | |
| 382 | + "${BUILT_PRODUCTS_DIR}/DSBaseModule/DSBaseModule.framework", | |
| 383 | + "${BUILT_PRODUCTS_DIR}/DSGTMBase64/DSGTMBase64.framework", | |
| 384 | + "${BUILT_PRODUCTS_DIR}/DSToolsModule/DSToolsModule.framework", | |
| 385 | + "${BUILT_PRODUCTS_DIR}/DZNEmptyDataSet/DZNEmptyDataSet.framework", | |
| 386 | + "${BUILT_PRODUCTS_DIR}/HappyDNS/HappyDNS.framework", | |
| 387 | + "${BUILT_PRODUCTS_DIR}/IQKeyboardManager/IQKeyboardManager.framework", | |
| 388 | + "${BUILT_PRODUCTS_DIR}/MBProgressHUD/MBProgressHUD.framework", | |
| 358 | 389 | "${BUILT_PRODUCTS_DIR}/MJExtension/MJExtension.framework", |
| 359 | 390 | "${BUILT_PRODUCTS_DIR}/MJRefresh/MJRefresh.framework", |
| 360 | 391 | "${BUILT_PRODUCTS_DIR}/Masonry/Masonry.framework", |
| 392 | + "${PODS_ROOT}/PLPlayerKit/Pod/Library/PLPlayerKit.framework", | |
| 361 | 393 | "${BUILT_PRODUCTS_DIR}/QMUIKit/QMUIKit.framework", |
| 394 | + "${BUILT_PRODUCTS_DIR}/Qiniu/Qiniu.framework", | |
| 395 | + "${BUILT_PRODUCTS_DIR}/SAMKeychain/SAMKeychain.framework", | |
| 396 | + "${BUILT_PRODUCTS_DIR}/SDAutoLayout/SDAutoLayout.framework", | |
| 362 | 397 | "${BUILT_PRODUCTS_DIR}/SDCycleScrollView/SDCycleScrollView.framework", |
| 363 | 398 | "${BUILT_PRODUCTS_DIR}/SDWebImage/SDWebImage.framework", |
| 399 | + "${BUILT_PRODUCTS_DIR}/TZImagePickerController/TZImagePickerController.framework", | |
| 400 | + "${BUILT_PRODUCTS_DIR}/WebViewJavascriptBridge/WebViewJavascriptBridge.framework", | |
| 401 | + "${BUILT_PRODUCTS_DIR}/YBImageBrowser/YBImageBrowser.framework", | |
| 364 | 402 | "${BUILT_PRODUCTS_DIR}/YYAsyncLayer/YYAsyncLayer.framework", |
| 365 | 403 | "${BUILT_PRODUCTS_DIR}/YYCache/YYCache.framework", |
| 366 | 404 | "${BUILT_PRODUCTS_DIR}/YYCategories/YYCategories.framework", |
| ... | ... | @@ -386,13 +424,29 @@ |
| 386 | 424 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveEnvironment.framework", |
| 387 | 425 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveNewTripartiteManagement.framework", |
| 388 | 426 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveRequestBastKit.framework", |
| 427 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLivePaySDK.framework", | |
| 389 | 428 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CNLiveUserManagement.framework", |
| 429 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DSARModule.framework", | |
| 430 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DSBaseModule.framework", | |
| 431 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DSGTMBase64.framework", | |
| 432 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DSToolsModule.framework", | |
| 433 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DZNEmptyDataSet.framework", | |
| 434 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/HappyDNS.framework", | |
| 435 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework", | |
| 436 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MBProgressHUD.framework", | |
| 390 | 437 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJExtension.framework", |
| 391 | 438 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/MJRefresh.framework", |
| 392 | 439 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Masonry.framework", |
| 440 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PLPlayerKit.framework", | |
| 393 | 441 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/QMUIKit.framework", |
| 442 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Qiniu.framework", | |
| 443 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SAMKeychain.framework", | |
| 444 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDAutoLayout.framework", | |
| 394 | 445 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDCycleScrollView.framework", |
| 395 | 446 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SDWebImage.framework", |
| 447 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TZImagePickerController.framework", | |
| 448 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/WebViewJavascriptBridge.framework", | |
| 449 | + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YBImageBrowser.framework", | |
| 396 | 450 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYAsyncLayer.framework", |
| 397 | 451 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCache.framework", |
| 398 | 452 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/YYCategories.framework", |
| ... | ... | @@ -430,6 +484,66 @@ |
| 430 | 484 | 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"; |
| 431 | 485 | showEnvVarsInLog = 0; |
| 432 | 486 | }; |
| 487 | + C1C41FFB61C3A8767649C16C /* [CP] Copy Pods Resources */ = { | |
| 488 | + isa = PBXShellScriptBuildPhase; | |
| 489 | + buildActionMask = 2147483647; | |
| 490 | + files = ( | |
| 491 | + ); | |
| 492 | + inputPaths = ( | |
| 493 | + "${PODS_ROOT}/Target Support Files/Pods-CNLiveCServiceModule_Example/Pods-CNLiveCServiceModule_Example-resources.sh", | |
| 494 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSAddressModule.bundle", | |
| 495 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSARModule.bundle", | |
| 496 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSCouponModule.bundle", | |
| 497 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSCultureModule.bundle", | |
| 498 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSDarenModule.bundle", | |
| 499 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSDefaultModule.bundle", | |
| 500 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSExpressModule.bundle", | |
| 501 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSGiftModule.bundle", | |
| 502 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSHappinessModule.bundle", | |
| 503 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSLifeServiceModule.bundle", | |
| 504 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSOldHappinessModule.bundle", | |
| 505 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSOptimizationModule.bundle", | |
| 506 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSPayModule.bundle", | |
| 507 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSPlayerModule.bundle", | |
| 508 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSQrCodeModule.bundle", | |
| 509 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSRefreshModule.bundle", | |
| 510 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSRepastModule.bundle", | |
| 511 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSServiceModule.bundle", | |
| 512 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSShopCartModule.bundle", | |
| 513 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSShopModule.bundle", | |
| 514 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSVideoCModule.bundle", | |
| 515 | + "${PODS_ROOT}/DSCnliveShopSDK/DSCnliveShopSDK/Assets/DSWebViewModule.bundle", | |
| 516 | + ); | |
| 517 | + name = "[CP] Copy Pods Resources"; | |
| 518 | + outputPaths = ( | |
| 519 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSAddressModule.bundle", | |
| 520 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSARModule.bundle", | |
| 521 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSCouponModule.bundle", | |
| 522 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSCultureModule.bundle", | |
| 523 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSDarenModule.bundle", | |
| 524 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSDefaultModule.bundle", | |
| 525 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSExpressModule.bundle", | |
| 526 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSGiftModule.bundle", | |
| 527 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSHappinessModule.bundle", | |
| 528 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSLifeServiceModule.bundle", | |
| 529 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSOldHappinessModule.bundle", | |
| 530 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSOptimizationModule.bundle", | |
| 531 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSPayModule.bundle", | |
| 532 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSPlayerModule.bundle", | |
| 533 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSQrCodeModule.bundle", | |
| 534 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSRefreshModule.bundle", | |
| 535 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSRepastModule.bundle", | |
| 536 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSServiceModule.bundle", | |
| 537 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSShopCartModule.bundle", | |
| 538 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSShopModule.bundle", | |
| 539 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSVideoCModule.bundle", | |
| 540 | + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/DSWebViewModule.bundle", | |
| 541 | + ); | |
| 542 | + runOnlyForDeploymentPostprocessing = 0; | |
| 543 | + shellPath = /bin/sh; | |
| 544 | + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CNLiveCServiceModule_Example/Pods-CNLiveCServiceModule_Example-resources.sh\"\n"; | |
| 545 | + showEnvVarsInLog = 0; | |
| 546 | + }; | |
| 433 | 547 | /* End PBXShellScriptBuildPhase section */ |
| 434 | 548 | |
| 435 | 549 | /* Begin PBXSourcesBuildPhase section */ |
| ... | ... | @@ -439,6 +553,7 @@ |
| 439 | 553 | files = ( |
| 440 | 554 | 6003F59E195388D20070C39A /* CNLIVEAppDelegate.m in Sources */, |
| 441 | 555 | 6003F5A7195388D20070C39A /* CNLIVEViewController.m in Sources */, |
| 556 | + 08E1066E27910A12006DB3F7 /* CNLiveServiceManager.m in Sources */, | |
| 442 | 557 | 08FF465A2758CD4B001A767D /* CNLiveCServiceModuleImpl.m in Sources */, |
| 443 | 558 | 6003F59A195388D20070C39A /* main.m in Sources */, |
| 444 | 559 | ); |
| ... | ... | @@ -463,6 +578,22 @@ |
| 463 | 578 | /* End PBXTargetDependency section */ |
| 464 | 579 | |
| 465 | 580 | /* Begin PBXVariantGroup section */ |
| 581 | + 08E1066A27910A12006DB3F7 /* LaunchScreen.storyboard */ = { | |
| 582 | + isa = PBXVariantGroup; | |
| 583 | + children = ( | |
| 584 | + 08E1066B27910A12006DB3F7 /* Base */, | |
| 585 | + ); | |
| 586 | + name = LaunchScreen.storyboard; | |
| 587 | + sourceTree = "<group>"; | |
| 588 | + }; | |
| 589 | + 08E1066C27910A12006DB3F7 /* Main.storyboard */ = { | |
| 590 | + isa = PBXVariantGroup; | |
| 591 | + children = ( | |
| 592 | + 08E1066D27910A12006DB3F7 /* Base */, | |
| 593 | + ); | |
| 594 | + name = Main.storyboard; | |
| 595 | + sourceTree = "<group>"; | |
| 596 | + }; | |
| 466 | 597 | 6003F596195388D20070C39A /* InfoPlist.strings */ = { |
| 467 | 598 | isa = PBXVariantGroup; |
| 468 | 599 | children = ( | ... | ... |
Example/CNLiveCServiceModule/CNLiveCServiceModuleImpl.m
| ... | ... | @@ -7,9 +7,29 @@ |
| 7 | 7 | // |
| 8 | 8 | |
| 9 | 9 | #import "CNLiveCServiceModuleImpl.h" |
| 10 | +#import "CNLiveServiceManager.h" | |
| 10 | 11 | |
| 11 | 12 | @implementation CNLiveCServiceModuleImpl |
| 12 | 13 | - (void)jumpControllerType:(CNCServiceJumpType)type param:(NSDictionary *_Nullable)param controller:(UIViewController *)controller{ |
| 13 | - | |
| 14 | + switch (type) { | |
| 15 | + case CNCServiceJumpTypeService:{ | |
| 16 | + [CNLiveServiceManager jumpController:param[@"serviceId"] type:param[@"type"] to:param[@"to"] shopType:param[@"shopType"] controller:controller]; | |
| 17 | + } | |
| 18 | + break; | |
| 19 | + | |
| 20 | + case CNCServiceJumpTypeWebVC:{ | |
| 21 | +// [CNLiveSkipActionManager checkWithFunctionForShareURL:param[@"webUrl"]]; | |
| 22 | + } | |
| 23 | + break; | |
| 24 | + case CNCServiceJumpTypeGetPage:{ | |
| 25 | + //通用跳转 | |
| 26 | +// [CNUniversalSkipHandler skipToVCByModel:[CNAmuseContentModel mj_objectWithKeyValues:param] channelName:@""]; | |
| 27 | + } | |
| 28 | + default: | |
| 29 | + { | |
| 30 | + | |
| 31 | + } | |
| 32 | + break; | |
| 33 | + } | |
| 14 | 34 | } |
| 15 | 35 | @end | ... | ... |
Example/CNLiveCServiceModule/CNLiveServiceManager.h
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveServiceManager.h | |
| 3 | +// CNLiveNetAdd | |
| 4 | +// | |
| 5 | +// Created by CNLive-zxw on 2020/8/28. | |
| 6 | +// Copyright © 2020 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import <Foundation/Foundation.h> | |
| 10 | + | |
| 11 | +NS_ASSUME_NONNULL_BEGIN | |
| 12 | + | |
| 13 | +@interface CNLiveServiceManager : NSObject | |
| 14 | + | |
| 15 | +/** | |
| 16 | + * 服务号跳转 | |
| 17 | + * | |
| 18 | + * @param servingId 服务号id | |
| 19 | + * @param type type | |
| 20 | + * @param to to | |
| 21 | + * @param shopType shopType | |
| 22 | + */ | |
| 23 | ++ (void)jumpController:(NSString *)servingId type:(NSString *)type to:(NSString *)to shopType:(NSString *)shopType controller:(UIViewController *)controller; | |
| 24 | + | |
| 25 | +@end | |
| 26 | + | |
| 27 | +NS_ASSUME_NONNULL_END | ... | ... |
Example/CNLiveCServiceModule/CNLiveServiceManager.m
0 → 100644
| 1 | +// | |
| 2 | +// CNLiveServiceManager.m | |
| 3 | +// CNLiveNetAdd | |
| 4 | +// | |
| 5 | +// Created by CNLive-zxw on 2020/8/28. | |
| 6 | +// Copyright © 2020 cnlive. All rights reserved. | |
| 7 | +// | |
| 8 | + | |
| 9 | +#import "CNLiveServiceManager.h" | |
| 10 | +#import <DSCnliveShopSDK/DSCnliveShopSDKProtocolUCM.h> | |
| 11 | +#import <DSCnliveShopSDK/DSCnliveShopSDKSkip.h> | |
| 12 | +#import <DSCnliveShopSDK/DSCnliveShopSDKManager.h> | |
| 13 | + | |
| 14 | +@implementation CNLiveServiceManager | |
| 15 | ++ (void)jumpController:(NSString *)servingId type:(NSString *)type to:(NSString *)to shopType:(NSString *)shopType controller:(UIViewController *)controller { | |
| 16 | + [DSCnliveShopSDKProtocolUCM uMengCheckCallBackType:DSUMengCheckTypeActionMethod subType:DSUMengCheckSLTypeServiceHPClickItem]; | |
| 17 | + | |
| 18 | + if ([type isEqualToString:@"100"]) {//领头雁 | |
| 19 | + [controller.navigationController.navigationBar setHidden:YES]; | |
| 20 | + [controller.tabBarController.tabBar setHidden:YES]; | |
| 21 | +// if (!CNLiveStringIsEmpty(to)) { | |
| 22 | +// [BHConfig set:@"url" value:to]; | |
| 23 | +// } | |
| 24 | + | |
| 25 | + CATransition *transition = [CATransition animation]; | |
| 26 | + transition.duration = 0.3f; | |
| 27 | + transition.type = kCATransitionPush; | |
| 28 | + transition.subtype = kCATransitionFromTop; | |
| 29 | + transition.timingFunction = [CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]; | |
| 30 | + | |
| 31 | +// CNLiveLTYTabBarController *vc = [[CNLiveLTYTabBarController alloc]init]; | |
| 32 | +// vc.hidesBottomBarWhenPushed = YES; | |
| 33 | +// [controller.navigationController pushViewController:vc animated:NO]; | |
| 34 | +// [controller.navigationController.view.layer addAnimation:transition forKey:kCATransition]; | |
| 35 | + | |
| 36 | + return; | |
| 37 | + } | |
| 38 | + if ([type isEqualToString:@"21"]||[type isEqualToString:@"50"]) { | |
| 39 | + [[DSCnliveShopSDKManager sharedManager].skip skipType:type to:servingId shopType:to currentVC:controller]; | |
| 40 | + return; | |
| 41 | + } | |
| 42 | + if ([type isEqualToString:@"103"]) { | |
| 43 | + NSError *error; | |
| 44 | + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:[to dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:&error]; | |
| 45 | +// if (error||![dic isKindOfClass:[NSDictionary class]]) { | |
| 46 | +// [QMUITips showInfo:@"参数错误" inView:AppKeyWindow hideAfterDelay:0.3]; | |
| 47 | +// return; | |
| 48 | +// } | |
| 49 | +// [CNLiveShareImageManager pushWeChatMiniProgremWithMiniAppId:dic[@"id"] Path:dic[@"path"] mType:WXMiniProgramTypeRelease extMsg:nil extDic:nil]; | |
| 50 | + return; | |
| 51 | + } | |
| 52 | + if ([type isEqualToString:@"104"]) { | |
| 53 | + NSError *error; | |
| 54 | + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:[to dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingAllowFragments error:&error]; | |
| 55 | + NSString *spURL = @"cnlive://swan/"; | |
| 56 | + spURL = [spURL stringByAppendingString:dic[@"id"]]; | |
| 57 | +// [CNLiveBBASMModuleService openBBASMModule:spURL]; | |
| 58 | + return; | |
| 59 | + } | |
| 60 | + [[DSCnliveShopSDKManager sharedManager].skip skipType:type to:to shopType:shopType currentVC:controller]; | |
| 61 | + | |
| 62 | +} | |
| 63 | + | |
| 64 | +@end | ... | ... |
Example/Podfile
| ... | ... | @@ -6,6 +6,7 @@ source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' |
| 6 | 6 | source 'http://bj.gitlab.cnlive.com/DSIOSTeam/DSSpecRepos.git' |
| 7 | 7 | target 'CNLiveCServiceModule_Example' do |
| 8 | 8 | pod 'CNLiveCServiceModule', :path => '../' |
| 9 | + pod 'DSCnliveShopSDK' | |
| 9 | 10 | |
| 10 | 11 | target 'CNLiveCServiceModule_Tests' do |
| 11 | 12 | inherit! :search_paths | ... | ... |