Browse Source

1.创建联网文件

huangxiaodong 2 years ago
parent
commit
25948ef780

+ 16 - 0
创维盒子/双子星云手机.xcodeproj/project.pbxproj

@@ -138,6 +138,8 @@
 		18FCE5452AD136FF0020F623 /* ShortcutManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FCE5432AD136FF0020F623 /* ShortcutManager.m */; };
 		18FCE5482AD15E750020F623 /* PlayerViewController+AppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 18FCE5462AD15E730020F623 /* PlayerViewController+AppDelegate.h */; };
 		18FCE5492AD15E750020F623 /* PlayerViewController+AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 18FCE5472AD15E750020F623 /* PlayerViewController+AppDelegate.m */; };
+		6B3F96342AD2A15A008E349E /* netWorkManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 6B3F96322AD2A15A008E349E /* netWorkManager.h */; };
+		6B3F96352AD2A15A008E349E /* netWorkManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B3F96332AD2A15A008E349E /* netWorkManager.m */; };
 		6C21BF39CEECF8E81BD97788 /* libPods-双子星云手机Tests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 16C83602E592F43A82A92B3E /* libPods-双子星云手机Tests.a */; };
 		82762E13327622CA8A8512E6 /* libPods-隐私保护-双子星云手机UITests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A7C795CAC690A410AE1E306 /* libPods-隐私保护-双子星云手机UITests.a */; };
 		A00221DB27EAFF4A00E45F78 /* HWAddBookmarkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A00221D927EAFF4A00E45F78 /* HWAddBookmarkViewController.m */; };
