153 lines
5.6 KiB
Objective-C
153 lines
5.6 KiB
Objective-C
#if __has_include(<ThinkingSDK/ThinkingAnalyticsSDK.h>)
|
|
#import <ThinkingSDK/ThinkingAnalyticsSDK.h>
|
|
#else
|
|
#import "ThinkingAnalyticsSDK.h"
|
|
#endif
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <CoreTelephony/CTCarrier.h>
|
|
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
|
|
#import <objc/runtime.h>
|
|
#import <WebKit/WebKit.h>
|
|
|
|
#if TARGET_OS_IOS
|
|
#import "ThinkingExceptionHandler.h"
|
|
#import "TDAutoTrackEvent.h"
|
|
#import "TDAutoTrackSuperProperty.h"
|
|
#import "TDEncrypt.h"
|
|
#else
|
|
#import "TDAutoTrackConst.h"
|
|
#endif
|
|
|
|
#import "TDLogging.h"
|
|
#import "TDDeviceInfo.h"
|
|
#import "TDCommonUtil.h"
|
|
#import "TDConfig.h"
|
|
#import "TDSqliteDataQueue.h"
|
|
#import "TDEventModel.h"
|
|
|
|
#import "TDTrackTimer.h"
|
|
#import "TDSuperProperty.h"
|
|
#import "TDTrackEvent.h"
|
|
#import "TDTrackFirstEvent.h"
|
|
#import "TDTrackOverwriteEvent.h"
|
|
#import "TDTrackUpdateEvent.h"
|
|
#import "TDUserPropertyHeader.h"
|
|
#import "TDPropertyPluginManager.h"
|
|
#import "TDPresetPropertyPlugin.h"
|
|
#import "TDBaseEvent+H5.h"
|
|
#import "TDEventTracker.h"
|
|
#import "TDAppLifeCycle.h"
|
|
|
|
#if __has_include(<ThinkingDataCore/NSDate+TDCore.h>)
|
|
#import <ThinkingDataCore/NSDate+TDCore.h>
|
|
#else
|
|
#import "NSDate+TDCore.h"
|
|
#endif
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
#ifndef td_dispatch_main_sync_safe
|
|
#define td_dispatch_main_sync_safe(block)\
|
|
if (dispatch_queue_get_label(DISPATCH_CURRENT_QUEUE_LABEL) == dispatch_queue_get_label(dispatch_get_main_queue())) {\
|
|
block();\
|
|
} else {\
|
|
dispatch_sync(dispatch_get_main_queue(), block);\
|
|
}
|
|
#endif
|
|
|
|
#define kDefaultTimeFormat @"yyyy-MM-dd HH:mm:ss.SSS"
|
|
|
|
@interface ThinkingAnalyticsSDK ()
|
|
|
|
@property (atomic, copy, nullable) NSString *accountId;
|
|
@property (atomic, copy) NSString *identifyId;
|
|
/// TD error callback
|
|
@property (atomic, copy) void(^errorCallback)(NSInteger code, NSString * _Nullable errorMsg, NSString * _Nullable ext);
|
|
@property (atomic, assign, getter=isTrackPause) BOOL trackPause;
|
|
@property (atomic, assign) BOOL isEnabled;
|
|
@property (nonatomic, strong) TDConfig *config;
|
|
@property (atomic, strong) NSMutableSet *ignoredViewControllers;
|
|
@property (atomic, strong) NSMutableSet *ignoredViewTypeList;
|
|
|
|
#if TARGET_OS_IOS
|
|
@property (nonatomic, strong) TDAutoTrackSuperProperty *autoTrackSuperProperty;
|
|
@property (nonatomic, strong) TDEncryptManager *encryptManager;
|
|
- (void)autoTrackWithEvent:(TDAutoTrackEvent *)event properties:(nullable NSDictionary *)properties;
|
|
- (BOOL)isViewControllerIgnored:(UIViewController *)viewController;
|
|
#endif
|
|
|
|
|
|
+ (dispatch_queue_t)sharedTrackQueue;
|
|
+ (dispatch_queue_t)sharedNetworkQueue;
|
|
|
|
// TAThirdParty model used.
|
|
- (NSString *)getAccountId;
|
|
- (BOOL)hasDisabled;
|
|
+ (BOOL)isTrackEvent:(NSString *)eventType;
|
|
- (void)startFlushTimer;
|
|
+ (NSMutableDictionary *)_getAllInstances;
|
|
+ (NSString *)defaultAppId;
|
|
- (void)asyncTrackEventObject:(TDTrackEvent *)event properties:(NSDictionary * _Nullable)properties isH5:(BOOL)isH5;
|
|
- (void)asyncUserEventObject:(TDUserEvent *)event properties:(NSDictionary * _Nullable)properties isH5:(BOOL)isH5;
|
|
|
|
- (instancetype)initWithConfig:(TDConfig *)config;
|
|
- (instancetype)initLight:(NSString *)appid withServerURL:(NSString *)serverURL withConfig:(TDConfig *)config;
|
|
|
|
+ (nullable ThinkingAnalyticsSDK *)defaultInstance;
|
|
+ (nullable ThinkingAnalyticsSDK *)instanceWithAppid:(NSString *)appid;
|
|
|
|
- (void)innerTrack:(NSString *)event;
|
|
- (void)innerTrack:(NSString *)event properties:(NSDictionary * _Nullable)propertieDict;
|
|
- (void)innerTrack:(NSString *)event properties:(NSDictionary * _Nullable)propertieDict time:(NSDate * _Nullable)time timeZone:(NSTimeZone * _Nullable)timeZone;
|
|
- (void)innerTrackWithEventModel:(TDEventModel *)eventModel;
|
|
- (void)innerTrackDebug:(NSString *)event properties:(NSDictionary * _Nullable)propertieDict;
|
|
- (void)innerTimeEvent:(NSString *)event;
|
|
- (NSString *)innerAccountId;
|
|
- (NSString *)innerDistinctId;
|
|
- (void)innerSetIdentify:(NSString *)distinctId;
|
|
- (void)innerLogin:(NSString *)accountId;
|
|
- (void)innerLogout;
|
|
- (void)innerUserSet:(NSDictionary *)properties;
|
|
- (void)innerUserUnset:(NSString *)propertyName;
|
|
- (void)innerUserUnsets:(NSArray<NSString *> *)propertyNames;
|
|
- (void)innerUserSetOnce:(NSDictionary *)properties;
|
|
- (void)innerUserAdd:(NSDictionary *)properties;
|
|
- (void)innerUserAdd:(NSString *)propertyName andPropertyValue:(NSNumber *)propertyValue;
|
|
- (void)innerUserDelete;
|
|
- (void)innerUserAppend:(NSDictionary<NSString *, NSArray *> *)properties;
|
|
- (void)innerUserUniqAppend:(NSDictionary<NSString *, NSArray *> *)properties;
|
|
|
|
- (void)innerSetSuperProperties:(NSDictionary *)properties;
|
|
- (void)innerUnsetSuperProperty:(NSString *)property;
|
|
- (void)innerClearSuperProperties;
|
|
- (NSDictionary *)innerCurrentSuperProperties;
|
|
- (void)innerRegisterDynamicSuperProperties:(NSDictionary<NSString *, id> *(^)(void))dynamicSuperProperties;
|
|
- (void)innerRegisterErrorCallback:(void(^)(NSInteger code, NSString * _Nullable errorMsg, NSString * _Nullable ext))errorCallback;
|
|
- (TDPresetProperties *)innerGetPresetProperties;
|
|
- (void)innerSetNetworkType:(TDReportingNetworkType)type;
|
|
|
|
- (BOOL)innerIsViewTypeIgnored:(Class)aClass;
|
|
|
|
- (void)innerFlush;
|
|
- (void)innerSetTrackStatus:(TDTrackStatus)status;
|
|
- (ThinkingAnalyticsSDK *)innerCreateLightInstance;
|
|
- (NSString *)innetGetTimeString:(NSDate *)date;
|
|
- (NSString *)instanceAliasNameOrAppId;
|
|
@end
|
|
|
|
@interface TDEventModel ()
|
|
@property (nonatomic, copy) NSString *extraID;
|
|
@property (nonatomic, strong) NSDate *time;
|
|
@property (nonatomic, strong) NSTimeZone *timeZone;
|
|
- (instancetype _Nonnull )initWithEventName:(NSString * _Nullable)eventName eventType:(kEDEventTypeName _Nonnull )eventType;
|
|
@end
|
|
|
|
@interface LightThinkingAnalyticsSDK : ThinkingAnalyticsSDK
|
|
|
|
- (instancetype)initWithAPPID:(NSString *)appID withServerURL:(NSString *)serverURL withConfig:(TDConfig *)config;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|