145 lines
4.4 KiB
Objective-C
145 lines
4.4 KiB
Objective-C
#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:@"<null>"]) {
|
|
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
|