@@ -423,6 +425,8 @@
 		30A0956AAA5C7A03B5DB1B27 /* libPods-隐私保护.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-隐私保护.a"; sourceTree = BUILT_PRODUCTS_DIR; };
 		34FDFD4EDCAAF106290BB4FC /* Pods-隐私保护.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-隐私保护.debug.xcconfig"; path = "Target Support Files/Pods-隐私保护/Pods-隐私保护.debug.xcconfig"; sourceTree = "<group>"; };
 		5A7C795CAC690A410AE1E306 /* libPods-隐私保护-双子星云手机UITests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-隐私保护-双子星云手机UITests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
+		6B3F96322AD2A15A008E349E /* netWorkManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = netWorkManager.h; sourceTree = "<group>"; };
+		6B3F96332AD2A15A008E349E /* netWorkManager.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = netWorkManager.m; sourceTree = "<group>"; };
 		71D630B0FBD97501D316E4AB /* Pods-隐私保护.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-隐私保护.release.xcconfig"; path = "Target Support Files/Pods-隐私保护/Pods-隐私保护.release.xcconfig"; sourceTree = "<group>"; };
 		86FBD9FD629A5194B7C58D9F /* Pods-双子星云手机-双子星云手机UITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-双子星云手机-双子星云手机UITests.debug.xcconfig"; path = "Target Support Files/Pods-双子星云手机-双子星云手机UITests/Pods-双子星云手机-双子星云手机UITests.debug.xcconfig"; sourceTree = "<group>"; };
 		A00221D827EAFF4A00E45F78 /* HWAddBookmarkViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HWAddBookmarkViewController.h; sourceTree = "<group>"; };
@@ -951,6 +955,15 @@
 			name = Frameworks;
 			sourceTree = "<group>";
 		};
+		6B3F96312AD2A0FA008E349E /* netWork */ = {
+			isa = PBXGroup;
+			children = (
+				6B3F96322AD2A15A008E349E /* netWorkManager.h */,
+				6B3F96332AD2A15A008E349E /* netWorkManager.m */,
+			);
+			path = netWork;
+			sourceTree = "<group>";
+		};
 		A003F69D27D841C800715CBF /* Base */ = {
 			isa = PBXGroup;
 			children = (
@@ -1207,6 +1220,7 @@
 		A02FF69827D7054200D59D3F /* 双子星云手机 */ = {
 			isa = PBXGroup;
 			children = (
+				6B3F96312AD2A0FA008E349E /* netWork */,
 				183AE6812A8C9ACA00B11CB0 /* CloudPlayer */,
 				183AE5DD2A89CD3C00B11CB0 /* SuperModel */,
 				183AE67F2A8C6B1200B11CB0 /* startImage.png */,
@@ -1310,6 +1324,7 @@
 				18C4754F2A8E0DB5006129C0 /* MySetViewController.h in Headers */,
 				18FCE53F2AD136670020F623 /* PlayerViewController+TouchPointXD.h in Headers */,
 				18FCE53E2AD136670020F623 /* PlayerViewController+AdjustBtnFrame.h in Headers */,
+				6B3F96342AD2A15A008E349E /* netWorkManager.h in Headers */,
 				184C8ADD2A949DBD00F26650 /* HWVersionModel.h in Headers */,
 				186820212AB98600005702A6 /* QRCodeScanViewController.h in Headers */,
 				18FCE5482AD15E750020F623 /* PlayerViewController+AppDelegate.h in Headers */,
@@ -1705,6 +1720,7 @@
 				18A909992ABC4A3300E6D2BE /* ComontAlretViewController.m in Sources */,
 				18FCE5402AD136670020F623 /* PlayerViewController+TouchPointXD.m in Sources */,
 				18E5572C2A3C6127005CC84B /* ForbidMenuTextField.m in Sources */,
+				6B3F96352AD2A15A008E349E /* netWorkManager.m in Sources */,
 				A031DD7127EC34E500909527 /* HWBookmarkHeader.m in Sources */,
 				A003F6D227D8425C00715CBF /* HWDataManager.m in Sources */,
 				18C475502A8E0DB5006129C0 /* MySetViewController.m in Sources */,

+ 35 - 0
创维盒子/双子星云手机/netWork/netWorkManager.h

@@ -0,0 +1,35 @@
+//
+//  netWorkManager.h
+//  隐私保护
+//
+//  Created by xd h on 2023/10/8.
+//
+
+#import <Foundation/Foundation.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+
+/**
+ *  成功请求Block返回的字典
+ */
+typedef void (^netWork_Success) (id responseObject);
+
+/**
+ *  失败Block返回
+ */
+typedef void (^netWork_Faild) (NSError *error);
+
+@interface netWorkManager : NSObject
+
++(netWorkManager *)shareInstance;
+
+#pragma mark  afnetwork  post 请求
+- (void)CommonPostCallBackCode:(NSString*)code  Parameters:(NSDictionary*)dict success:(netWork_Success)success failure:(netWork_Faild)failure;
+
+#pragma mark afnetwork  get 请求
+- (void)CommonGetWithCallBackCode:(NSString *)code Parameters:(NSDictionary *_Nullable)dic success:(netWork_Success)success failure:(netWork_Faild)faildStr;
+
+@end
+
+NS_ASSUME_NONNULL_END

+ 221 - 0
创维盒子/双子星云手机/netWork/netWorkManager.m

@@ -0,0 +1,221 @@
+//
+//  netWorkManager.m
+//  隐私保护
+//
+//  Created by xd h on 2023/10/8.
+//
+
+#import "netWorkManager.h"
+#import "AFNetworkReachabilityManager.h"
+#import "AFHTTPSessionManager.h"
+
+
+@interface netWorkManager ()
+{
+    AFHTTPSessionManager *manager;
+    NSString *mCloudService;
+    //NSString *mRequstAPI;
+
+}
+
+@end
+
+
+@implementation netWorkManager
+
+static netWorkManager *Game_NetWorkShareInstance = nil;
++(netWorkManager *)shareInstance;
+{
+    static dispatch_once_t onceToken;
+    
+    dispatch_once(&onceToken, ^{
+        Game_NetWorkShareInstance = [[netWorkManager alloc]init];
+        
+    });
+    
+    return Game_NetWorkShareInstance;
+}
+
+- (id)init
+{
+    self = [super init];
+    
+    if (self) {
+        [self initManager];
+    }
+    
+    return self;
+}
+
+- (void)initManager
+{
+    mCloudService = @"http//....";
+   
+    
+    if ([mCloudService rangeOfString:@"https"].location != NSNotFound)
+    {
+        manager = [[AFHTTPSessionManager manager] initWithBaseURL:[NSURL URLWithString:mCloudService]];
+    }
+    else
+    {
+        manager = [AFHTTPSessionManager manager];
+    }
+    
+    
+    manager.requestSerializer = [AFJSONRequestSerializer serializer];
+    manager.responseSerializer = [AFJSONResponseSerializer serializer];
+    [manager.requestSerializer setHTTPShouldHandleCookies:NO];
+    [manager.requestSerializer setHTTPShouldUsePipelining:NO];
+    manager.responseSerializer.acceptableContentTypes  =  [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript", @"text/html", @"text/plain",@"application/xml",@"image/png", @"audio/aac", @"text/x-vcard",nil];
+    
+    manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet setWithObjects:@"GET", @"HEAD", nil];
+    // 请求头里添加版本号
+    //[manager.requestSerializer setValue:@"1.0" forHTTPHeaderField:@"rc-sdk"];
+    //[manager.requestSerializer setValue:@"1" forHTTPHeaderField:@"rc-platform"]; //iOS 1 安卓0
+    
+//    NSString *version = [NSString stringWithFormat:@"v%@", [IPhoneInfoAndToolsManager appVersion]];
+//    NSString *uuid    = [IPhoneInfoAndToolsManager phoneDeviceUuid];
+//    [manager.requestSerializer setValue:version forHTTPHeaderField:@"versionName"];
+//    [manager.requestSerializer setValue:uuid forHTTPHeaderField:@"devicesId"];
+//    [manager.requestSerializer setValue:@"4" forHTTPHeaderField:@"client"];
+    
+    if ([mCloudService rangeOfString:@"https"].location != NSNotFound)
+    {
+        //[manager setSecurityPolicy:[self customSecurityPolicy]];
+    }
+    
+    // 客户端是否信任非法证书
+//    manager.securityPolicy.allowInvalidCertificates = YES;
+//     // 是否在证书域字段中验证域名
+//    [manager.securityPolicy setValidatesDomainName:NO];
+    
+    manager.securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
+//    manager.securityPolicy.allowInvalidCertificates = YES; //还是必须设成YES
+    
+    // 设置超时时间(设置有效)
+    //[manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];
+    manager.requestSerializer.timeoutInterval = 15;
+    //[manager.requestSerializer didChangeValueForKey:@"timeoutInterval"];
+    
+}
+
+
+#pragma - mark 证书相关
+//- (AFSecurityPolicy*)customSecurityPolicy
+//{
+//    // /先导入证书
+//    NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"ca" ofType:@"cer"];//证书的路径
+//
+//    if ([@"https://client.androidscloud.com" isEqualToString:RC_Game_SDK_CloudService])
+//    {
+//        cerPath = [[NSBundle mainBundle] pathForResource:@"release" ofType:@"cer"];//证书的路径
+//    }
+//
+//
+//    NSData *certData = [NSData dataWithContentsOfFile:cerPath];
+//
+//    // AFSSLPinningModeCertificate 使用证书验证模式、、、//AFSSLPinningModeNone  不使用SSLPinning  //AFSSLPinningModeCertificate  使用SSLPinning
+//    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];
+//
+//    if ([@"https://test.androidscloud.com" isEqualToString:RC_Game_SDK_CloudService])
+//    {
+//        securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeNone];
+//    }
+//
+//
+//    // allowInvalidCertificates 是否允许无效证书(也就是自建的证书),默认为NO
+//    // 如果是需要验证自建证书,需要设置为YES
+//    securityPolicy.allowInvalidCertificates = YES;
+//
+//    //validatesDomainName 是否需要验证域名,默认为YES;
+//    //假如证书的域名与你请求的域名不一致,需把该项设置为NO;如设成NO的话,即服务器使用其他可信任机构颁发的证书,也可以建立连接,这个非常危险,建议打开。
+//    //置为NO,主要用于这种情况:客户端请求的是子域名,而证书上的是另外一个域名。因为SSL证书上的域名是独立的,假如证书上注册的域名是www.google.com,那么mail.google.com是无法验证通过的;当然,有钱可以注册通配符的域名*.google.com,但这个还是比较贵的。
+//    //如置为NO,建议自己添加对应域名的校验逻辑。
+//    securityPolicy.validatesDomainName = NO;
+//
+//    securityPolicy.pinnedCertificates = [[NSSet alloc] initWithObjects:certData, nil];
+//
+//    return securityPolicy;
+//}
+
+
+
+#pragma mark  afnetwork  post 请求
+- (void)CommonPostCallBackCode:(NSString*)code  Parameters:(NSDictionary*)dict success:(netWork_Success)success failure:(netWork_Faild)failure
+{
+    
+    NSString *curServer = @"";// RC_Game_SDK_CloudService;
+    NSString *customServer = @"";//[RCGameTool getCustomServerUrl];
+    
+    if (customServer && customServer.length >0 ) {
+        curServer = customServer;
+    }
+    
+    HLog(@"地址:%@ \n接口名称:%@,\n 参数:%@\n",curServer,code,dict);
+    
+    NSString *url = [NSString stringWithFormat:@"%@%@",curServer,code];
+    
+    [manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
+    
+    if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
+    {// 无网络状态
+        NSDictionary *responseObject = @{@"code" : @(-999), @"msg" : @"当前网络不可用", @"data" : @""};
+        mainBlock(^{
+            success(responseObject);
+        });
+        return;
+    }
+    
+    
+    [manager POST:url parameters:dict progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
+        
+        HLog(@"接口名称:%@ 接口返回:%@,\n ",code,responseObject);
+        
+        success(responseObject);
+        
+        
+    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id  _Nonnull responseObject) {
+        
+        failure(error);
+        HLog(@"%@", error);
+    }];
+}
+
+
+#pragma mark afnetwork  get 请求
+- (void)CommonGetWithCallBackCode:(NSString *)code Parameters:(NSDictionary *_Nullable)dic success:(netWork_Success)success failure:(netWork_Faild)faildStr
+{
+    
+    NSString *curServer = @"";//RC_Game_SDK_CloudService;
+    NSString *customServer = @"";//[RCGameTool getCustomServerUrl];
+    
+    if (customServer && customServer.length >0 ) {
+        curServer = customServer;
+    }
+    
+
+    NSString *url = [NSString stringWithFormat:@"%@%@",curServer,code];
+    
+    if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == AFNetworkReachabilityStatusNotReachable)
+    {// 无网络状态
+        NSDictionary *responseObject = @{@"status" : @(-999), @"msg" : @"当前网络不可用", @"data" : @""};
+        success(responseObject);
+        return;
+    }
+    
+    HLog(@"地址:%@%@,\n 参数:%@\n",curServer,code,dic);
+    
+    [manager GET:url parameters:dic progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
+        
+        
+        HLog(@"接口名称:%@,返回:%@,\n ",code,responseObject);
+        success(responseObject);
+        
+    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error, id  _Nonnull responseObject) {
+        
+        faildStr(error);
+        HLog(@"%@", error);
+    }];
+}
+
+@end