#include "SdkHub.h" #include "Unity/UnityInterface.h" @implementation SdkHub const char *_unityReceiver = "SdkControl"; static SdkHub *_sharedInstance = nil; +(SdkHub *)sharedInstance { if (!_sharedInstance) { _sharedInstance = [[self alloc]init]; [_sharedInstance Init]; } return _sharedInstance; } -(BOOL)IsEmpty:(NSString *)source{ if (source == nil || self == NULL) { return YES; } if ([source isKindOfClass:[NSNull class]]) { return YES; } if ([[source stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]] length]==0) { return YES; } if ([source isEqualToString:@"(null)"]) { return YES; } if ([source isEqualToString:@""]) { return YES; } if ([source isEqualToString:@"null"]) { return YES; } return NO; } -(void)SendMessage:(NSString*)func args:(NSString*)args { const char* funcString = [func UTF8String]; const char* argsString = [args UTF8String]; UnitySendMessage(_unityReceiver, funcString, argsString); } -(void)Init { [HuoSDKApi addLogoutCallBack:^(NSDictionary *responseDic) { [self SendMessage:@"LogoutComplete" args:@"success"]; }]; [HuoSDKApi addPaySuccessedCallback:^(NSDictionary *responseDic) { [self SendMessage:@"PaymentComplete" args:@"success"]; }]; } -(void)Login:(BOOL)isAuto { [HuoSDKApi showLoginWithCallBack:^(NSDictionary *responseDic) { NSString *userid = responseDic[@"userid"];//sdk的用户id NSString *token = responseDic[@"token"]; //NSString *uid = responseDic[@"uid"]; NSLog(@"LoginComple: UserId = %@, Token = %@!", userid, token); if (![self IsEmpty:token]) { NSString *message = [NSString stringWithFormat:@"%@,%@,%@", @"success", userid, token]; [self SendMessage:@"LoginComplete" args:message]; [HuoSDKApi showFloatView:nil]; } else { [self SendMessage:@"LoginComplete" args:@"failed"]; } }]; } char* cStringCopy(const char* string) { char* res = (char*)malloc(strlen(string) + 1); strcpy(res, string); return res; } -(char*)GetChannel { NSString *result = @"YuCheng"; return cStringCopy([result UTF8String]); } -(void)Logout { [HuoSDKApi logout]; } -(void)SwitchAccount { [self Logout]; } -(void)Payment:(char*)payString { NSString *source = [NSString stringWithUTF8String:payString]; NSArray *parameters = [source componentsSeparatedByString:@","]; NSDictionary *payInfo = @{ key_cpOrderid: [parameters objectAtIndex:0], key_serverID: [parameters objectAtIndex:1], key_serverName: [parameters objectAtIndex:2], key_productID: [parameters objectAtIndex:3], key_productName: [parameters objectAtIndex:4], key_productdesc: [parameters objectAtIndex:5], key_ext: [parameters objectAtIndex:6], key_productPrice: [parameters objectAtIndex:7], key_roleID: [parameters objectAtIndex:8], key_roleName: [parameters objectAtIndex:9], key_currencyName : [parameters objectAtIndex:10], }; [HuoSDKApi buy:payInfo failedBlock:^{ [self SendMessage:@"PaymentComplete" args:@"failed"]; }]; } -(void)SubmitRole:(char*)roleString { NSString *source = [NSString stringWithUTF8String:roleString]; NSArray *parameters = [source componentsSeparatedByString:@","]; NSString *eventString = [parameters objectAtIndex:0]; NSString *event; if ([eventString isEqual: @"Create"]) event = @"2"; else if ([eventString isEqual: @"EnterGame"]) event = @"1"; else if ([eventString isEqual: @"LevelUp"]) event = @"3"; else event = @"4"; NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; formatter.numberStyle = NSNumberFormatterRoundFloor; NSDictionary *roleInfo = @{ key_dataType : event, key_serverID : [parameters objectAtIndex:1], key_serverName : [parameters objectAtIndex:2], key_roleID : [parameters objectAtIndex:3], key_roleName : [parameters objectAtIndex:4], key_roleLevel : [parameters objectAtIndex:5], key_roleVip : [parameters objectAtIndex:6], key_roleBalence : [parameters objectAtIndex:7], key_rolelevelCtime : [parameters objectAtIndex:8], key_rolelevelMtime : [parameters objectAtIndex:9]}; [HuoSDKApi setRoleInfo:roleInfo]; } @end