87 lines
2.2 KiB
Mathematica
87 lines
2.2 KiB
Mathematica
|
|
//
|
||
|
|
// TATrackEvent.m
|
||
|
|
// ThinkingSDK
|
||
|
|
//
|
||
|
|
// Created by Yangxiongon 2022/6/12.
|
||
|
|
//
|
||
|
|
|
||
|
|
#import "TDTrackEvent.h"
|
||
|
|
#import "TDPresetProperties.h"
|
||
|
|
|
||
|
|
#if __has_include(<ThinkingDataCore/NSDate+TDCore.h>)
|
||
|
|
#import <ThinkingDataCore/NSDate+TDCore.h>
|
||
|
|
#else
|
||
|
|
#import "NSDate+TDCore.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if __has_include(<ThinkingDataCore/TDCoreDeviceInfo.h>)
|
||
|
|
#import <ThinkingDataCore/TDCoreDeviceInfo.h>
|
||
|
|
#else
|
||
|
|
#import "TDCoreDeviceInfo.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#if __has_include(<ThinkingDataCore/TDCorePresetDisableConfig.h>)
|
||
|
|
#import <ThinkingDataCore/TDCorePresetDisableConfig.h>
|
||
|
|
#else
|
||
|
|
#import "TDCorePresetDisableConfig.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
@implementation TDTrackEvent
|
||
|
|
|
||
|
|
- (instancetype)initWithName:(NSString *)eventName {
|
||
|
|
if (self = [self init]) {
|
||
|
|
self.eventName = eventName;
|
||
|
|
}
|
||
|
|
return self;
|
||
|
|
}
|
||
|
|
|
||
|
|
- (instancetype)init
|
||
|
|
{
|
||
|
|
self = [super init];
|
||
|
|
if (self) {
|
||
|
|
self.eventType = TDEventTypeTrack;
|
||
|
|
self.systemUpTime = [TDCoreDeviceInfo bootTime];
|
||
|
|
}
|
||
|
|
return self;
|
||
|
|
}
|
||
|
|
|
||
|
|
- (void)validateWithError:(NSError *__autoreleasing _Nullable *)error {
|
||
|
|
|
||
|
|
[TDPropertyValidator validateEventOrPropertyName:self.eventName withError:error];
|
||
|
|
}
|
||
|
|
|
||
|
|
- (NSMutableDictionary *)jsonObject {
|
||
|
|
NSMutableDictionary *dict = [super jsonObject];
|
||
|
|
|
||
|
|
dict[@"#event_name"] = self.eventName;
|
||
|
|
|
||
|
|
if (![TDCorePresetDisableConfig disableDuration]) {
|
||
|
|
if (self.foregroundDuration > 0) {
|
||
|
|
self.properties[@"#duration"] = @([NSString stringWithFormat:@"%.3f", self.foregroundDuration].floatValue);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if (![TDCorePresetDisableConfig disableBackgroundDuration]) {
|
||
|
|
if (self.backgroundDuration > 0) {
|
||
|
|
self.properties[TD_BACKGROUND_DURATION] = @([NSString stringWithFormat:@"%.3f", self.backgroundDuration].floatValue);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
self.properties[@"#zone_offset"] = @([self timeZoneOffset]);
|
||
|
|
|
||
|
|
return dict;
|
||
|
|
}
|
||
|
|
|
||
|
|
- (double)timeZoneOffset {
|
||
|
|
NSTimeZone *tz = self.timeZone ?: [NSTimeZone localTimeZone];
|
||
|
|
return [[NSDate date] td_timeZoneOffset:tz];
|
||
|
|
}
|
||
|
|
|
||
|
|
//MARK: - Delegate
|
||
|
|
|
||
|
|
- (void)ta_validateKey:(NSString *)key value:(id)value error:(NSError *__autoreleasing _Nullable *)error {
|
||
|
|
[TDPropertyValidator validateNormalTrackEventPropertyKey:key value:value error:error];
|
||
|
|
}
|
||
|
|
|
||
|
|
@end
|