New file |
| | |
| | | #import "YnmbxxjSDK.h"
|
| | | #ifdef NSFoundationVersionNumber_iOS_9_x_Max
|
| | | #import <UserNotifications/UserNotifications.h>
|
| | | #endif
|
| | | #import "SystemConfiguration/CaptiveNetwork.h"
|
| | |
|
| | | @implementation YnmbxxjSDK
|
| | |
|
| | | static int cClassBattery = -1;
|
| | | static int cZhuangtaiBattery = -1;
|
| | | static NSString* cYingyongID;
|
| | | static NSString* cYouxiID;
|
| | | static NSString* sYonghuMing;
|
| | | static NSThread* _xianchengThd;
|
| | |
|
| | |
|
| | |
|
| | | -(id)init
|
| | | {
|
| | | self = [super init];
|
| | | |
| | | m_jiaWKWebView = [[WKWebView alloc] initWithFrame:CGRectZero];
|
| | | NSURL *dizhi = [NSURL URLWithString:@"www.google.com"];
|
| | | NSURLRequest *request = [NSURLRequest requestWithURL:dizhi
|
| | | cachePolicy:NSURLRequestUseProtocolCachePolicy
|
| | | timeoutInterval:8.f];
|
| | | [m_jiaWKWebView loadRequest:request];
|
| | |
|
| | | return self;
|
| | | }
|
| | |
|
| | | -(void) Init
|
| | | {
|
| | | UIDevice *_device = [UIDevice currentDevice];
|
| | | _device.batteryMonitoringEnabled = true;
|
| | | |
| | | NSString* _uniqueID = @"ddgg";
|
| | | //获取IDFA
|
| | | NSString* _idfa = @"acd";
|
| | | |
| | | // 取得UserAgent
|
| | | [m_jiaWKWebView evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id _Nullable userAgent, NSError * _Nullable error) {
|
| | |
|
| | | NSLog(@"%@", userAgent);
|
| | | NSString* _userAgent = [NSString stringWithFormat:@"%@", userAgent];
|
| | | // 发送设备信息
|
| | | NSMutableDictionary *d_i_ct = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
| | | _uniqueID,@"unique_id",
|
| | | _idfa,@"android_id",
|
| | | [NSNumber numberWithInt:STOUni_DeviceInfo],@"code",
|
| | | _userAgent,@"userAgent",nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }];
|
| | | |
| | | |
| | | [TUYESDK sharedGameSDK] .sdkDelegate = (id<TUYESDKDelegate>)self;
|
| | | UIViewController *view = UnityGetGLViewController();
|
| | | [[TUYESDK sharedGameSDK] initSDKwithViewController:view gameId:1135 appId:36 channelId:332];
|
| | | }
|
| | |
|
| | |
|
| | | - (void)smpcQpLogoutResult:(NSNotification *)notify {
|
| | | NSLog(@"sdk请求退出");
|
| | | //注销成功
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:STOUni_YNmbxxjLogoutOk], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | |
| | | }
|
| | |
|
| | | -(void)SendMessageToUnity:(NSDictionary*)dict
|
| | | {
|
| | | BOOL _result = [NSJSONSerialization isValidJSONObject:dict];
|
| | | if(_result)
|
| | | {
|
| | | NSData* _jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:NULL];
|
| | | UnitySendMessage(FUNC_NAME_GAME, FUNCTION_NAME,
|
| | | [[[NSString alloc] initWithData:_jsonData encoding:NSUTF8StringEncoding] UTF8String]);
|
| | | }
|
| | | }
|
| | |
|
| | | -(void) BatteryThread {
|
| | | while (TRUE)
|
| | | {
|
| | | [NSThread sleepForTimeInterval:1];
|
| | | |
| | | UIDevice *_device = [UIDevice currentDevice];
|
| | | |
| | | int _state = [_device batteryState];
|
| | | if(_state != cZhuangtaiBattery){
|
| | | cZhuangtaiBattery = _state;
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:cZhuangtaiBattery], @"status",
|
| | | [NSNumber numberWithInt:STOUni_BatteryCharging], @"code", nil];
|
| | | |
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | | |
| | | int _level = (int)([_device batteryLevel] * 100);
|
| | | if(_level != cClassBattery){
|
| | | cClassBattery = _level;
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:cClassBattery], @"level",
|
| | | [NSNumber numberWithInt:STOUni_BatteryLevel], @"code", nil];
|
| | | |
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | | }
|
| | | }
|
| | |
|
| | | -(void) OpenURL:(NSString*) url {
|
| | | |
| | | if(m_jiaWKWebView != NULL) {
|
| | | [self btnClick:NULL];
|
| | | return;
|
| | | }
|
| | | |
| | | CGRect b_ounds = UnityGetMainWindow().bounds;
|
| | | |
| | | float s_cale = b_ounds.size.width / (1300 + 34);
|
| | | |
| | | float w_idth = (900 + 82) * s_cale;
|
| | | float h_eight = (500 + 60) * s_cale;
|
| | | |
| | | float _offsetX = (b_ounds.size.width - w_idth) * .5f;
|
| | | float _offsetY = (b_ounds.size.height - h_eight) * .5f;
|
| | | |
| | | m_jiaWKWebView = [[WKWebView alloc] initWithFrame:CGRectMake(_offsetX, _offsetY, w_idth, h_eight)];
|
| | | m_jiaWKWebView.UIDelegate = self;
|
| | | m_jiaWKWebView.navigationDelegate = self ;
|
| | | m_jiaWKWebView.scrollView.scrollEnabled = YES;
|
| | | m_jiaWKWebView.scrollView.bounces = NO;
|
| | | NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:url]];
|
| | | [m_jiaWKWebView loadRequest:request];
|
| | | |
| | | |
| | | }
|
| | |
|
| | | -(void) btnClick:(UIButton*)sender {
|
| | | [c_loseBtn removeFromSuperview];
|
| | | [c_loseBtn removeTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
|
| | | c_loseBtn = NULL;
|
| | | |
| | | NSURLCache *_cache = [NSURLCache sharedURLCache];
|
| | | [_cache removeAllCachedResponses];
|
| | | [_cache setDiskCapacity:0];
|
| | | [_cache setMemoryCapacity:0];
|
| | | |
| | | [m_jiaWKWebView removeFromSuperview];
|
| | | m_jiaWKWebView = NULL;
|
| | | }
|
| | |
|
| | |
|
| | | //-(void)webViewDidFinishLoad:(WKWebView *)webView{
|
| | | - (void)webView:(WKWebView *)webView didFinishNavigation:(null_unspecified WKNavigation *)navigation{
|
| | | |
| | | CGRect _bounds = UnityGetMainWindow().bounds;
|
| | | |
| | | float _scale = _bounds.size.width / 1334;
|
| | | |
| | | float _width = 982 * _scale;
|
| | | float _height = 560 * _scale;
|
| | | |
| | | c_loseBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
|
| | | [c_loseBtn setFrame:CGRectMake(_width - 600 * _scale, _height - 86 * _scale, 360 * _scale, 72 * _scale)];
|
| | | [c_loseBtn setTitle:@"OK" forState:UIControlStateNormal];
|
| | | |
| | | NSString *_bundlePath = [[NSBundle mainBundle] pathForResource:@"YnmbxxjRES.bundle" ofType:nil];
|
| | | NSBundle *_bundle = [NSBundle bundleWithPath:_bundlePath];
|
| | | NSString *pic1Path = [_bundle pathForResource:@"anniu.png" ofType:nil];
|
| | | |
| | | [c_loseBtn setBackgroundImage:[UIImage imageWithContentsOfFile:pic1Path] forState:UIControlStateNormal];
|
| | | [c_loseBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
| | | [c_loseBtn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
|
| | | |
| | | [m_jiaWKWebView addSubview:c_loseBtn];
|
| | | |
| | | UIView *view = UnityGetGLViewController().view;
|
| | | [view addSubview:m_jiaWKWebView];
|
| | | }
|
| | |
|
| | | -(void)YngameSDKInit:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
|
| | | NSLog(@"初始化成功");
|
| | | |
| | | [[TUYESDK sharedGameSDK] application:application
|
| | | didFinishLaunchingWithOptions:launchOptions];
|
| | | |
| | | }
|
| | |
|
| | |
|
| | | #pragma mark - 回调结果
|
| | | - (void)onInitSuccess
|
| | | {
|
| | | NSLog(@"\n***************初始化成功****************");
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:STOUni_YNmbxxjInitOk], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | |
| | | NSMutableDictionary *d_i_ct1 = [NSMutableDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:STOUni_SdkInitComplete], @"code",
|
| | | @"hyyn", @"channelPlatform", nil];
|
| | | [self SendMessageToUnity:d_i_ct1];
|
| | | }
|
| | | - (void)onInitFail:(NSError *)kerror
|
| | | {
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:STOUni_YNmbxxjInitFail], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | |
|
| | |
|
| | | - (void)onLoginSuccess:(id )user
|
| | | {
|
| | |
|
| | | NSString *uid = user[@"user_id"];
|
| | | NSString *gameUID = [NSString stringWithFormat:@"%@@1", uid];
|
| | |
|
| | | NSLog(@" 登陆参数:「%@ %@ %@」", uid, user[@"timestamp"], user[@"sign"]);
|
| | | |
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSDictionary dictionaryWithObjectsAndKeys:user[@"sign"], @"token",
|
| | | uid, @"userName",
|
| | | user[@"timestamp"], @"token_expire",
|
| | | gameUID, @"account", nil],@"info",
|
| | | [NSNumber numberWithInt:STOUni_YNmbxxjLoginOk], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | |
|
| | | - (void)onLoginFail:(NSError *)kerror
|
| | | {
|
| | | //self.resultLabel.text = [NSString stringWithFormat:@"登录失败\nerror:%@",kerror.localizedDescription];
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:STOUni_YNmbxxjLoginFail], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | |
|
| | | - (void)onLogout
|
| | | {
|
| | | NSLog(@"注销");
|
| | | //self.resultLabel.text = @"注销成功";
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:STOUni_YNmbxxjLogoutOk], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | | - (void)onPaySuccess{
|
| | | NSLog(@"充值调用返回");
|
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSNumber numberWithInt:STOUni_YNmbxxjPayOk], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | }
|
| | |
|
| | |
|
| | | -(id) APNativeJSONObject:(NSData *)data{
|
| | | if (!data) {
|
| | | return nil;
|
| | | }
|
| | | |
| | | NSError *error = nil;
|
| | | id retId = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
|
| | | |
| | | if (error) {
|
| | | NSLog(@"%s trans data to obj with error: %@", __func__, error);
|
| | | return nil;
|
| | | }
|
| | | |
| | | return retId;
|
| | | }
|
| | |
|
| | | -(void)HandleGameMessage:(NSString *)json {
|
| | | |
| | | NSLog(@"收到Unity发来的消息 => %@", json);
|
| | | |
| | | NSData *_jsonData = [json dataUsingEncoding:NSUTF8StringEncoding];
|
| | | NSDictionary *d_i_ct = [self APNativeJSONObject:_jsonData];
|
| | | |
| | | switch([[d_i_ct objectForKey:@"code"] intValue]){
|
| | | case UTOSDK_Init:
|
| | | cYingyongID = d_i_ct[@"appID"];
|
| | | cYouxiID = d_i_ct[@"gameID"];
|
| | | [self Init];
|
| | |
|
| | | break;
|
| | | case UTOSDK_CopyContent:
|
| | | [UIPasteboard generalPasteboard].string = d_i_ct[@"content"];
|
| | | break;
|
| | | case UTOSDK_YNmbxxjInit:
|
| | | break;
|
| | | case UTOSDK_MakeKeyAndVisible:
|
| | | {
|
| | | UIWindow * _window = [[UIApplication sharedApplication].delegate window];
|
| | | if (_window != nil && _window.rootViewController != nil) {
|
| | | [_window makeKeyAndVisible];
|
| | | }
|
| | | }
|
| | | break;
|
| | | case UTOSDK_OpenWebView:
|
| | | [self OpenURL:d_i_ct[@"url"]];
|
| | | break;
|
| | | case UTOSDK_YNmbxxjLogin:
|
| | | {
|
| | | [[TUYESDK sharedGameSDK] login];
|
| | | }
|
| | | break;
|
| | | case UTOSDK_YNmbxxjLogout:
|
| | | {
|
| | | [[TUYESDK sharedGameSDK] logout];
|
| | | }
|
| | | break;
|
| | | case UTOSDK_CreateRole:
|
| | | {
|
| | | [[TUYESDK sharedGameSDK] roleCreateWithRoleId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleID"]] roleName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleName"]] roleLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"level"]] serverName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"serverName"]] serverId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"sid"]] userMoney:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"money"]] vipLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"vipLevel"]]];
|
| | | break;
|
| | | }
|
| | | case UTOSDK_RoleLogin:
|
| | | {
|
| | | // 更新角色信息
|
| | | [[TUYESDK sharedGameSDK] roleLoginWithRoleId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleID"]] roleName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleName"]] roleLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"level"]] serverName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"serverName"]] serverId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"sid"]] userMoney:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"money"]] vipLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"vipLevel"]]];
|
| | | break;
|
| | | }
|
| | | |
| | | case UTOSDK_RoleLevelUp:
|
| | | {
|
| | | // 更新角色信息
|
| | | [[TUYESDK sharedGameSDK] roleLevelUpWithRoleId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleID"]] roleName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleName"]] roleLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"level"]] serverName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"serverName"]] serverId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"sid"]] userMoney:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"money"]] vipLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"vipLevel"]]];
|
| | | break;
|
| | | }
|
| | | case UTOSDK_YNmbxxjPay:
|
| | | {
|
| | |
|
| | | NSString *extra = [NSString stringWithFormat:@"1_%@_%@_%@", [NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"orderId"]],
|
| | | [NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"sid"]],
|
| | | [NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"cpInfo"]]];
|
| | | |
| | | [[TUYESDK sharedGameSDK] IAPWithProductId:[NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"storeOrderInfo"]] productDesc:[NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"title"]] amount:[NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"mount"]] cpOrderId:[NSString stringWithFormat:@"%@", [d_i_ct objectForKey:@"orderId"]] callBackUrl:@"Pxrv%3A%3EW%3B%26A%26qGEf%5D1%3B4Pip6Lrvc%5BChojgYPV%2A%3B%3Bm%7BBDbK%28kX%3Bm%60Ey40%2CO%609HKz%26T0%268" callBackInfo:extra roleId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleID"]] roleName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"roleName"]] roleLevel:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"level"]] serverId:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"sid"]] serverName:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"serverName"]]];
|
| | | |
| | | break;
|
| | | }
|
| | | case UTOSDK_BatteryListenStart:
|
| | | if(_xianchengThd == NULL)
|
| | | {
|
| | | _xianchengThd = [[NSThread alloc] initWithTarget:self selector:@selector(BatteryThread) object:nil];
|
| | | [_xianchengThd setName:@"BatteryCheck"];
|
| | | }
|
| | | if(![_xianchengThd isExecuting])
|
| | | {
|
| | | [_xianchengThd start];
|
| | | }
|
| | | break;
|
| | | case UTOSDK_BatteryListenStop:
|
| | | break;
|
| | | case UTOSDK_ShareToFaceBook:
|
| | | {
|
| | | [[TUYESDK sharedGameSDK] shareUrlWithResult:^(BOOL isSuccess) {
|
| | | NSLog(@"%@%@",@"facebookShareURL ",isSuccess?@"YES":@"NO");
|
| | | }];
|
| | | |
| | | NSDictionary *d_i_ct = [NSDictionary dictionaryWithObjectsAndKeys:
|
| | | [NSDictionary dictionaryWithObjectsAndKeys:@"1", @"state", nil],@"info",
|
| | | [NSNumber numberWithInt:STOUni_FBShareResult], @"code", nil];
|
| | | [self SendMessageToUnity:d_i_ct];
|
| | | break;
|
| | | }
|
| | |
|
| | | case UTOSDK_GotoPingfen:
|
| | | [[TUYESDK sharedGameSDK] appStoreReview];
|
| | | break;
|
| | | case UTOSDK_FansHouse:
|
| | | [[TUYESDK sharedGameSDK] facebookFansHome];
|
| | | break;
|
| | | case UTOSDK_GotoShop:
|
| | | [[TUYESDK sharedGameSDK] appStore];
|
| | | break;
|
| | | case UTOSDK_TrackEvent:
|
| | | //isRepeat:NO仅上报一次,YES允许重复上报(一般看运营要求)
|
| | | [[TUYESDK sharedGameSDK] reportTrackEvent:[NSString stringWithFormat:@"%@",[d_i_ct objectForKey:@"eventName"]] isRepeat:[[d_i_ct objectForKey:@"eventName"] boolValue]];
|
| | | break;
|
| | | }
|
| | | }
|
| | | @end
|
| | |
|
| | |
|