add
This commit is contained in:
66
Assets/3rd/UnityMobileInput/Plugins/iOS/Common.m
Normal file
66
Assets/3rd/UnityMobileInput/Plugins/iOS/Common.m
Normal file
@@ -0,0 +1,66 @@
|
||||
// ----------------------------------------------------------------------------
|
||||
// The MIT License
|
||||
// UnityMobileInput https://github.com/mopsicus/UnityMobileInput
|
||||
// Copyright (c) 2018 Mopsicus <mail@mopsicus.ru>
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
#import "Common.h"
|
||||
|
||||
@implementation Common
|
||||
|
||||
static NSString *object;
|
||||
static NSString *receiver;
|
||||
|
||||
// Convert JSON string to NSDictionary
|
||||
+ (NSDictionary *)jsonToDict:(NSString *)json {
|
||||
NSError *error;
|
||||
NSData *data = [json dataUsingEncoding:NSUTF8StringEncoding];
|
||||
return (error) ? NULL : [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
|
||||
}
|
||||
|
||||
// Convert NSDictionary to JSON string
|
||||
+ (NSString *)dictToJson:(NSDictionary *)dict {
|
||||
NSError *error;
|
||||
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
|
||||
return (error) ? NULL : [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
|
||||
}
|
||||
|
||||
// Plugins initialize
|
||||
+ (void)initialize:(NSString *)data {
|
||||
NSDictionary *params = [self jsonToDict:data];
|
||||
object = [params valueForKey:@"object"];
|
||||
receiver = [params valueForKey:@"receiver"];
|
||||
}
|
||||
|
||||
// Send data in JSON format to Unity
|
||||
+ (void)sendData:(NSString *)plugin data:(NSString *)data {
|
||||
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
|
||||
[dict setValue:plugin forKey:@"name"];
|
||||
[dict setValue:data forKey:@"data"];
|
||||
NSString *result = [self dictToJson:dict];
|
||||
UnitySendMessage([object cStringUsingEncoding:NSUTF8StringEncoding], [receiver cStringUsingEncoding:NSUTF8StringEncoding], [result cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||
}
|
||||
|
||||
// Send error
|
||||
+ (void)sendError:(NSString *)plugin code:(NSString *)code {
|
||||
[self sendError:plugin code:code data:NULL];
|
||||
}
|
||||
|
||||
// Send error in JSON format to Unity
|
||||
+ (void)sendError:(NSString *)plugin code:(NSString *)code data:(NSString *)data {
|
||||
NSDictionary *error = [NSDictionary dictionaryWithObjectsAndKeys:code, @"code", data, @"message", nil];
|
||||
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
|
||||
[dict setValue:plugin forKey:@"name"];
|
||||
[dict setValue:error forKey:@"error"];
|
||||
NSString *result = [self dictToJson:dict];
|
||||
UnitySendMessage([object cStringUsingEncoding:NSUTF8StringEncoding], [receiver cStringUsingEncoding:NSUTF8StringEncoding], [result cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||
}
|
||||
|
||||
// Init plugins system
|
||||
void pluginsInit(const char *data) {
|
||||
[Common initialize:[NSString stringWithUTF8String:data]];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user