// // LCApiKit.m // LCOnDemo // // Created by 陈嘉乐 on 2021/4/26. // #import "LCApiKit.h" #import #define DEFAULTHOSTAPICHN @"https://openapi.lechange.cn:443" //中国大陆(正式) #define DEFAULTHOSTAPIOVS @"https://openapi.easy4ip.com:443" //海外(正式) @interface LCApiKit () @end @implementation LCApiKit /** 如果为单例,取得对应的单例 @return 单例对象 */ +(instancetype)sharedInstance{ static LCApiKit * sharedInstance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ sharedInstance = [[LCApiKit alloc] init]; sharedInstance.isChinaMainland = NO; }); return sharedInstance; } /// SDK连接时的HostApi - (NSString *)LCHostApi{ // 若没有自定义地址直接返回默认地址 self.sdkHostApi = ((self.sdkHostApi == nil || [self.sdkHostApi isEqualToString:@""]) ? (self.isChinaMainland ? DEFAULTHOSTAPICHN : DEFAULTHOSTAPIOVS) : self.sdkHostApi); return self.sdkHostApi; } /// SDK连接时的Host - (NSString *)LCSDKHost { NSString *host = [NSString stringWithFormat:@"%@/openapi", [self LCHostApi]]; NSString *textStr = [[[[[[host componentsSeparatedByString:@"//"] objectAtIndex:1] componentsSeparatedByString:@"/"] objectAtIndex:0] componentsSeparatedByString:@":"] objectAtIndex:0]; return textStr; } /// SDK连接时的Port - (NSInteger)LCSDKPort { NSString *host = [self LCHostApi]; NSString *regex = @"(:[0-9]{1,4})"; NSRegularExpression *regular = [[NSRegularExpression alloc]initWithPattern:regex options:NSRegularExpressionDotMatchesLineSeparators error:nil]; NSArray *resultArray = [regular matchesInString:host options:0 range:NSMakeRange(0, host.length)]; if (resultArray.count == 0) { return [host containsString:@"https"]?443:80; } NSTextCheckingResult *result = resultArray[0]; NSString *textStr = [[host substringWithRange:result.range] substringFromIndex:1]; return [textStr integerValue]; } /// 初始化LCOpenSDK_Api - (void)initSDKOpenApi:(NSString *)lcToken { self.lcSdkToken = lcToken; LCOpenSDK_ApiParam *param = [LCOpenSDK_ApiParam new]; param.procotol = [[self LCHostApi] containsString:@"https"] ? PROCOTOL_TYPE_HTTPS : PROCOTOL_TYPE_HTTP; param.addr = [self LCSDKHost]; param.port = [self LCSDKPort]; param.token = self.lcSdkToken; [[LCOpenSDK_Api shareMyInstance] initOpenApi:param]; NSLog(@"initSDKOpenApi: %@,@%ld", [self LCSDKHost], (long)[self LCSDKPort]); } ///// 拼接错误信息 //- (NSString *) getErrorMesWithCode:(NSString *)message code:(int)code //{ // return [NSString stringWithFormat:@"%@(%d)",message, code]; //} @end