ios-unity/Classes_cocos/UIViewController+Logger.mm
2023-03-21 19:24:54 +08:00

57 lines
1.5 KiB
Plaintext

//
// UIViewController+Logger.cpp
// Unity-iPhone
//
// Created by Hl Zhang on 2023/3/21.
//
#include <stdio.h>
#include <string>
#import "UIViewController+Logger.h"
#import <Foundation/Foundation.h>
#import "NSString+Customer.h"
@import FirebaseAnalytics;
@implementation UIViewController (Logger)
-(NSDictionary *)parseJSONString:(NSString *)jsonString{
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *error = nil;
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
if (error != nil) {
NSLog(@"Error parsing JSON string: %@", error.localizedDescription);
return nil;
}
return result;
}
-(void)logEvent:(NSString *)content{
if ([NSString isStringEmpty:content]) {
NSLog(@"Content is empty");
return;
}
NSDictionary *jsonDict = [self parseJSONString:content];
if (jsonDict == nil) {
NSLog(@"Error parsing JSON string");
return;
}
NSString *name = jsonDict[@"name"];
if ([NSString isStringEmpty:name]) {
name = @"name";
}
[FIRAnalytics logEventWithName:@"custom_event" parameters:@{
@"content": content
}];
}
extern "C" void nativeLogEvent(const char *content) {
NSString *contentStr = [NSString stringWithCString:content encoding: NSUTF8StringEncoding];
dispatch_async(dispatch_get_main_queue(), ^{
UIWindow* window = [[[UIApplication sharedApplication] delegate] window];
[window.rootViewController logEvent: contentStr];
});
}
@end