Demo/Demo/EZOpenSDKDemo.xcodeproj/project.pbxproj
@@ -317,7 +317,7 @@ 0D8CF36B1BDF1ABA00A50266 = { CreatedOnToolsVersion = 7.1; DevelopmentTeam = BVTA78PRYA; ProvisioningStyle = Automatic; ProvisioningStyle = Manual; SystemCapabilities = { com.apple.AccessWiFi = { enabled = 0; @@ -576,7 +576,7 @@ CODE_SIGN_ENTITLEMENTS = EZOpenSDKDemo/EZOpenSDK.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Manual; CURRENT_PROJECT_VERSION = 200628; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = BVTA78PRYA; @@ -608,7 +608,7 @@ PRODUCT_BUNDLE_IDENTIFIER = com.hdl.onpro; PRODUCT_NAME = EZOpenSDK; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "ComHdlOnProDevelopment20210221-1"; VALID_ARCHS = "arm64 armv7 armv7s"; WRAPPER_EXTENSION = app; }; Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.h
@@ -7,14 +7,48 @@ // #import <Foundation/Foundation.h> #import "ResponseData.h" NS_ASSUME_NONNULL_BEGIN /// 河东接口网络请求工具类 @interface EZHttpUtil : NSObject #pragma mark -接口 /** * 基础服务的接口都要校验sign * @since 河东获取子账号token的接口 * * @param block 回调block */ +(NSMutableDictionary *)GetSignRequestDictionary:(NSMutableDictionary *)params; + (void)getChildToken:(void (^)(NSString *accessToken))block; /** * @since 河东添加设备的接口 * 根据设备序列号和设备验证码添加设备接口 * * @param deviceSerial 设备序列号 * @param verifyCode 设备验证码 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (void)addDeviceByHDL:(NSString *)deviceSerial verifyCode:(NSString *)verifyCode completion:(void (^)(ResponseData *responseData))completion; /** * @since 河东删除设备的接口 * 根据设备序列号删除设备接口 * * @param deviceSerial 设备序列号 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (void)deleteDeviceByHDL:(NSString *)deviceSerial completion:(void (^)(ResponseData *responseData))completion; @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.m
@@ -9,19 +9,228 @@ #import "EZHttpUtil.h" #import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> #import "AFNetworking.h" #pragma mark API #define API_POST_EZ_AddDevice @"/home-wisdom/platform/childAddDevice" #define API_POST_EZ_GetChildToken @"/home-wisdom/platform/childToken" #define API_POST_EZ_ChildDelDevice @"/home-wisdom/platform/childDelDevice" #define API_POST_EZ_RefreshToken @"/smart-footstone/member/oauth/login" #pragma mark APP_KEY #define APP_KEY @"HDL-HOME-APP-TEST" #define SECRET_KEY @"WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss" @implementation EZHttpUtil #pragma mark -接口请求部分 /** * @since 河东获取子账号token的接口 * * @param block 回调block */ + (void)getChildToken:(void (^)(NSString *accessToken))block{ //2.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; parameters = [self GetSignRequestDictionary:parameters]; [self requestHttpsPost:API_POST_EZ_GetChildToken parameters:parameters completion:^(ResponseData *responseData) { if (block) { NSString * token = @""; if(responseData.success){ token = responseData.data[@"accessToken"]; } block(token); } }]; // return task; } /** * @since 河东添加设备的接口 * 根据设备序列号和设备验证码添加设备接口 * * @param deviceSerial 设备序列号 * @param verifyCode 设备验证码 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (void)addDeviceByHDL:(NSString *)deviceSerial verifyCode:(NSString *)verifyCode completion:(void (^)(ResponseData *responseData))completion{ //2.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:deviceSerial forKey:@"deviceSerial"]; [parameters setValue:verifyCode forKey:@"validateCode"]; parameters = [self GetSignRequestDictionary:parameters]; [self requestHttpsPost:API_POST_EZ_AddDevice parameters:parameters completion:^(ResponseData *responseData) { if (completion) { completion (responseData); } }]; // return task; } /** * @since 河东删除设备的接口 * 根据设备序列号删除设备接口 * * @param deviceSerial 设备序列号 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (void)deleteDeviceByHDL:(NSString *)deviceSerial completion:(void (^)(ResponseData *responseData))completion{ //1.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:deviceSerial forKey:@"deviceSerial"]; parameters = [self GetSignRequestDictionary:parameters]; [self requestHttpsPost:API_POST_EZ_ChildDelDevice parameters:parameters completion:^(ResponseData *responseData) { if (completion) { completion (responseData); } }]; // return task; } /// 刷新token /// @param block 结果 + (void)refreshHDLToken:(void (^)(BOOL isSuccess))block{ //1.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; [parameters setValue:GlobalKit.shareKit.hdlRefreshToken forKey:@"refreshToken"]; [parameters setValue:@"refresh_token" forKey:@"grantType"]; [parameters setValue:@"APP" forKey:@"platform"]; parameters = [self GetSignRequestDictionary:parameters]; [self requestHttpsBase:API_POST_EZ_RefreshToken parameters:parameters completion:^(ResponseData *responseData) { if (block) { if (responseData) { if(responseData.success){ [EZSDK setHDlAccessToken: [NSString stringWithFormat:@"%@%@",responseData.data[@"headerPrefix"], responseData.data[@"accessToken"]] refreshToken:responseData.data[@"refreshToken"]]; block(YES); return; } } block(NO); } }]; // return task; } #pragma mark HttpUtil /// 通用 请求服务器方法 /// @param apiPath 接口地址 /// @param parameters 请求参数 /// @param completion 请求响应参数 + (void)requestHttpsPost:(NSString *)apiPath parameters:(NSMutableDictionary *)parameters completion:(void (^)(ResponseData *responseData))completion{ [self requestHttpsBase:apiPath parameters:parameters completion:^(ResponseData *responseData) { if (completion) { if([responseData.code isEqual:@"10001"]){ //刷新token [self refreshHDLToken:^(BOOL isSuccess) { if (isSuccess) { //刷新token成功,重新请求一次 [self requestHttpsBase:apiPath parameters:parameters completion:^(ResponseData *responseData) { completion(responseData); return; }]; } }]; } completion(responseData); } }]; } /// 通用 请求服务器方法 /// @param apiPath 接口地址 /// @param parameters 请求参数 /// @param completion 请求响应参数 + (void)requestHttpsBase:(NSString *)apiPath parameters:(NSMutableDictionary *)parameters completion:(void (^)(ResponseData *responseData))completion{ //1,创建你得请求url NSString *URL = @""; if([GlobalKit shareKit].GlobalRequestHttpsHost == NULL){ URL = @"https://test-gz.hdlcontrol.com"; } URL = [NSString stringWithFormat:@"%@%@", URL, apiPath]; // NSURLSessionDataTask * task=nil; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer]; manager.responseSerializer = responseSerializer; //3.request NSMutableURLRequest * request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"post" URLString:URL parameters:parameters error:nil]; request.timeoutInterval = 10.0f; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setValue:GlobalKit.shareKit.hdlAccessToken forHTTPHeaderField:@"Authorization"]; //4.dataTaskWithRequest [[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { if (completion) { ResponseData *responseData = [[ResponseData alloc] init]; responseData.code = @"-1"; if(responseObject != NULL){ //4.解析拿到的响应数据 NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); NSDictionary * outDic = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingAllowFragments error:nil]; responseData = [[ResponseData alloc] initWithDictionary:outDic]; } if (!responseData) { responseData = [[ResponseData alloc] init]; } completion(responseData); } }]resume]; // return task; } /** * 基础服务的接口都要校验sign */ +(NSMutableDictionary *)GetSignRequestDictionary:(NSMutableDictionary *)params{ if(params == NULL){ params =[NSMutableDictionary dictionary]; } UInt64 recordTime = [[NSDate date] timeIntervalSince1970]*1000; [params setValue:APP_KEY forKey:@"appKey"]; [params setValue:@"" forKey:@"timestamp"]; [params setValue:[NSString stringWithFormat:@"%llu",recordTime] forKey:@"timestamp"]; //1.对KEY升序 NSArray *keyArray = [params allKeys]; NSArray *sortKeyArray = [keyArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { @@ -40,7 +249,7 @@ } //2.3 拼接SECRET_KEY newString = [newString substringToIndex:[newString length] - 1]; newString = [ newString stringByAppendingString: SECRET_KEY]; newString = [newString stringByAppendingString: SECRET_KEY]; //2.4 MD5转换+转小写 if(newString == nil || newString == NULL){ newString = @""; @@ -51,6 +260,9 @@ return params; } /** MD5转换+转小写 */ + (NSString*)signMD5Encrypt:(NSString *)str { const char *cStr = [str UTF8String]; @@ -81,4 +293,5 @@ return true; } @end Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h
@@ -7,6 +7,7 @@ #import <Foundation/Foundation.h> @interface EZSDK : NSObject /** 初始化SDK @@ -17,6 +18,10 @@ 设置SDK的accessToken */ +(void)setEZAccessToken:(NSString *) accessToken; /** 设置HDLSDK的accessToken */ +(void)setHDlAccessToken:(NSString *) accessToken refreshToken:(NSString *) refreshToken; /** 直接跳转到萤石摄像头列表 */ @@ -37,31 +42,5 @@ 回放播放历史 */ +(void)playBackVideo:(NSObject*)deviceInfo; #pragma mark -接口 /** * @since 河东获取子账号token的接口 * * @param block 回调block */ + (NSURLSessionDataTask *)getChildToken:(void (^)(NSString *accessToken))block; /** * @since 河东添加设备的接口 * 根据设备序列号和设备验证码添加设备接口 * * @param deviceSerial 设备序列号 * @param verifyCode 设备验证码 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (NSURLSessionDataTask *)addDeviceByHDL:(NSString *)deviceSerial verifyCode:(NSString *)verifyCode completion:(void (^)(NSError *error))completion; @end Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.m
@@ -18,16 +18,9 @@ #import "EZPlaybackViewController.h" #import "EZDeviceTableViewController.h" #import "EZHCNetDeviceSDK.h" #import "AFNetworking.h" #import <Foundation/Foundation.h> #import <CommonCrypto/CommonDigest.h> #define API_POST_EZ_AddDevice @"/home-wisdom/platform/child/device/add" #define API_POST_EZ_GetChildToken @"/home-wisdom/platform/childToken" #define APP_KEY @"HDL-HOME-APP-TEST" #define SECRET_KEY @"WeJ8TY88vbakCcnvH8G1tDUqzLWY8yss" @implementation EZSDK @@ -68,7 +61,14 @@ [EZOPENSDK setAccessToken:accessToken]; } /** 设置HDLSDK的accessToken */ +(void)setHDlAccessToken:(NSString *) accessToken refreshToken:(NSString *) refreshToken { [[GlobalKit shareKit] setHdlAccessToken:accessToken]; [[GlobalKit shareKit] setHdlRefreshToken:refreshToken]; } //获取当前屏幕显示的viewcontroller (这里面获取的相当于rootViewController) +(UINavigationController *)getCurrentVC @@ -288,175 +288,6 @@ // } //} #pragma mark -接口请求部分 /** * @since 河东获取子账号token的接口 * * @param block 回调block */ + (NSURLSessionDataTask *)getChildToken:(void (^)(NSString *accessToken))block{ //1,创建你得请求url NSString *URL = @""; if([GlobalKit shareKit].GlobalRequestHttpsHost == NULL){ URL = @"https://test-gz.hdlcontrol.com"; } URL = [NSString stringWithFormat:@"%@%@", URL, API_POST_EZ_GetChildToken]; //2.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; parameters = [self GetSignRequestDictionary:parameters]; NSURLSessionDataTask*task=nil; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer]; manager.responseSerializer = responseSerializer; NSMutableURLRequest * request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"post" URLString:URL parameters:parameters error:nil]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [request setValue:GlobalKit.shareKit.hdlAccessToken forHTTPHeaderField:@"Authorization"]; [[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { //4.解析拿到的响应数据 NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); if (block) { NSString * token = @""; block (token); } }]resume]; return task; } /** * @since 河东添加设备的接口 * 根据设备序列号和设备验证码添加设备接口 * * @param deviceSerial 设备序列号 * @param verifyCode 设备验证码 * @param completion 回调block,error为空时表示添加成功 * * @return operation */ + (NSURLSessionDataTask *)addDeviceByHDL:(NSString *)deviceSerial verifyCode:(NSString *)verifyCode completion:(void (^)(NSError *error))completion{ //1,创建你得请求url NSString *URL = @""; if([GlobalKit shareKit].GlobalRequestHttpsHost == NULL){ URL = @"https://test-gz.hdlcontrol.com"; } URL = [NSString stringWithFormat:@"%@%@",URL, @"/smart-footstone/region/regionByAccount"]; //2.设置请求参数 NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; // [parameters setValue:deviceSerial forKey:@"deviceSerial"]; // [parameters setValue:verifyCode forKey:@"verifyCode"]; // parameters[@"deviceSerial"] = deviceSerial; // parameters[@"verifyCode"] = verifyCode; parameters[@"account"] = @"18824864143"; // parameters = [self GetSignRequestDictionary:parameters]; NSURLSessionDataTask*task=nil; AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithSessionConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; AFHTTPResponseSerializer *responseSerializer = [AFHTTPResponseSerializer serializer]; manager.responseSerializer = responseSerializer; NSMutableURLRequest * request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"post" URLString:URL parameters:parameters error:nil]; [request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; [request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; [[manager dataTaskWithRequest:request completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { // //拿到响应头信息 // NSHTTPURLResponse *res = (NSHTTPURLResponse *)response; //4.解析拿到的响应数据 NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); if (completion) { // error.code = 105002; completion (error); } }]resume]; return task; } #pragma mark HttpUtil /** * 基础服务的接口都要校验sign */ +(NSMutableDictionary *)GetSignRequestDictionary:(NSMutableDictionary *)params{ if(params == NULL){ params =[NSMutableDictionary dictionary]; } UInt64 recordTime = [[NSDate date] timeIntervalSince1970]*1000; [params setValue:APP_KEY forKey:@"appKey"]; [params setValue:[NSString stringWithFormat:@"%llu",recordTime] forKey:@"timestamp"]; //1.对KEY升序 NSArray *keyArray = [params allKeys]; NSArray *sortKeyArray = [keyArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { return [obj1 compare:obj2 options:NSNumericSearch]; }]; //2.2 拼接按URL键值对 NSString *newString = @""; for(NSString *key in sortKeyArray){ if(params[key] != NULL){ NSString *valueStr = params[key]; //检测当前参数是否需要参与校验 if([self IfValueNeedSign:valueStr]){ newString = [newString stringByAppendingString:[NSString stringWithFormat:@"%@=%@&", key,valueStr]]; } } } //2.3 拼接SECRET_KEY newString = [newString substringToIndex:[newString length] - 1]; newString = [newString stringByAppendingString: SECRET_KEY]; //2.4 MD5转换+转小写 if(newString == nil || newString == NULL){ newString = @""; } NSString* signstr = [self signMD5Encrypt:newString]; [params setValue:signstr forKey:@"sign"]; return params; } /** MD5转换+转小写 */ + (NSString*)signMD5Encrypt:(NSString *)str { const char *cStr = [str UTF8String]; unsigned char digest[CC_MD5_DIGEST_LENGTH]; CC_MD5( cStr, strlen(cStr),digest ); NSMutableString *result = [NSMutableString stringWithCapacity:CC_MD5_DIGEST_LENGTH * 2]; for(int i = 0; i < CC_MD5_DIGEST_LENGTH; i++) [result appendFormat:@"%02x", digest[i]]; return result; } /// <summary> /// 判断当前值是否需要参与签名,保持跟云端一致 /// 空字符串不参与 /// 数组,集合,对象不参与 /// </summary> /// <param name="valueStr"></param> /// <returns></returns> +(bool)IfValueNeedSign:(NSString *)valueStr{ if (( (valueStr == nil || [valueStr isKindOfClass:[NSNull class]] || valueStr.length == 0))//判空字符 || ([[valueStr substringToIndex:1] isEqual:@"{"])//判断是否为对象 || ([[valueStr substringToIndex:1] isEqual:@"["])//判断是否为数组 ) { return false; } return true; } @end Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.h
@@ -20,6 +20,7 @@ @property (nonatomic, copy) NSString *GlobalRequestHttpsHost; @property (nonatomic, copy) NSString *hdlAccessToken; @property (nonatomic, copy) NSString *hdlRefreshToken; @property (nonatomic, copy) NSString *accessToken; @property (nonatomic, copy) NSString *deviceSerialNo; //设备序列号 @@ -34,7 +35,7 @@ - (void)clearDeviceInfo; +(void)hello; //+(void)hello; Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.m
@@ -8,6 +8,10 @@ #import "GlobalKit.h" #define EZOpenSDKAccessToken @"EZOpenSDKAccessToken" #define EZhdlAccessToken @"EZhdlAccessToken" #define EZhdlRefreshToken @"EZhdlRefreshToken" @implementation GlobalKit + (instancetype)shareKit @@ -25,7 +29,10 @@ self = [super init]; if (self) { _accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"EZOpenSDKAccessToken"]; _accessToken = [[NSUserDefaults standardUserDefaults] objectForKey:EZOpenSDKAccessToken]; _hdlAccessToken = [[NSUserDefaults standardUserDefaults] objectForKey:EZhdlAccessToken]; _hdlRefreshToken = [[NSUserDefaults standardUserDefaults] objectForKey:EZhdlRefreshToken]; _deviceVerifyCodeBySerial = [NSMutableDictionary new]; } return self; @@ -35,14 +42,31 @@ - (void)setAccessToken:(NSString *)accessToken { _accessToken = accessToken; [[NSUserDefaults standardUserDefaults] setObject:accessToken?:@"" forKey:@"EZOpenSDKAccessToken"]; [[NSUserDefaults standardUserDefaults] setObject:accessToken?:@"" forKey:EZOpenSDKAccessToken]; [[NSUserDefaults standardUserDefaults] synchronize]; } - (void)setHdlAccessToken:(NSString *)hdlAccessToken { _hdlAccessToken = hdlAccessToken; [[NSUserDefaults standardUserDefaults] setObject:hdlAccessToken?:@"" forKey:EZhdlAccessToken]; [[NSUserDefaults standardUserDefaults] synchronize]; } - (void)setHdlRefreshToken:(NSString *)hdlRefreshToken { _hdlRefreshToken = hdlRefreshToken; [[NSUserDefaults standardUserDefaults] setObject:hdlRefreshToken?:@"" forKey:EZhdlRefreshToken]; [[NSUserDefaults standardUserDefaults] synchronize]; } - (void)clearSession { _accessToken = nil; [[NSUserDefaults standardUserDefaults] removeObjectForKey:@"EZOpenSDKAccessToken"]; _hdlRefreshToken = nil; _hdlRefreshToken = nil; [[NSUserDefaults standardUserDefaults] removeObjectForKey:EZOpenSDKAccessToken]; [[NSUserDefaults standardUserDefaults] synchronize]; } Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.h
@@ -10,22 +10,19 @@ NS_ASSUME_NONNULL_BEGIN /** ResponseData */ @interface ResponseData : NSObject /** */ /** 响应状态码 */ @property (nonatomic, copy) NSString *code; /** */ /** 错误信息*/ @property (nonatomic, copy) NSString *message; /** */ @property (nonatomic, copy) NSObject *data; /** 接收数据的字典 */ @property (nonatomic, strong) NSDictionary * __nullable data; /** 字典处理 */ - (id)initWithDictionary:(NSDictionary *)dic; /**是否成功*/ - (BOOL)success; @end NS_ASSUME_NONNULL_END Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m
@@ -10,4 +10,45 @@ @implementation ResponseData /// Description - (BOOL)success { //河东code为0 ,萤石为200 代表成功 return [self.code isEqual: @"0"] || [self.code isEqual: @"200"] ; } /// 解析返回字典参数 /// @param dic 返回参数 - (id)initWithDictionary:(NSDictionary *)dic { if (self = [super init]) { @try { if (dic) { //1.取出返回数据的状态码 self.code = [NSString stringWithFormat:@"%@", dic[@"code"]]; //2.提示信息 self.message = [dic objectForKey:@"message"]; //3.返回数据 NSDictionary *mData = (NSDictionary *)[dic objectForKey:@"data"]; self.data = mData; } else { //没有返回数据 self.message = @"网络错误"; self.data = nil; self.code = @"-2"; } } //接收到异常 @catch (NSException *exception) { self.data = dic; self.code = @"-1"; } @finally { } } return self; } @end Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceResultViewController.m
@@ -14,7 +14,7 @@ #import "EZWifiConfigViewController.h" #import "EZWifiTipsViewController.h" #import "MBProgressHUD.h" #import "EZSDK.h" @interface EZDeviceResultViewController ()<UIAlertViewDelegate> @@ -82,12 +82,21 @@ [GlobalKit shareKit].deviceVerifyCode = [alertView textFieldAtIndex:0].text; __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候..."); [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo verifyCode:[GlobalKit shareKit].deviceVerifyCode completion:^(NSError *error) { [hud hide:YES]; [self handleTheError:error]; }]; // [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo // verifyCode:[GlobalKit shareKit].deviceVerifyCode // completion:^(NSError *error) { // [hud hide:YES]; // [self handleTheError:error]; // }]; [EZHttpUtil addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo verifyCode:[GlobalKit shareKit].deviceVerifyCode completion:^(ResponseData *responseData) { [hud hide:YES]; [self handleTheError:responseData]; }]; } else if (alertView.tag == 0xbb && buttonIndex == 1) { @@ -112,12 +121,20 @@ { __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候..."); [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo verifyCode:[GlobalKit shareKit].deviceVerifyCode completion:^(NSError *error) { [hud hide:YES]; [self handleTheError:error]; }]; // [EZOPENSDK addDevice:[GlobalKit shareKit].deviceSerialNo // verifyCode:[GlobalKit shareKit].deviceVerifyCode // completion:^(NSError *error) { // [hud hide:YES]; // [self handleTheError:error]; // }]; [EZHttpUtil addDeviceByHDL:[GlobalKit shareKit].deviceSerialNo verifyCode:[GlobalKit shareKit].deviceVerifyCode completion:^(ResponseData *responseData) { [hud hide:YES]; [self handleTheError:responseData]; }]; } else { @@ -212,24 +229,24 @@ } - (void)handleTheError:(NSError *)error - (void)handleTheError:(ResponseData *)responseData { if (!error) if (responseData.success) { [self performSegueWithIdentifier:@"go2WifiResult" sender:nil]; return; } if (error.code == 105002) if ([responseData.code isEqual: @"20010"]) { UIAlertView *retryAlertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"device_verify_code_wrong", @"验证码错误") message:nil delegate:self cancelButtonTitle:NSLocalizedString(@"cancel", @"取消") otherButtonTitles:NSLocalizedString(@"retry", @"重试"), nil]; retryAlertView.tag = 0xbb; [retryAlertView show]; } else if (error.code == 105000) else if ([responseData.code isEqual: @"20017"]) { [UIView dd_showMessage:NSLocalizedString(@"ad_already_added",@"您已添加过此设备")]; } else if (error.code == 105001) else if ([responseData.code isEqual: @"20013"]) { [UIView dd_showMessage:NSLocalizedString(@"ad_added_by_others",@"此设备已被别人添加")]; } Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m
@@ -66,6 +66,8 @@ // self.title. self.logoutBtn.title = NSLocalizedString(@"Logout", @"注销"); self.logoutBtn.title = @""; [self.logoutBtn setEnabled: NO]; [self checkEZIsLogin]; } Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m
@@ -360,8 +360,25 @@ { __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = NSLocalizedString(@"message_deleting", @"正在删除,请稍候..."); [EZOPENSDK deleteDevice:self.deviceInfo.deviceSerial completion:^(NSError *error) { if(!error) // [EZOPENSDK deleteDevice:self.deviceInfo.deviceSerial completion:^(NSError *error) { // if(!error) // { // [hud hide:YES]; // NSArray *viewControllers = self.navigationController.viewControllers; // for (UIViewController *vc in viewControllers) // { // if([vc isKindOfClass:[EZDeviceTableViewController class]]) // { // ((EZDeviceTableViewController *)vc).needRefresh = YES; // [self.navigationController popToViewController:vc animated:YES]; // break; // } // } // } // }]; [EZHttpUtil deleteDeviceByHDL:self.deviceInfo.deviceSerial completion:^(ResponseData *responseData) { if(responseData.success) { [hud hide:YES]; NSArray *viewControllers = self.navigationController.viewControllers; @@ -376,6 +393,8 @@ } } }]; } } Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m
@@ -49,11 +49,31 @@ // //push摄像头列表的viewController // [self.navigationController pushViewController:instanceVC animated:YES]; [[GlobalKit shareKit] setAccessToken:@"ra.b48ex6o495x0etj76a0a3huh1x91ymvw-8oi8f811ry-15pqyvo-dyuk9nyz4"]; /** * 下面代码功能与以上的注释方法相同 */ [self performSegueWithIdentifier:@"go2CameraList" sender:nil]; // [[GlobalKit shareKit] setAccessToken:@"ra.b48ex6o495x0etj76a0a3huh1x91ymvw-8oi8f811ry-15pqyvo-dyuk9nyz4"]; // /** // * 下面代码功能与以上的注释方法相同 // */ // [self performSegueWithIdentifier:@"go2CameraList" sender:nil]; GlobalKit.shareKit.hdlRefreshToken = @"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJlYzRiOTg4MTgxNWI0ZWJjYTEyNTU0ODNmNjg3NjgyMyIsImhlYWRlclByZWZpeCI6IkJlYXJlciAiLCJ0ZW5hbnRJZCI6IjIwIiwidG9rZW5UeXBlIjoicmVmcmVzaF90b2tlbiIsImFwcGxpY2F0aW9uSWQiOiIwIiwidXNlcklkIjoiMTMyODg4NjI3MzAwMzg1NTg3NCIsImV4cCI6MTYxNTI1NjMxMCwibmJmIjoxNjE0NjUxNTEwfQ.CgpIhgGb4U-NB3EvveBg6mBgLKi0H_zdA_RgPhDREmMeVyAH58H4guzutIi2EO7Dw8bkR2PB9n6jP4MQQNaHclN1EaahNQtZ4rHipLrBY0oT35Uz4vw5yXaWAyLG6_FW2Ky4wpqLbSjv9x24yc5cuKNaknruf73V6bNIDnGaEr0"; GlobalKit.shareKit.hdlAccessToken = @"Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiJmZDgyMDY0ZmJmMGE0YTdmOWFhMmVhOTA0Y2FmNDY3MyIsInJvbGUiOiIiLCJoZWFkZXJQcmVmaXgiOiJCZWFyZXIgIiwidXNlckFjY291bnQiOiIxODgyNDg2NDE0MyIsInRlbmFudElkIjoiMjAiLCJ1c2VyVHlwZSI6IlVTRVJfQyIsInRva2VuVHlwZSI6ImFjY2Vzc190b2tlbiIsInVzZXJOYW1lIjoiTEUwMDAiLCJhcHBsaWNhdGlvbklkIjoiMCIsInVzZXJJZCI6IjEzMjg4ODYyNzMwMDM4NTU4NzQiLCJleHAiOjE2MTQ1OTc5MzQsIm5iZiI6MTYxNDU5MDczNH0.e-ghYGplCF5lrMDwNd38RcbCjC79G729-iOMn3ozaEfmuZA_f5ElMvoyUf0Vm64IJMdwScuXPnSzJa2UQPyXNyZJRhpJDR4GKXI7X9VHqWJyrkc-_CJO0puLfB64K3SvKASD-PSHwzRggrmfn5G7GZ1gf-piK1grYurUIT-KaaE"; __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; hud.labelText = NSLocalizedString(@"ad_adding_msg", @"正在添加,请稍候..."); [EZHttpUtil getChildToken:^(NSString *accessToken) { [hud hide:YES]; if(accessToken != NULL && ![accessToken isEqual:@""]){ [[GlobalKit shareKit] setAccessToken:accessToken]; /** * 下面代码功能与以上的注释方法相同 */ [self performSegueWithIdentifier:@"go2CameraList" sender:nil]; } }]; } - (IBAction)logout:(id)sender @@ -62,20 +82,7 @@ // [EZOPENSDK logout:^(NSError *error) { // }]; __weak MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES]; [EZSDK addDeviceByHDL:@"" verifyCode:@"" completion:^(NSError *error) { [hud hide:YES]; if(!error){ NSLog(@"请求成功"); }else{ NSLog(@"请求失败"); // NSLog(@"请求失败%@",error.description); } [self handleTheError:error]; }]; } - (void)handleTheError:(NSError *)error