From caccf34369c5bb7c26c32f266d6726bde218cad6 Mon Sep 17 00:00:00 2001 From: JLChen <551775569@qq.com> Date: 星期二, 02 三月 2021 13:19:12 +0800 Subject: [PATCH] 2021-03-02 1.封装网络请求方法 --- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h | 31 -- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.h | 3 Demo/Demo/EZOpenSDKDemo.xcodeproj/project.pbxproj | 6 Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.m | 30 ++ Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m | 2 Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.m | 187 -------------- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m | 45 ++- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceResultViewController.m | 53 ++- Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m | 41 +++ Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.h | 21 - Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m | 23 + Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.h | 38 +++ Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.m | 217 +++++++++++++++++ 13 files changed, 431 insertions(+), 266 deletions(-) diff --git a/Demo/Demo/EZOpenSDKDemo.xcodeproj/project.pbxproj b/Demo/Demo/EZOpenSDKDemo.xcodeproj/project.pbxproj index a7eaef6..ea55e86 100644 --- a/Demo/Demo/EZOpenSDKDemo.xcodeproj/project.pbxproj +++ b/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; }; diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.h b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.h index 9cf0b38..05553ce 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.h +++ b/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 -鎺ュ彛 /** - * 鍩虹鏈嶅姟鐨勬帴鍙i兘瑕佹牎楠宻ign + * @since 娌充笢鑾峰彇瀛愯处鍙穞oken鐨勬帴鍙� + * + * @param block 鍥炶皟block */ -+(NSMutableDictionary *)GetSignRequestDictionary:(NSMutableDictionary *)params; ++ (void)getChildToken:(void (^)(NSString *accessToken))block; + +/** + * @since 娌充笢娣诲姞璁惧鐨勬帴鍙� + * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙� + * + * @param deviceSerial 璁惧搴忓垪鍙� + * @param verifyCode 璁惧楠岃瘉鐮� + * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� + * + * @return operation + */ ++ (void)addDeviceByHDL:(NSString *)deviceSerial + verifyCode:(NSString *)verifyCode + completion:(void (^)(ResponseData *responseData))completion; + +/** + * @since 娌充笢鍒犻櫎璁惧鐨勬帴鍙� + * 鏍规嵁璁惧搴忓垪鍙峰垹闄よ澶囨帴鍙� + * + * @param deviceSerial 璁惧搴忓垪鍙� + * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� + * + * @return operation + */ ++ (void)deleteDeviceByHDL:(NSString *)deviceSerial completion:(void (^)(ResponseData *responseData))completion; + + @end NS_ASSUME_NONNULL_END diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.m index d969a2e..8f37e15 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZHttpUtil.m +++ b/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 娌充笢鑾峰彇瀛愯处鍙穞oken鐨勬帴鍙� + * + * @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锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� + * + * @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锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� + * + * @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.瑙f瀽鎷垮埌鐨勫搷搴旀暟鎹� + 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; +} + +/** + * 鍩虹鏈嶅姟鐨勬帴鍙i兘瑕佹牎楠宻ign + */ +(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.瀵筀EY鍗囧簭 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 diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h index 9ae441d..2872116 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h +++ b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.h @@ -7,6 +7,7 @@ #import <Foundation/Foundation.h> + @interface EZSDK : NSObject /** 鍒濆鍖朣DK @@ -17,6 +18,10 @@ 璁剧疆SDK鐨刟ccessToken */ +(void)setEZAccessToken:(NSString *) accessToken; +/** + 璁剧疆HDLSDK鐨刟ccessToken + */ ++(void)setHDlAccessToken:(NSString *) accessToken refreshToken:(NSString *) refreshToken; /** 鐩存帴璺宠浆鍒拌悿鐭虫憚鍍忓ご鍒楄〃 */ @@ -37,31 +42,5 @@ 鍥炴斁鎾斁鍘嗗彶 */ +(void)playBackVideo:(NSObject*)deviceInfo; - - -#pragma mark -鎺ュ彛 -/** - * @since 娌充笢鑾峰彇瀛愯处鍙穞oken鐨勬帴鍙� - * - * @param block 鍥炶皟block - */ -+ (NSURLSessionDataTask *)getChildToken:(void (^)(NSString *accessToken))block; - -/** - * @since 娌充笢娣诲姞璁惧鐨勬帴鍙� - * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙� - * - * @param deviceSerial 璁惧搴忓垪鍙� - * @param verifyCode 璁惧楠岃瘉鐮� - * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� - * - * @return operation - */ -+ (NSURLSessionDataTask *)addDeviceByHDL:(NSString *)deviceSerial - verifyCode:(NSString *)verifyCode - completion:(void (^)(NSError *error))completion; - - - @end diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.m index de120e6..c813e1e 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/EZSDK.m +++ b/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鐨刟ccessToken + */ ++(void)setHDlAccessToken:(NSString *) accessToken refreshToken:(NSString *) refreshToken +{ + [[GlobalKit shareKit] setHdlAccessToken:accessToken]; + [[GlobalKit shareKit] setHdlRefreshToken:refreshToken]; +} //鑾峰彇褰撳墠灞忓箷鏄剧ず鐨剉iewcontroller (杩欓噷闈㈣幏鍙栫殑鐩稿綋浜巖ootViewController) +(UINavigationController *)getCurrentVC @@ -288,175 +288,6 @@ // } //} -#pragma mark -鎺ュ彛璇锋眰閮ㄥ垎 -/** - * @since 娌充笢鑾峰彇瀛愯处鍙穞oken鐨勬帴鍙� - * - * @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.瑙f瀽鎷垮埌鐨勫搷搴旀暟鎹� - NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); - - if (block) { - NSString * token = @""; - block (token); - } - }]resume]; - return task; - - -} -/** - * @since 娌充笢娣诲姞璁惧鐨勬帴鍙� - * 鏍规嵁璁惧搴忓垪鍙峰拰璁惧楠岃瘉鐮佹坊鍔犺澶囨帴鍙� - * - * @param deviceSerial 璁惧搴忓垪鍙� - * @param verifyCode 璁惧楠岃瘉鐮� - * @param completion 鍥炶皟block锛宔rror涓虹┖鏃惰〃绀烘坊鍔犳垚鍔� - * - * @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.瑙f瀽鎷垮埌鐨勫搷搴旀暟鎹� - NSLog(@"%@",[[NSString alloc]initWithData:responseObject encoding:NSUTF8StringEncoding]); - - if (completion) { -// error.code = 105002; - completion (error); - } - }]resume]; - return task; -} -#pragma mark HttpUtil -/** - * 鍩虹鏈嶅姟鐨勬帴鍙i兘瑕佹牎楠宻ign - */ -+(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.瀵筀EY鍗囧簭 - NSArray *keyArray = [params allKeys]; - NSArray *sortKeyArray = [keyArray sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { - return [obj1 compare:obj2 options:NSNumericSearch]; - }]; - //2.2 鎷兼帴鎸塙RL閿�煎 - 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 diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.h b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.h index be7b56a..959f77a 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.h +++ b/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; diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.m index 714770e..00c5894 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/GlobalKit.m +++ b/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]; } diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.h b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.h index 0a92e94..6451635 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.h +++ b/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 diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m index eb4aa3d..30e621e 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m +++ b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/Global/ResponseData.m @@ -10,4 +10,45 @@ @implementation ResponseData + +/// Description +- (BOOL)success +{ + //娌充笢code涓�0 锛岃悿鐭充负200 浠h〃鎴愬姛 + return [self.code isEqual: @"0"] || [self.code isEqual: @"200"] ; +} + + +/// 瑙f瀽杩斿洖瀛楀吀鍙傛暟 +/// @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 diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceResultViewController.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceResultViewController.m index 0c32699..d094b07 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceResultViewController.m +++ b/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", @"姝e湪娣诲姞锛岃绋嶅��..."); - [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", @"姝e湪娣诲姞锛岃绋嶅��..."); - [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",@"姝よ澶囧凡琚埆浜烘坊鍔�")]; } diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m index 86f3ba3..a40c299 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZDeviceTableViewController.m +++ b/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]; } diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m index f6acccb..8511c5e 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/UIViewControllers/EZSettingViewController.m +++ b/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", @"姝e湪鍒犻櫎锛岃绋嶅��..."); - [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 @@ } } }]; + + } } diff --git a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m b/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m index 75f59e1..20f4877 100644 --- a/Demo/EZOpensdk_iOS_4.15.1_build20201104/Demo/EZOpenSDKDemo/ViewController.m +++ b/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"]; - /** - * 涓嬮潰浠g爜鍔熻兘涓庝互涓婄殑娉ㄩ噴鏂规硶鐩稿悓 - */ - [self performSegueWithIdentifier:@"go2CameraList" sender:nil]; +// [[GlobalKit shareKit] setAccessToken:@"ra.b48ex6o495x0etj76a0a3huh1x91ymvw-8oi8f811ry-15pqyvo-dyuk9nyz4"]; +// /** +// * 涓嬮潰浠g爜鍔熻兘涓庝互涓婄殑娉ㄩ噴鏂规硶鐩稿悓 +// */ +// [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", @"姝e湪娣诲姞锛岃绋嶅��..."); + [EZHttpUtil getChildToken:^(NSString *accessToken) { + [hud hide:YES]; + if(accessToken != NULL && ![accessToken isEqual:@""]){ + [[GlobalKit shareKit] setAccessToken:accessToken]; + /** + * 涓嬮潰浠g爜鍔熻兘涓庝互涓婄殑娉ㄩ噴鏂规硶鐩稿悓 + */ + [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 -- Gitblit v1.8.0