JJBB/Sdk/iOS/YuCheng/SdkHub.m
2024-08-23 15:49:34 +08:00

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