122 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Mathematica
		
	
	
	
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Target_Analytics.m
							 | 
						||
| 
								 | 
							
								//  ThinkingSDK
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//  Created by 杨雄 on 2024/3/18.
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#import "Target_Analytics.h"
							 | 
						||
| 
								 | 
							
								#import "TDAnalytics+Public.h"
							 | 
						||
| 
								 | 
							
								#import "TDAnalytics+Multiple.h"
							 | 
						||
| 
								 | 
							
								#import "TDAnalytics+Private.h"
							 | 
						||
| 
								 | 
							
								#import "ThinkingAnalyticsSDKPrivate.h"
							 | 
						||
| 
								 | 
							
								#import "TDAnalyticsPresetProperty.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if __has_include(<ThinkingDataCore/ThinkingDataCore.h>)
							 | 
						||
| 
								 | 
							
								#import <ThinkingDataCore/ThinkingDataCore.h>
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								#import "ThinkingDataCore.h"
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@implementation Target_Analytics
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)Action_nativeInitWithParams:(NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    TDSettings *settings = params[@"settings"];
							 | 
						||
| 
								 | 
							
								    if (![settings isKindOfClass:TDSettings.class]) {
							 | 
						||
| 
								 | 
							
								        return;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    [TDAnalytics enableLog:settings.enableLog];
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    TDConfig *config = [[TDConfig alloc] init];
							 | 
						||
| 
								 | 
							
								    config.appid = settings.appId;
							 | 
						||
| 
								 | 
							
								    config.serverUrl = settings.serverUrl;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    TDMode mode = TDModeNormal;
							 | 
						||
| 
								 | 
							
								    switch (settings.mode) {
							 | 
						||
| 
								 | 
							
								        case TDSDKModeNomal:{
							 | 
						||
| 
								 | 
							
								            mode = TDModeNormal;
							 | 
						||
| 
								 | 
							
								        } break;
							 | 
						||
| 
								 | 
							
								        case TDSDKModeDebug:{
							 | 
						||
| 
								 | 
							
								            mode = TDModeDebug;
							 | 
						||
| 
								 | 
							
								        } break;
							 | 
						||
| 
								 | 
							
								        case TDSDKModeDebugOnly:{
							 | 
						||
| 
								 | 
							
								            mode = TDModeDebugOnly;
							 | 
						||
| 
								 | 
							
								        } break;
							 | 
						||
| 
								 | 
							
								        default:
							 | 
						||
| 
								 | 
							
								            break;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    config.mode = mode;
							 | 
						||
| 
								 | 
							
								    config.appid = settings.appId;
							 | 
						||
| 
								 | 
							
								    config.defaultTimeZone = settings.defaultTimeZone;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    if (![NSString td_isEmpty:settings.encryptKey]) {
							 | 
						||
| 
								 | 
							
								        [config enableEncryptWithVersion:settings.encryptVersion publicKey:settings.encryptKey];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    config.enableAutoPush = settings.enableAutoPush;
							 | 
						||
| 
								 | 
							
								    config.enableAutoCalibrated = settings.enableAutoCalibrated;
							 | 
						||
| 
								 | 
							
								    [TDAnalytics startAnalyticsWithConfig:config];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (nullable NSString *)Action_nativeGetAccountIdWithParams:(nullable NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSString *accountId = [[ThinkingAnalyticsSDK instanceWithAppid:appId] innerAccountId];
							 | 
						||
| 
								 | 
							
								    return accountId;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (nullable NSString *)Action_nativeGetDistinctIdWithParams:(nullable NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSString *distinctId = [TDAnalytics getDistinctIdWithAppId:appId];
							 | 
						||
| 
								 | 
							
								    return distinctId;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)Action_nativeTrackEventWithParams:(nullable NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSString *eventName = params[@"eventName"];
							 | 
						||
| 
								 | 
							
								    NSDictionary *properties = params[@"properties"];
							 | 
						||
| 
								 | 
							
								    if ([eventName isKindOfClass:NSString.class] && eventName.length > 0) {
							 | 
						||
| 
								 | 
							
								        [TDAnalytics track:eventName properties:properties withAppId:appId];
							 | 
						||
| 
								 | 
							
								        [TDAnalytics flushWithAppId:appId];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)Action_nativeUserSetWithParams:(nullable NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSDictionary *properties = params[@"properties"];
							 | 
						||
| 
								 | 
							
								    if ([properties isKindOfClass:NSDictionary.class] && properties.count > 0) {
							 | 
						||
| 
								 | 
							
								        [TDAnalytics userSet:properties withAppId:appId];
							 | 
						||
| 
								 | 
							
								        [TDAnalytics flushWithAppId:appId];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (nullable NSDictionary *)Action_nativeGetPresetPropertiesWithParams:(nullable NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSDictionary *dict = [TDAnalyticsPresetProperty propertiesWithAppId:appId];
							 | 
						||
| 
								 | 
							
								    return dict;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (void)Action_nativeTrackDebugEventWithParams:(NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    NSString *eventName = params[@"eventName"];
							 | 
						||
| 
								 | 
							
								    NSDictionary *properties = params[@"properties"];
							 | 
						||
| 
								 | 
							
								    if ([eventName isKindOfClass:NSString.class] && eventName.length > 0) {
							 | 
						||
| 
								 | 
							
								        [TDAnalytics trackDebug:eventName properties:properties appId:appId];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (BOOL)Action_nativeGetEnableAutoPushWithParams:(NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSString *appId = params[@"appId"];
							 | 
						||
| 
								 | 
							
								    return [[[ThinkingAnalyticsSDK instanceWithAppid:appId] config] enableAutoPush];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (NSArray<NSString *> *)Action_nativeGetAllAppIdsWithParams:(NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    NSDictionary *instances = [ThinkingAnalyticsSDK _getAllInstances];
							 | 
						||
| 
								 | 
							
								    return instances.allKeys;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								- (NSString *)Action_nativeGetSDKVersionWithParams:(NSDictionary *)params {
							 | 
						||
| 
								 | 
							
								    return [TDAnalytics getSDKVersion];
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								@end
							 |