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
 |