Commit 478ad8487ecc28a31b097660f24280b87bec243b

Authored by yanglingyu
1 parent 25afb7ad

根据主工程交互修改

CNLiveCMineModule.podspec
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 Pod::Spec.new do |s| 9 Pod::Spec.new do |s|
10 s.name = 'CNLiveCMineModule' 10 s.name = 'CNLiveCMineModule'
11 - s.version = '0.1.2' 11 + s.version = '0.1.3'
12 s.summary = '网家家C端个人中心' 12 s.summary = '网家家C端个人中心'
13 13
14 # This description is used to generate tags and improve search results. 14 # This description is used to generate tags and improve search results.
CNLiveCMineModule/Classes/CNCSubMine/Model/CNBindingManageModel.h deleted 100644 → 0
1 -//  
2 -// CNBindingManageModel.h  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -  
9 -#import <Foundation/Foundation.h>  
10 -  
11 -//登录返回类型  
12 -typedef enum : NSUInteger {  
13 - CNLiveSendAuthRespWX,  
14 - CNLiveSendAuthRespQQ,  
15 - CNLiveSendAuthRespWB,  
16 - CNLiveSendAuthRespApple  
17 -} CNLiveSendAuthResp;  
18 -  
19 -NS_ASSUME_NONNULL_BEGIN  
20 -  
21 -@interface CNBindingManageModel : NSObject  
22 -@property (nonatomic, copy) NSString *title;  
23 -@property (nonatomic, copy) NSString *desc;  
24 -@property (nonatomic, copy) NSString *image;  
25 -@property (nonatomic, copy) NSString *isBinding;//是否绑定  
26 -  
27 -@property (nonatomic, copy) NSString *thirdPartyPlat;  
28 -@property (nonatomic, copy) NSString *thirdPartyId;  
29 -@property (nonatomic, assign) CNLiveSendAuthResp type;  
30 -  
31 -  
32 -@end  
33 -  
34 -@interface CNThreeLoginModel : NSObject  
35 -/*  
36 - mobile true string 手机号  
37 - countryCode true string 手机号国家码;中国为86  
38 - verificationCode true string 手机验证码  
39 - thirdPartyPlat true int 第三方平台编号 [platform : 1:sina 2:qq 3:weixin 4:renren]  
40 - thirdPartyId true string 第三方用户ID  
41 - [qq: 建议使用openid, wx: 建议使用unionid, sina: 建议使用idstr];  
42 - 注意:同一用户在登录Sp下不同app时,thirdPartyId必须相同  
43 -  
44 - frmId true string 渠道ID  
45 - clientPlat true string 客户端平台[i:IOS客户端,a:Android客户端, w: 网页]  
46 - nickName true string 用户昵称  
47 - gender false string 性别,m:男、f:女、n:未知  
48 - location false string 用户所在地  
49 - faceUrl false string 头像,约100*100  
50 - */  
51 -  
52 -@property (nonatomic, copy) NSString *countryName;  
53 -@property (nonatomic, copy) NSString *countryCode;  
54 -@property (nonatomic, copy) NSString *thirdPartyPlat;  
55 -@property (nonatomic, copy) NSString *thirdPartyId;  
56 -@property (nonatomic, copy) NSString *frmId;  
57 -  
58 -@property (nonatomic, copy) NSString *nickName;  
59 -@property (nonatomic, copy) NSString *gender;  
60 -@property (nonatomic, copy) NSString *location;  
61 -@property (nonatomic, copy) NSString *faceUrl;  
62 -  
63 -@property (nonatomic, assign) CNLiveSendAuthResp type;  
64 -  
65 -@end  
66 -  
67 -NS_ASSUME_NONNULL_END  
CNLiveCMineModule/Classes/CNCSubMine/Model/CNBindingManageModel.m deleted 100644 → 0
1 -//  
2 -// CNBindingManageModel.m  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -  
9 -#import "CNBindingManageModel.h"  
10 -  
11 -@implementation CNBindingManageModel  
12 -- (CNLiveSendAuthResp)type{  
13 - CNLiveSendAuthResp type = CNLiveSendAuthRespWX;  
14 -  
15 - if([self.thirdPartyPlat isEqualToString:@"1"]){  
16 - type = CNLiveSendAuthRespWB;  
17 -  
18 - }else if ([self.thirdPartyPlat isEqualToString:@"2"]){  
19 - type = CNLiveSendAuthRespQQ;  
20 -  
21 - }else if([self.thirdPartyPlat isEqualToString:@"3"]){  
22 - type = CNLiveSendAuthRespWX;  
23 -  
24 - }else if([self.thirdPartyPlat isEqualToString:@"5"]){  
25 - type = CNLiveSendAuthRespApple;  
26 -  
27 - }  
28 - return type;  
29 -  
30 -}  
31 -  
32 -@end  
33 -  
34 -@implementation CNThreeLoginModel  
35 -  
36 -- (CNLiveSendAuthResp)type{  
37 - CNLiveSendAuthResp type = CNLiveSendAuthRespWX;  
38 -  
39 - if([self.thirdPartyPlat isEqualToString:@"1"]){  
40 - type = CNLiveSendAuthRespWB;  
41 -  
42 - }else if ([self.thirdPartyPlat isEqualToString:@"2"]){  
43 - type = CNLiveSendAuthRespQQ;  
44 -  
45 - }else if([self.thirdPartyPlat isEqualToString:@"3"]){  
46 - type = CNLiveSendAuthRespWX;  
47 -  
48 - }else if([self.thirdPartyPlat isEqualToString:@"5"]){  
49 - type = CNLiveSendAuthRespApple;  
50 -  
51 - }  
52 - return type;  
53 -  
54 -}  
55 -  
56 -@end  
CNLiveCMineModule/Classes/CNCSubMine/Present/CNCSubMinePresent.h
@@ -7,11 +7,9 @@ @@ -7,11 +7,9 @@
7 7
8 #import <Foundation/Foundation.h> 8 #import <Foundation/Foundation.h>
9 #import "CNMySettingListModel.h" 9 #import "CNMySettingListModel.h"
10 -#import "CNBindingManageModel.h"  
11 10
12 NS_ASSUME_NONNULL_BEGIN 11 NS_ASSUME_NONNULL_BEGIN
13 typedef void(^RequestCompleted) (BOOL isSuccess, NSString *desc, NSString *score); 12 typedef void(^RequestCompleted) (BOOL isSuccess, NSString *desc, NSString *score);
14 -typedef void (^CNBindingResponseBlock)(BOOL isSuccess, CNBindingManageModel * _Nullable model, BOOL isBinding);  
15 typedef void (^CNBindingArrayBlock)(NSArray * _Nullable bindingData, NSArray * _Nullable unBindingData); 13 typedef void (^CNBindingArrayBlock)(NSArray * _Nullable bindingData, NSArray * _Nullable unBindingData);
16 typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseObject, NSError *error); 14 typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseObject, NSError *error);
17 @interface CNCSubMinePresent : NSObject 15 @interface CNCSubMinePresent : NSObject
@@ -59,29 +57,9 @@ typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseO @@ -59,29 +57,9 @@ typedef void (^CNLoginResponseBlock)(NSURLSessionTask *requestTask, id responseO
59 /// @param statue 状态 57 /// @param statue 状态
60 +(void)showWithScoreViewForScoreIntergal:(NSString *)scoreIntergal Statue:(BOOL)statue SuperView:(UIViewController *)superView; 58 +(void)showWithScoreViewForScoreIntergal:(NSString *)scoreIntergal Statue:(BOOL)statue SuperView:(UIViewController *)superView;
61 59
62 -/**  
63 - * @abstract 绑定/解除绑定  
64 - *  
65 - * @param model 模型  
66 - * @param block 回调  
67 - */  
68 -+ (void)requestModel:(CNBindingManageModel *)model block:(CNBindingResponseBlock)block;  
69 -  
70 -/**  
71 - * @abstract 获取绑定数据  
72 - *  
73 - * @param block 回调  
74 - */  
75 -+ (void)requestModels:(CNBindingArrayBlock)block;  
76 -  
77 -/**  
78 - * @abstract 三方登录  
79 - *  
80 - * @param type 三方类型  
81 - * @param model 模型  
82 - * @param block 回调  
83 - */  
84 -+ (void)thirdPartyLoginWithType:(CNLiveSendAuthResp)type model:(CNThreeLoginModel *)model block:(CNLoginResponseBlock)block; 60 +
  61 +
  62 +
85 @end 63 @end
86 64
87 NS_ASSUME_NONNULL_END 65 NS_ASSUME_NONNULL_END
CNLiveCMineModule/Classes/CNCSubMine/Present/CNCSubMinePresent.m
@@ -485,253 +485,4 @@ @@ -485,253 +485,4 @@
485 [mainView removeFromSuperview]; 485 [mainView removeFromSuperview];
486 }); 486 });
487 } 487 }
488 -+ (void)requestModel:(CNBindingManageModel *)model block:(CNBindingResponseBlock)block{  
489 - if([model.isBinding isEqualToString:@"1"]){  
490 - //解除绑定操作  
491 - [CNCSubMinePresent requestUnBindingModel:model block:^(BOOL isSuccess, CNBindingManageModel * _Nullable model, BOOL isBinding) {  
492 - block?block(isSuccess, model, isBinding):@"";  
493 - }];  
494 - }  
495 - else{  
496 - //绑定操作  
497 - [CNCSubMinePresent requestBindingModel:model block:^(BOOL isSuccess, CNBindingManageModel * _Nullable model, BOOL isBinding) {  
498 - block?block(isSuccess, model, isBinding):@"";  
499 - }];  
500 - }  
501 -}  
502 -  
503 -//绑定操作  
504 -+ (void)requestBindingModel:(CNBindingManageModel *)model block:(CNBindingResponseBlock)block{  
505 - weakself  
506 - [[CNLiveCMineService shareMineProtocol] requestBindingModel:[model mj_keyValues].copy block:^(CNBindingManageModel * _Nullable model) {  
507 - [weakSelf sendBindingModel:model block:block];  
508 - }];  
509 -}  
510 -  
511 -+ (void)sendBindingModel:(CNBindingManageModel *)model block:(CNBindingResponseBlock)block{  
512 - NSDictionary *params = @{  
513 - @"uid":CNUserShareModel.uid?CNUserShareModel.uid:@"",  
514 - @"thirdPartyPlat":model.thirdPartyPlat?model.thirdPartyPlat:@"",  
515 - @"thirdPartyId":model.thirdPartyId?model.thirdPartyId:@"",  
516 - @"token":CNUserShareModel.token?CNUserShareModel.token:@"",  
517 - @"clientPlat":@"i"};  
518 - [CNLiveNetworking setAllowRequestDefaultArgument:YES];  
519 - [CNLiveNetworking setupShowDataResult:NO];  
520 -  
521 - __weak typeof(self) weakSelf = self;  
522 - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNLoginBind3rdUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {  
523 - __strong typeof(weakSelf) strongSelf = weakSelf;  
524 - if(!strongSelf) return;  
525 -  
526 - if ([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"]) {  
527 - //绑定,并更新本地数据  
528 - CNBindingManageModel *bindingModel = [strongSelf updateBindingModel:model isBinding:@"1"];  
529 - block?block(YES, bindingModel, YES):@"";  
530 - }  
531 - else if([responseObject isKindOfClass:[NSDictionary class]]) {  
532 - [QMUITips showWithText:responseObject[@"errorMessage"] inView:AppKeyWindow hideAfterDelay:1.5];  
533 - block?block(NO, nil, NO):@"";  
534 - }  
535 - else{  
536 - [QMUITips showWithText:@"绑定失败" inView:AppKeyWindow hideAfterDelay:1.5];  
537 - block?block(NO, nil, NO):@"";  
538 - }  
539 -  
540 - }];  
541 -}  
542 -  
543 -//解除绑定操作  
544 -+ (void)requestUnBindingModel:(CNBindingManageModel *)model block:(CNBindingResponseBlock)block{  
545 - NSDictionary *params = @{  
546 - @"uid":CNUserShareModel.uid?CNUserShareModel.uid:@"",  
547 - @"thirdPartyPlat":model.thirdPartyPlat?model.thirdPartyPlat:@"",  
548 - @"thirdPartyId":model.thirdPartyId?model.thirdPartyId:@"",  
549 - @"token":CNUserShareModel.token?CNUserShareModel.token:@"",  
550 - @"clientPlat":@"i"};  
551 -  
552 - [CNLiveNetworking setAllowRequestDefaultArgument:YES];  
553 - [CNLiveNetworking setupShowDataResult:NO];  
554 -  
555 - __weak typeof(self) weakSelf = self;  
556 - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNLoginUnBind3rdUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {  
557 - __strong typeof(weakSelf) strongSelf = weakSelf;  
558 - if(!strongSelf) return;  
559 -  
560 - if ([responseObject isKindOfClass:[NSDictionary class]] && [responseObject[@"errorCode"] isEqualToString:@"0"]) {  
561 - //解除绑定,并更新本地数据  
562 - CNBindingManageModel *unbindingModel = [strongSelf updateBindingModel:model isBinding:@"0"];  
563 - block?block(YES, unbindingModel, NO):@"";  
564 - }  
565 - else if ([responseObject isKindOfClass:[NSDictionary class]]) {  
566 - [QMUITips showWithText:responseObject[@"errorMessage"] inView:AppKeyWindow hideAfterDelay:1.5];  
567 - block?block(NO, nil, NO):@"";  
568 - }  
569 - else{  
570 - [QMUITips showWithText:@"解除绑定失败" inView:AppKeyWindow hideAfterDelay:1.5];  
571 - block?block(NO, nil, NO):@"";  
572 - }  
573 -  
574 - }];  
575 -  
576 -}  
577 -  
578 -//改变绑定数据  
579 -+ (CNBindingManageModel *)updateBindingModel:(CNBindingManageModel *)model isBinding:(NSString *)isBinding{  
580 - if([isBinding isEqualToString:@"0"]){  
581 - //解除绑定  
582 - model.isBinding = @"0";  
583 - //微博  
584 - if([model.thirdPartyPlat isEqualToString:@"1"]){  
585 - CNUserShareModel.sinaUid = @"";  
586 -  
587 - }  
588 - //qq  
589 - else if([model.thirdPartyPlat isEqualToString:@"2"]){  
590 - CNUserShareModel.qqUid = @"";  
591 -  
592 - }  
593 - //微信  
594 - else if([model.thirdPartyPlat isEqualToString:@"3"]){  
595 - CNUserShareModel.wxUid = @"";  
596 -  
597 - }  
598 - //苹果  
599 - else if([model.thirdPartyPlat isEqualToString:@"5"]){  
600 - CNUserShareModel.appleUid = @"";  
601 -  
602 - }  
603 - [QMUITips showWithText:@"解除绑定成功" inView:AppKeyWindow hideAfterDelay:1.5];  
604 - return model;  
605 - }  
606 - else if ([isBinding isEqualToString:@"1"]){  
607 - //添加绑定  
608 - model.isBinding = @"1";  
609 - //微博  
610 - if([model.thirdPartyPlat isEqualToString:@"1"]){  
611 - CNUserShareModel.sinaUid = model.thirdPartyId;  
612 -  
613 - }  
614 - //qq  
615 - else if([model.thirdPartyPlat isEqualToString:@"2"]){  
616 - CNUserShareModel.qqUid = model.thirdPartyId;  
617 -  
618 - }  
619 - //微信  
620 - else if([model.thirdPartyPlat isEqualToString:@"3"]){  
621 - CNUserShareModel.wxUid = model.thirdPartyId;  
622 -  
623 - }  
624 - //苹果  
625 - else if([model.thirdPartyPlat isEqualToString:@"5"]){  
626 - CNUserShareModel.appleUid = model.thirdPartyId;  
627 -  
628 - }  
629 - [QMUITips showWithText:@"绑定成功" inView:AppKeyWindow hideAfterDelay:1.5];  
630 - return model;  
631 -  
632 - }  
633 - return nil;  
634 -  
635 -}  
636 -  
637 -//请求绑定数据  
638 -+ (void)requestModels:(CNBindingArrayBlock)block{  
639 - NSMutableArray *bindingData = [[NSMutableArray alloc] init];  
640 - NSMutableArray *unBindingData = [[NSMutableArray alloc] init];  
641 - CNBindingManageModel *tmodel = [[CNBindingManageModel alloc]init];  
642 - tmodel.title = @"手机号";  
643 - tmodel.image = @"c_mine_login_telephone";  
644 - if(CNUserShareModel.mobile&&![CNUserShareModel.mobile isEqualToString:@""]){  
645 - if (CNUserShareModel.mobile.length > 10) {  
646 - NSString *mobile = [CNUserShareModel.mobile stringByReplacingCharactersInRange:NSMakeRange(3, 4) withString:@"****"];  
647 - tmodel.desc = mobile;  
648 - }  
649 - tmodel.thirdPartyId = CNUserShareModel.qqUid;  
650 - tmodel.isBinding = @"1";  
651 - }else{  
652 - tmodel.desc = @"未绑定手机号";  
653 - tmodel.isBinding = @"0";  
654 - }  
655 - tmodel.thirdPartyPlat = @"10";  
656 - tmodel.thirdPartyId = CNUserShareModel.uid;  
657 - [bindingData addObject:tmodel];  
658 -  
659 - CNBindingManageModel *wmodel = [[CNBindingManageModel alloc]init];  
660 - wmodel.title = @"微信";  
661 - wmodel.image = @"c_mine_login_wechat";  
662 - wmodel.thirdPartyPlat = @"3";  
663 -  
664 - if(CNUserShareModel.wxUid&&![CNUserShareModel.wxUid isEqualToString:@""]){  
665 - wmodel.desc = @"已绑定微信";  
666 - wmodel.thirdPartyId = CNUserShareModel.wxUid;  
667 - wmodel.isBinding = @"1";  
668 - }else{  
669 - wmodel.desc = @"未绑定微信";  
670 - wmodel.isBinding = @"0";  
671 - }  
672 - [unBindingData addObject:wmodel];  
673 -  
674 - CNBindingManageModel *qmodel = [[CNBindingManageModel alloc]init];  
675 - qmodel.title = @"QQ";  
676 - qmodel.image = @"c_mine_login_qq";  
677 - qmodel.thirdPartyPlat = @"2";  
678 - if(CNUserShareModel.qqUid&&![CNUserShareModel.qqUid isEqualToString:@""]){  
679 - qmodel.desc = @"已绑定QQ";  
680 - qmodel.thirdPartyId = CNUserShareModel.qqUid;  
681 - qmodel.isBinding = @"1";  
682 - }else{  
683 - qmodel.desc = @"未绑定QQ";  
684 - qmodel.isBinding = @"0";  
685 - }  
686 - [unBindingData addObject:qmodel];  
687 -  
688 - CNBindingManageModel *smodel = [[CNBindingManageModel alloc]init];  
689 - smodel.title = @"微博";  
690 - smodel.image = @"c_mine_login_weibo";  
691 - smodel.thirdPartyPlat = @"1";  
692 - if(CNUserShareModel.sinaUid&&![CNUserShareModel.sinaUid isEqualToString:@""]){  
693 - smodel.desc = @"已绑定微博";  
694 - smodel.thirdPartyId = CNUserShareModel.sinaUid;  
695 - smodel.isBinding = @"1";  
696 - }else{  
697 - smodel.desc = @"未绑定微博";  
698 - smodel.isBinding = @"0";  
699 - }  
700 - [unBindingData addObject:smodel];  
701 - if (@available(iOS 13, *)) {  
702 - CNBindingManageModel *amodel = [[CNBindingManageModel alloc]init];  
703 - amodel.title = @"苹果账号";  
704 - amodel.image = @"c_mine_login_apple_icon";  
705 - amodel.thirdPartyPlat = @"5";  
706 - if(CNUserShareModel.appleUid&&![CNUserShareModel.appleUid isEqualToString:@""]){  
707 - amodel.desc = @"已绑定苹果账号";  
708 - amodel.thirdPartyId = CNUserShareModel.appleUid;  
709 - amodel.isBinding = @"1";  
710 - }else{  
711 - amodel.desc = @"未绑定苹果账号";  
712 - amodel.isBinding = @"0";  
713 - }  
714 - [unBindingData addObject:amodel];  
715 - }  
716 -  
717 - block?block(bindingData,unBindingData):@"";  
718 -}  
719 -  
720 -//三方登录  
721 -+ (void)thirdPartyLoginWithType:(CNLiveSendAuthResp)type model:(CNThreeLoginModel *)model block:(CNLoginResponseBlock)block{  
722 - NSDictionary *params = @{@"thirdPartyPlat":model.thirdPartyPlat?model.thirdPartyPlat:@"",  
723 - @"thirdPartyId":model.thirdPartyId?model.thirdPartyId:@"",  
724 - @"frmId":model.frmId?model.frmId:@"",  
725 - @"clientPlat":@"i"};  
726 - [CNLiveNetworking setAllowRequestDefaultArgument:YES];  
727 - [CNLiveNetworking setupShowDataResult:NO];  
728 -  
729 - [CNLiveNetworking requestNetworkWithMethod:CNLiveRequestMethodPOST URLString:CNLoginIn3rdForWJJUrl Param:params CacheType:CNLiveNetworkCacheTypeNetworkOnly CompletionBlock:^(NSURLSessionTask *requestTask, id responseObject, NSError *error) {  
730 - block?block(requestTask, responseObject, error):@"";  
731 -  
732 - }];  
733 -  
734 -  
735 -}  
736 -  
737 @end 488 @end
CNLiveCMineModule/Classes/CNCSubMine/View/CNBindingManageCell.h deleted 100644 → 0
1 -//  
2 -// CNBindingManageCell.h  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -  
9 -#import <UIKit/UIKit.h>  
10 -  
11 -NS_ASSUME_NONNULL_BEGIN  
12 -@class CNBindingManageModel;  
13 -#define kCNBindingManageCell @"CNBindingManageCell"  
14 -  
15 -@class CNBindingManageCell;  
16 -@protocol CNBindingManageCellDelegate <NSObject>  
17 -//isBinding YES 绑定操作 NO 解除绑定操作  
18 -- (void)clickedBindingButton:(CNBindingManageCell *)cell isBinding:(BOOL)isBinding;  
19 -- (void)jumpBingdingTel;  
20 -  
21 -@end  
22 -  
23 -@interface CNBindingManageCell : UITableViewCell  
24 -@property (nonatomic, strong) CNBindingManageModel *model;  
25 -@property (nonatomic, weak) id<CNBindingManageCellDelegate> delegate;  
26 -  
27 -@end  
28 -  
29 -NS_ASSUME_NONNULL_END  
CNLiveCMineModule/Classes/CNCSubMine/View/CNBindingManageCell.m deleted 100644 → 0
1 -//  
2 -// CNBindingManageCell.m  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -  
9 -#import "CNBindingManageCell.h"  
10 -#import "CNBindingManageModel.h"  
11 -#import "CNCSubMinePresent.h"  
12 -  
13 -@interface CNBindingManageCell()  
14 -@property (nonatomic, strong) UIImageView *icon;  
15 -@property (nonatomic, strong) UILabel *title;  
16 -@property (nonatomic, strong) UILabel *desc;  
17 -@property (nonatomic, strong) UIButton *manage;  
18 -@property (nonatomic, strong) UIView *line;  
19 -  
20 -@end  
21 -@implementation CNBindingManageCell  
22 -static NSInteger const margin = 15;  
23 -  
24 -- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {  
25 - self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];  
26 - if (self) {  
27 - self.contentView.backgroundColor = [UIColor whiteColor];  
28 - [self createSubViews];  
29 - }  
30 - return self;  
31 -}  
32 -- (void)setModel:(CNBindingManageModel *)model{  
33 - _model = model;  
34 - _icon.image = [CNLiveCMineService imageWithMineName:model.image];  
35 - _title.text = model.title;  
36 - _desc.text = model.desc;  
37 - if([model.isBinding isEqualToString:@"1"]){  
38 - _manage.backgroundColor = RGBOF(0xd9d9d9);  
39 - [_manage setTitle:@"已绑定" forState:UIControlStateNormal];  
40 -  
41 - }else{  
42 - _manage.backgroundColor = RGBOF(0x23d41e);  
43 - [_manage setTitle:@"未绑定" forState:UIControlStateNormal];  
44 -  
45 - }  
46 -  
47 -}  
48 -#pragma mark - setupUI  
49 -- (void)createSubViews {  
50 - [self.contentView addSubview:self.icon];  
51 - [self.contentView addSubview:self.title];  
52 - [self.contentView addSubview:self.desc];  
53 - [self.contentView addSubview:self.manage];  
54 - [self.contentView addSubview:self.line];  
55 -  
56 -}  
57 -  
58 -- (void)layoutSubviews {  
59 - [self.icon mas_makeConstraints:^(MASConstraintMaker *make) {  
60 - make.centerY.equalTo(self.contentView);  
61 - make.left.equalTo(self.contentView).offset(margin);  
62 - make.width.mas_equalTo(50);  
63 - make.height.mas_equalTo(50);  
64 - }];  
65 -  
66 - [self.manage mas_makeConstraints:^(MASConstraintMaker *make) {  
67 - make.centerY.equalTo(self.contentView);  
68 - make.right.equalTo(self.contentView.mas_right).offset(-margin);  
69 - make.width.mas_equalTo(70);  
70 - make.height.mas_equalTo(30);  
71 - }];  
72 -  
73 - [self.title mas_makeConstraints:^(MASConstraintMaker *make) {  
74 - make.top.equalTo(self.icon.mas_top);  
75 - make.left.equalTo(self.icon.mas_right).offset(margin);  
76 - make.right.equalTo(self.manage.mas_left).offset(-margin);  
77 - make.height.mas_equalTo(25);  
78 - }];  
79 -  
80 - [self.desc mas_makeConstraints:^(MASConstraintMaker *make) {  
81 - make.top.equalTo(self.title.mas_bottom);  
82 - make.left.equalTo(self.title.mas_left);  
83 - make.right.equalTo(self.title.mas_right);  
84 - make.height.mas_equalTo(25);  
85 - }];  
86 - [self.line mas_makeConstraints:^(MASConstraintMaker *make) {  
87 - make.bottom.equalTo(self.contentView.mas_bottom).offset(-0.5);  
88 - make.left.equalTo(self.contentView.mas_left);  
89 - make.right.equalTo(self.contentView.mas_right);  
90 - make.height.mas_equalTo(0.5);  
91 - }];  
92 -}  
93 -  
94 -- (void)awakeFromNib {  
95 - [super awakeFromNib];  
96 - // Initialization code  
97 -}  
98 -  
99 -- (void)setSelected:(BOOL)selected animated:(BOOL)animated {  
100 - [super setSelected:selected animated:animated];  
101 -  
102 - // Configure the view for the selected state  
103 -}  
104 -  
105 -#pragma mark - Lazy Loading  
106 -- (UIImageView *)icon {  
107 - if (!_icon) {  
108 - _icon = [[UIImageView alloc] init];  
109 - _icon.contentMode = UIViewContentModeScaleAspectFill;  
110 - _icon.layer.cornerRadius = 25;  
111 - _icon.layer.masksToBounds = YES;  
112 - }  
113 - return _icon;  
114 -}  
115 -- (UILabel *)title {  
116 - if (!_title) {  
117 - _title = [[UILabel alloc] init];  
118 - _title.textColor = RGBOF(0x333333);  
119 - _title.font = UIFontCNMake(16);//[UIFont fontWithName:@"PingFangSC-Regular" size:15];  
120 - _title.numberOfLines = 0;  
121 - }  
122 - return _title;  
123 -}  
124 -- (UILabel *)desc {  
125 - if (!_desc) {  
126 - _desc = [[UILabel alloc] init];  
127 - _desc.textColor = RGBOF(0x999999);  
128 - _desc.font = UIFontCNMake(12);//[UIFont fontWithName:@"PingFangSC-Regular" size:15];  
129 - _desc.numberOfLines = 0;  
130 - }  
131 - return _desc;  
132 -}  
133 -- (UIButton *)manage {  
134 - if (!_manage) {  
135 - _manage = [UIButton buttonWithType:UIButtonTypeCustom];  
136 - _manage.backgroundColor = RGBOF(0xd9d9d9);  
137 - [_manage setTitle:@"已绑定" forState:UIControlStateNormal];  
138 - [_manage setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];  
139 - _manage.titleLabel.font = UIFontCNMake(14);  
140 - _manage.layer.cornerRadius = 15;  
141 - _manage.layer.masksToBounds = YES;  
142 - [_manage addTarget:self action:@selector(manageDidClicked:) forControlEvents:UIControlEventTouchUpInside];  
143 - }  
144 - return _manage;  
145 -}  
146 -  
147 -- (UIView *)line {  
148 - if (!_line) {  
149 - _line = [[UIView alloc] init];  
150 - _line.backgroundColor = RGBOF(0xeeeeee);  
151 - }  
152 - return _line;  
153 -}  
154 -  
155 -#pragma mark - Action  
156 -- (void)manageDidClicked:(UIButton *)btn{  
157 - if([self.model.thirdPartyPlat isEqualToString:@"10"]){  
158 - if([self.model.isBinding isEqualToString:@"0"]){  
159 - if (self.delegate && [self.delegate respondsToSelector:@selector(jumpBingdingTel)]) {  
160 - [self.delegate jumpBingdingTel];  
161 - }  
162 - }  
163 - return;  
164 - }  
165 - if(![CNLiveNetworking isNetworking]){  
166 - [QMUITips showError:@"无法连接网络" inView:AppKeyWindow hideAfterDelay:1.5];  
167 - return ;  
168 - }  
169 - btn.userInteractionEnabled = NO;  
170 - if (self.delegate && [self.delegate respondsToSelector:@selector(clickedBindingButton:isBinding:)]) {  
171 - [self.delegate clickedBindingButton:self isBinding:![self.model.isBinding isEqualToString:@"1"]];  
172 - btn.userInteractionEnabled = YES;  
173 -  
174 - }  
175 -}  
176 -  
177 -  
178 -@end  
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNBindingManageViewController.h deleted 100644 → 0
1 -//  
2 -// CNBindingManageViewController.h  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -// 绑定管理  
9 -#import "CNCommonViewController.h"  
10 -  
11 -NS_ASSUME_NONNULL_BEGIN  
12 -  
13 -@interface CNBindingManageViewController : CNCommonViewController  
14 -  
15 -@end  
16 -  
17 -NS_ASSUME_NONNULL_END  
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNBindingManageViewController.m deleted 100644 → 0
1 -//  
2 -// CNBindingManageViewController.m  
3 -// CNLiveNetAdd  
4 -//  
5 -// Created by CNLive-zxw on 2019/9/10.  
6 -// Copyright © 2019 cnlive. All rights reserved.  
7 -//  
8 -  
9 -#import "CNBindingManageViewController.h"  
10 -#import "CNBindingManageHeaderView.h"  
11 -#import "CNBindingManageCell.h"  
12 -#import "CNBindingManageModel.h"  
13 -#import "CNCSubMinePresent.h"  
14 -#import "CNMineChangePhoneNumController.h"  
15 -#import <WechatOpenSDK/WXApi.h>  
16 -#import <TencentOpenAPI/TencentOAuth.h>  
17 -#import <Weibo_SDK/WeiboSDK.h>  
18 -  
19 -@interface CNBindingManageViewController ()<UITableViewDelegate, UITableViewDataSource,CNBindingManageCellDelegate>  
20 -@property (nonatomic, strong) UITableView *tableView;  
21 -@property (nonatomic, strong) NSArray *bindingData;  
22 -@property (nonatomic, strong) NSArray *unBindingData;  
23 -  
24 -@end  
25 -  
26 -@implementation CNBindingManageViewController  
27 -#pragma mark - CNBindingManageCellDelegate  
28 -- (void)jumpBingdingTel{  
29 - CNMineChangePhoneNumController *cpnVC = [[CNMineChangePhoneNumController alloc] init];  
30 - [[BaseAppDelegate sharedAppDelegate] pushViewController:cpnVC withBackTitle:@" "];  
31 -}  
32 -- (void)clickedBindingButton:(CNBindingManageCell *)cell isBinding:(BOOL)isBinding{  
33 - if(isBinding){  
34 - //绑定操作  
35 - [self requestBindingManage:cell.model];  
36 -  
37 - }else{  
38 - //解除绑定操作  
39 - UIAlertController *actionAlert1 = [UIAlertController alertControllerWithTitle:@"确定解除绑定?" message:nil preferredStyle:UIAlertControllerStyleAlert];  
40 -  
41 - UIAlertAction *action1 = [UIAlertAction actionWithTitle:@"取消" style:UIAlertActionStyleDefault handler:NULL];  
42 - __weak typeof(self) weakSelf = self;  
43 - UIAlertAction *action2 = [UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {  
44 - __strong typeof(weakSelf) strongSelf = weakSelf;  
45 - if(!strongSelf) return;  
46 - [strongSelf requestBindingManage:cell.model];  
47 -  
48 - }];  
49 - [action1 setValue:RGBOF(0x23D41E) forKey:@"_titleTextColor"];  
50 - [action2 setValue:RGBOF(0x23D41E) forKey:@"_titleTextColor"];  
51 -  
52 - [actionAlert1 addAction:action1];  
53 - [actionAlert1 addAction:action2];  
54 - [self presentViewController:actionAlert1 animated:YES completion:nil];  
55 - }  
56 -  
57 -}  
58 -- (void)requestBindingManage:(CNBindingManageModel *)model{  
59 - switch (model.type) {  
60 - case CNLiveSendAuthRespWX:  
61 - {  
62 - if(![WXApi isWXAppInstalled]){  
63 - [QMUITips showWithText:@"未安装微信" inView:self.view hideAfterDelay:1.5];  
64 - return;  
65 - }  
66 - }  
67 - break;  
68 - case CNLiveSendAuthRespQQ:  
69 - {  
70 - if(![TencentOAuth iphoneQQInstalled]){  
71 - [QMUITips showWithText:@"未安装QQ" inView:self.view hideAfterDelay:1.5];  
72 - return;  
73 - }  
74 - }  
75 - break;  
76 - case CNLiveSendAuthRespWB:  
77 - {  
78 - if(![WeiboSDK isWeiboAppInstalled]){  
79 - [QMUITips showWithText:@"未安装微博" inView:self.view hideAfterDelay:1.5];  
80 - return;  
81 - }  
82 - }  
83 - break;  
84 - case CNLiveSendAuthRespApple:  
85 - {  
86 - }  
87 - break;  
88 - }  
89 - __weak typeof(self) weakSelf = self;  
90 - [CNCSubMinePresent requestModel:model block:^(BOOL isSuccess, CNBindingManageModel * _Nullable model, BOOL isBinding) {  
91 - __strong typeof(weakSelf) strongSelf = weakSelf;  
92 - if(!strongSelf) return;  
93 - if(isSuccess){  
94 - [strongSelf loadData];  
95 -  
96 - }  
97 -  
98 - }];  
99 -}  
100 -#pragma mark - Data  
101 -- (void)loadData{  
102 - __weak typeof(self) weakSelf = self;  
103 - [CNCSubMinePresent requestModels:^(NSArray * _Nullable bindingData, NSArray * _Nullable unBindingData) {  
104 - __strong typeof(weakSelf) strongSelf = weakSelf;  
105 - if(!strongSelf) return;  
106 - strongSelf.bindingData = bindingData;  
107 - strongSelf.unBindingData = unBindingData;  
108 - [strongSelf.tableView reloadData];  
109 - }];  
110 -  
111 -}  
112 -- (void)viewDidAppear:(BOOL)animated {  
113 - [super viewDidAppear:animated];  
114 - [self loadData];  
115 -}  
116 -- (void)viewDidLoad {  
117 - [super viewDidLoad];  
118 - // Do any additional setup after loading the view.  
119 - self.view.backgroundColor = RGBOF(0xf4f4f4);  
120 - self.title = @"绑定管理";  
121 - if (@available(iOS 11.0, *)) {  
122 - self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;  
123 - } else {  
124 - self.automaticallyAdjustsScrollViewInsets = NO;  
125 - }  
126 - [self createUI];  
127 -  
128 -}  
129 -  
130 -- (void)createUI{  
131 - [self.view addSubview:self.tableView];  
132 -  
133 -}  
134 -  
135 -- (void)viewDidLayoutSubviews {  
136 - [super viewDidLayoutSubviews];  
137 - [_tableView mas_makeConstraints:^(MASConstraintMaker *make) {  
138 - make.top.equalTo(self.view.mas_top).with.offset(kVerticalStatusHeight+44);  
139 - make.left.equalTo(self.view.mas_left).with.offset(0);  
140 - make.right.equalTo(self.view.mas_right).with.offset(-0);  
141 - make.bottom.equalTo(self.view.mas_bottom).with.offset(-0);  
142 -  
143 - }];  
144 -  
145 -}  
146 -  
147 -#pragma mark - UITableViewDataSource  
148 -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {  
149 - return 2;  
150 -  
151 -}  
152 -  
153 -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {  
154 - if(section == 0){  
155 - return self.bindingData.count;  
156 -  
157 - }else if(section == 1){  
158 - return self.unBindingData.count;  
159 -  
160 - }else{  
161 - return 0;  
162 - }  
163 -  
164 -}  
165 -  
166 -- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {  
167 - return 80;  
168 -  
169 -}  
170 -  
171 -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {  
172 - CNBindingManageCell *cell = [tableView dequeueReusableCellWithIdentifier:kCNBindingManageCell forIndexPath:indexPath];  
173 - cell.selectionStyle = UITableViewCellSelectionStyleNone;  
174 - cell.delegate = self;  
175 - if(indexPath.section == 0){  
176 - if(self.bindingData.count > 0){  
177 - cell.model = self.bindingData[indexPath.row];  
178 - }  
179 -  
180 - }else if(indexPath.section == 1){  
181 - if(self.unBindingData.count > 0){  
182 - cell.model = self.unBindingData[indexPath.row];  
183 - }  
184 - }  
185 - return cell;  
186 -  
187 -}  
188 -  
189 -- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{  
190 - return 40.0;  
191 -  
192 -}  
193 -- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{  
194 - return 0.0000001f;  
195 -  
196 -}  
197 -  
198 -- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {  
199 - NSArray *array = @[@"您已绑定网家家手机号账号", @"其他绑定方式"];  
200 - CNBindingManageHeaderView *header = [tableView dequeueReusableHeaderFooterViewWithIdentifier:kCNBindingManageHeaderView];  
201 - header.text = array[section];  
202 - return header;  
203 -  
204 -}  
205 -  
206 -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{  
207 -  
208 -  
209 -}  
210 -  
211 -/*  
212 - #pragma mark - Navigation  
213 -  
214 - // In a storyboard-based application, you will often want to do a little preparation before navigation  
215 - - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {  
216 - // Get the new view controller using [segue destinationViewController].  
217 - // Pass the selected object to the new view controller.  
218 - }  
219 - */  
220 -  
221 -#pragma mark - Lazy loading  
222 -- (UITableView *)tableView {  
223 - if (!_tableView) {  
224 - _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped];  
225 - _tableView.backgroundColor = RGBOF(0xf4f4f4);  
226 - _tableView.delegate = self;  
227 - _tableView.dataSource = self;  
228 - _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;  
229 - _tableView.showsVerticalScrollIndicator = NO;  
230 - _tableView.showsHorizontalScrollIndicator = NO;  
231 - _tableView.estimatedRowHeight = 0;  
232 - _tableView.estimatedSectionFooterHeight = 0;  
233 - _tableView.estimatedSectionHeaderHeight = 0;  
234 - [_tableView registerClass:[CNBindingManageCell class] forCellReuseIdentifier:kCNBindingManageCell];  
235 - [_tableView registerClass:[CNBindingManageHeaderView class] forHeaderFooterViewReuseIdentifier:kCNBindingManageHeaderView];  
236 -  
237 - }  
238 - return _tableView;  
239 -}  
240 -  
241 -@end  
CNLiveCMineModule/Classes/CNCSubMine/ViewController/CNMineSettingVC.m
@@ -9,7 +9,6 @@ @@ -9,7 +9,6 @@
9 #import "CNMySettingListModel.h" 9 #import "CNMySettingListModel.h"
10 #import "CNMineSettingCell.h" 10 #import "CNMineSettingCell.h"
11 #import "CNMineChangePhoneNumController.h" 11 #import "CNMineChangePhoneNumController.h"
12 -#import "CNBindingManageViewController.h"  
13 #import "CNFontSettingController.h" 12 #import "CNFontSettingController.h"
14 #import "CNPrivacyViewController.h" 13 #import "CNPrivacyViewController.h"
15 #import "CNMineAccountManageController.h" 14 #import "CNMineAccountManageController.h"
@@ -177,8 +176,7 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;; @@ -177,8 +176,7 @@ static NSString *settingListCellId = @&quot;settingListCellId&quot;;
177 [[BaseAppDelegate sharedAppDelegate] pushViewController:cpnVC withBackTitle:@" "]; 176 [[BaseAppDelegate sharedAppDelegate] pushViewController:cpnVC withBackTitle:@" "];
178 }else if (indexPath.row == 1){ 177 }else if (indexPath.row == 1){
179 //绑定管理 178 //绑定管理
180 - CNBindingManageViewController *vc = [[CNBindingManageViewController alloc] init];  
181 - [[BaseAppDelegate sharedAppDelegate] pushViewController:vc]; 179 + [[CNLiveCMineService shareMineProtocol] pushCMineContentForCMainPlatWithType:26 param:@{} contentVC:self];
182 }else if (indexPath.row == 2){ 180 }else if (indexPath.row == 2){
183 //帮助与反馈 181 //帮助与反馈
184 [CNLiveCMineService pushCMineIWebVCParam:@{@"path":@"bzfk",@"urlStr":@"/cnhf.html"} CurrentVC:self]; 182 [CNLiveCMineService pushCMineIWebVCParam:@{@"path":@"bzfk",@"urlStr":@"/cnhf.html"} CurrentVC:self];
CNLiveCMineModule/Classes/CNLiveCMineProtocol.h
@@ -7,7 +7,6 @@ @@ -7,7 +7,6 @@
7 7
8 #import <Foundation/Foundation.h> 8 #import <Foundation/Foundation.h>
9 #import "CNLiveCMineInteViewModel.h" 9 #import "CNLiveCMineInteViewModel.h"
10 -#import "CNBindingManageModel.h"  
11 #import "CNOrderList.h" 10 #import "CNOrderList.h"
12 typedef NS_ENUM(NSUInteger , CNLiveMobileType) { 11 typedef NS_ENUM(NSUInteger , CNLiveMobileType) {
13 CNLiveMobileTypeRegisen, //获取短信验证码 12 CNLiveMobileTypeRegisen, //获取短信验证码
@@ -73,7 +72,7 @@ NS_ASSUME_NONNULL_BEGIN @@ -73,7 +72,7 @@ NS_ASSUME_NONNULL_BEGIN
73 - (void)sendMessageWithCodeType:(CNLiveMobileType) type mobile:(NSString *)pNumber contryCode:(NSString *)contryCode verificationCode:(NSString *)verifiCode success:(void(^)(id result))success failure:(void(^)(NSDictionary *errorDic))failure; 72 - (void)sendMessageWithCodeType:(CNLiveMobileType) type mobile:(NSString *)pNumber contryCode:(NSString *)contryCode verificationCode:(NSString *)verifiCode success:(void(^)(id result))success failure:(void(^)(NSDictionary *errorDic))failure;
74 73
75 /// 交互跳转 74 /// 交互跳转
76 -/// @param type 跳转类型1.协议信息h5页面 2.我的视频 3.生活圈 4付费记录 5.电商订单 6资质信息 7听见中国 8扫描二维码 9设置背景图片 10用户信息页 11通信录黑名单 12活动h5页面 13小家音响页面跳转 14通讯录界面 15点播页面 16聊天界面 17达人主页 18我的家园 19我的工会 20我的社区 21我的礼盒 22我的话题 23赛事活动 24徒步记录 25路径工具 75 +/// @param type 跳转类型1.协议信息h5页面 2.我的视频 3.生活圈 4付费记录 5.电商订单 6资质信息 7听见中国 8扫描二维码 9设置背景图片 10用户信息页 11通信录黑名单 12活动h5页面 13小家音响页面跳转 14通讯录界面 15点播页面 16聊天界面 17达人主页 18我的家园 19我的工会 20我的社区 21我的礼盒 22我的话题 23赛事活动 24徒步记录 25路径工具 26第三方绑定
77 /// @param param 跳转传参 76 /// @param param 跳转传参
78 - (void)pushCMineContentForCMainPlatWithType:(NSInteger)type param:(NSDictionary *)param contentVC:(UIViewController *)contetVC; 77 - (void)pushCMineContentForCMainPlatWithType:(NSInteger)type param:(NSDictionary *)param contentVC:(UIViewController *)contetVC;
79 78
@@ -84,14 +83,6 @@ NS_ASSUME_NONNULL_BEGIN @@ -84,14 +83,6 @@ NS_ASSUME_NONNULL_BEGIN
84 /// @param completerBlock 成功 83 /// @param completerBlock 成功
85 - (void)chooseRequestWithResponseObject:(id)responseObject Error:(NSError *)error CompleterBlock:(void(^)(id responseObject,NSInteger errorCode))completerBlock; 84 - (void)chooseRequestWithResponseObject:(id)responseObject Error:(NSError *)error CompleterBlock:(void(^)(id responseObject,NSInteger errorCode))completerBlock;
86 85
87 -/**  
88 - * @abstract 绑定/解除绑定  
89 - *  
90 - * @param param 参数  
91 - * @param block 回调  
92 - */  
93 -- (void)requestBindingModel:(NSDictionary *)param block:(void (^)(CNBindingManageModel * _Nullable model))block;  
94 -  
95 /// 清除缓存 86 /// 清除缓存
96 - (void)clearMemories; 87 - (void)clearMemories;
97 ///金币下落声音判断 88 ///金币下落声音判断
README.md
1 # CNLiveCMineModule 1 # CNLiveCMineModule
2 2
  3 +本地验证
  4 + pod lib lint --allow-warnings --no-clean --use-libraries --skip-import-validation --sources=http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git,https://github.com/CocoaPods/Specs.git,http://bj.gitlab.cnlive.com/DSIOSTeam/DSSpecRepos.git --verbose
  5 +
  6 + 本地+远端
  7 + pod spec lint --allow-warnings --no-clean --use-libraries --skip-import-validation --sources=http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git,https://github.com/CocoaPods/Specs.git,http://bj.gitlab.cnlive.com/DSIOSTeam/DSSpecRepos.git
  8 + 推库
  9 + pod repo push CNLiveRepos CNLiveCMineModule.podspec --allow-warnings --use-libraries --skip-import-validation --sources=http://bj.gitlab.cnlive.com/ios-team/CNLiveRepos.git,https://github.com/CocoaPods/Specs.git,http://bj.gitlab.cnlive.com/DSIOSTeam/DSSpecRepos.git
  10 +
3 [![CI Status](https://img.shields.io/travis/杨苓玉/CNLiveCMineModule.svg?style=flat)](https://travis-ci.org/杨苓玉/CNLiveCMineModule) 11 [![CI Status](https://img.shields.io/travis/杨苓玉/CNLiveCMineModule.svg?style=flat)](https://travis-ci.org/杨苓玉/CNLiveCMineModule)
4 [![Version](https://img.shields.io/cocoapods/v/CNLiveCMineModule.svg?style=flat)](https://cocoapods.org/pods/CNLiveCMineModule) 12 [![Version](https://img.shields.io/cocoapods/v/CNLiveCMineModule.svg?style=flat)](https://cocoapods.org/pods/CNLiveCMineModule)
5 [![License](https://img.shields.io/cocoapods/l/CNLiveCMineModule.svg?style=flat)](https://cocoapods.org/pods/CNLiveCMineModule) 13 [![License](https://img.shields.io/cocoapods/l/CNLiveCMineModule.svg?style=flat)](https://cocoapods.org/pods/CNLiveCMineModule)