Fixed IOS SDK 增加今日头条sdk;
Fixed IOS SDK 接入今日头条sdk;
Fixed IOS 切换账号没有回调事件;
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 028f19ff0607b43da8c802c940fbfc81 |
| | | folderAsset: yes |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | PluginImporter: |
| | | serializedVersion: 2 |
| | | iconMap: {} |
| | | executionOrder: {} |
| | | isPreloaded: 0 |
| | | isOverridable: 0 |
| | | platformData: |
| | | data: |
| | | first: |
| | | Any: |
| | | second: |
| | | enabled: 0 |
| | | settings: {} |
| | | data: |
| | | first: |
| | | Editor: Editor |
| | | second: |
| | | enabled: 0 |
| | | settings: |
| | | DefaultValueInitialized: true |
| | | data: |
| | | first: |
| | | iPhone: iOS |
| | | second: |
| | | enabled: 1 |
| | | settings: {} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 14af147b00f5448428067bc0bd1a20a7 |
| | | folderAsset: yes |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTABTestConfFetcher.h |
| | | // TTTracker |
| | | // |
| | | // Created by fengyadong on 2017/6/18. |
| | | // Copyright © 2017年 fengyadong. All rights reserved. |
| | | // |
| | | |
| | | //#if (defined TOBSDK) || (defined VALIDATION) |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | typedef void(^TTABTestFinishBlock)(NSDictionary *allConfigs); |
| | | |
| | | @interface TTABTestConfFetcher : NSObject |
| | | |
| | | @property (atomic, copy, readonly) NSDictionary *allConfigs;/*当前最新的全量的配置信息*/ |
| | | @property (atomic, copy, readonly) NSString *abVersions;/*该用户命中的所有客户端AB实验标示*/ |
| | | @property (atomic, copy, readonly) NSString *abServerVersions;/*该用户命中的所有服务端AB实验标示*/ |
| | | |
| | | /** |
| | | 单例方法 |
| | | |
| | | @return TTABTestConfFetcher单例 |
| | | */ |
| | | + (instancetype)sharedInstance; |
| | | |
| | | /** |
| | | 开始异步拉取ABTest配置信息 |
| | | |
| | | @param finishBlock 拉取结束的回调 |
| | | */ |
| | | - (void)startFetchABTestConf:(TTABTestFinishBlock)finishBlock; |
| | | |
| | | /** |
| | | 获取指定ABTest实验的返回值 |
| | | |
| | | @param key ABTest实验的名字 |
| | | @param defaultValue 默认值,如果下发Conf中没有找到对应的key |
| | | @return ABTest的返回值 |
| | | */ |
| | | - (id)getConfig:(NSString *)key defaultValue:(id)defaultValue; |
| | | |
| | | /** |
| | | 设置服务端实验的AB实验参数 |
| | | |
| | | @param versions 服务端实验的AB实验参数 |
| | | */ |
| | | - (void)setServerVersions:(NSString *)versions; |
| | | |
| | | @end |
| | | |
| | | //#endif |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 5d096069665e1462aba68355e7533a19 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTInstallBaseMacro.h |
| | | // Article |
| | | // |
| | | // Created by panxiang on 15/11/5. |
| | | // |
| | | // |
| | | |
| | | #ifndef TTInstallBaseMacro_h |
| | | #define TTInstallBaseMacro_h |
| | | |
| | | #define WeakSelf __weak typeof(self) wself = self |
| | | #define StrongSelf __strong typeof(wself) self = wself |
| | | |
| | | #ifdef DEBUG |
| | | |
| | | #define TTInstallLOGD( s, ... ) NSLog(@"Debug %s: %@", __FUNCTION__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) |
| | | |
| | | #define TTInstallLOGT( s, ... ) NSLog(@"Trace %s: %@", __FUNCTION__, [NSString stringWithFormat:(s), ##__VA_ARGS__]) |
| | | |
| | | #define TTInstallTICK NSDate *startTime = [NSDate date] |
| | | #define TTInstallTOCK LOGD(@"took time: %f seconds.", -[startTime timeIntervalSinceNow]) |
| | | |
| | | #else |
| | | |
| | | #define TTInstallLOGD( s, ... ) |
| | | #define TTInstallLOGT( s, ... ) |
| | | #define TTInstallTICK |
| | | #define TTInstallTOCK |
| | | |
| | | #endif |
| | | |
| | | |
| | | #ifndef TTInstallIsEmptyString |
| | | #define TTInstallIsEmptyString(str) (!str || ![str isKindOfClass:[NSString class]] || str.length == 0) |
| | | #endif |
| | | |
| | | #ifndef TTInstallIsEmptyArray |
| | | #define TTInstallIsEmptyArray(array) (!array || ![array isKindOfClass:[NSArray class]] || array.count == 0) |
| | | #endif |
| | | |
| | | #ifndef TTInstallIsEmptyDictionary |
| | | #define TTInstallIsEmptyDictionary(dict) (!dict || ![dict isKindOfClass:[NSDictionary class]] || ((NSDictionary *)dict).count == 0) |
| | | #endif |
| | | |
| | | #endif /* TTInstallBaseMacro_h */ |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: e093e6de16cd449b4b0457b63176f5df |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTInstallIDManager.h |
| | | // Article |
| | | // |
| | | // Created by fengyadong on 17-3-14. |
| | | // |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | /** 设备注册完成回调 */ |
| | | typedef void(^TTInstallDidRegisterBlock)(NSString *deviceID, NSString *installID, NSString *ssID); |
| | | |
| | | /** 自定义Header中的扩展字段,在header中独立的custom结构中 */ |
| | | typedef NSDictionary<NSString*, id> *(^TTCustomHeaderBlock)(void); |
| | | |
| | | @interface TTInstallIDManager : NSObject |
| | | |
| | | @property (nonatomic, copy, readonly) NSString *appID;/** app的唯一标示,由头条数据仓库团队统一分配 */ |
| | | @property (nonatomic, copy, readonly) NSString *channel;/** 渠道名称 */ |
| | | @property (nonatomic, copy, readonly) NSString *deviceID;/** 设备id */ |
| | | @property (nonatomic, copy, readonly) NSString *installID;/** 安装id */ |
| | | @property (nonatomic, copy, readonly) NSString *appName; |
| | | @property (nonatomic, copy, readonly) NSString *ssID;/** 用户id,串联匿名和登录用户 */ |
| | | @property (nonatomic, copy, readonly) NSString *userUniqueID;/** 正在注册ssid的user_unique_id */ |
| | | |
| | | @property (nonatomic, copy) TTCustomHeaderBlock customHeaderBlock;/** 使用方自定义Header参数 */ |
| | | |
| | | + (instancetype)sharedInstance; |
| | | |
| | | |
| | | /** |
| | | 是否开启激活设备开关 |
| | | |
| | | @param enable YES:开启 NO:关闭 default:YES |
| | | |
| | | warning ⚠️:如果要关掉激活设备开关此方法必须在 -startWithAppID:channel:appName:finishBlock前调用 |
| | | */ |
| | | + (void)setActivateDeviceEnable:(BOOL)enable; |
| | | |
| | | //=============================================初始化方法================================================== |
| | | /** |
| | | 开始调用服务端设备注册接口 |
| | | |
| | | @param appID 当前app的唯一标示,由头条数据仓库团队统一分配 |
| | | @param channel 渠道名称,建议正式版App Store 内测版local_test 灰度版用发布的渠道名,如pp |
| | | @param appName 由数据方指定的APP name |
| | | @param didRegisterBlock 设备注册接口完成回调,最多回调一次,没有超时时间。如果已经注册则立马回调,如果还没有则等接口请求解析完成回调。对device_id有依赖的接口可以在这里发送 |
| | | */ |
| | | - (void)startWithAppID:(NSString *)appID |
| | | channel:(NSString *)channel |
| | | appName:(NSString *)appName |
| | | finishBlock:(TTInstallDidRegisterBlock)didRegisterBlock; |
| | | |
| | | //===========================================注册完成回调方法================================================ |
| | | /** |
| | | 设备注册完成的回调 |
| | | |
| | | @param didRegisterBlock 设备注册接口完成回调,最多回调一次,没有超时时间。如果已经注册则立马回调,如果还没有则等接口请求解析完成回调。对device_id有依赖的接口可以在这里发送 |
| | | */ |
| | | - (void)setDidRegisterBlock:(TTInstallDidRegisterBlock)didRegisterBlock; |
| | | |
| | | //=========================================== Debug模式配置 ================================================ |
| | | /** |
| | | 设置当前环境是否为内测版本 |
| | | |
| | | @param isInHouseVersion 是否为内测版本 |
| | | */ |
| | | - (void)setIsInHouseVersion:(BOOL)isInHouseVersion; |
| | | |
| | | //=========================================== User-Profile ================================================ |
| | | |
| | | /** |
| | | 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id |
| | | |
| | | @param uniqueID 用户当前的user_unique_id |
| | | */ |
| | | - (void)setCurrentUserUniqueID:(NSString *)uniqueID; |
| | | |
| | | /** |
| | | 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id,并且关心SSID重新获取的时机 |
| | | |
| | | @param uniqueID 用户当前的user_unique_id |
| | | @param didRetriveBlock 重新获取SSID的回调 |
| | | */ |
| | | - (void)setCurrentUserUniqueID:(NSString *)uniqueID |
| | | didRetriveSSIDBlock:(TTInstallDidRegisterBlock)didRetriveBlock; |
| | | |
| | | @end |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 4c44bda463bd64728b0ed78c6704c621 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTTracker+Game.h |
| | | // Pods |
| | | // |
| | | // Created by fengyadong on 2017/9/13. |
| | | // |
| | | // |
| | | //#if (defined GAMESDK) || (defined VALIDATION) |
| | | |
| | | #import <TTTracker/TTTracker.h> |
| | | |
| | | @interface TTTracker (Game) |
| | | |
| | | /** |
| | | 用户注册流程完成时调用此接口 |
| | | |
| | | @param method 表示注册方式,业务方可以传任意可标识注册方式的值,如注册方式为手机号:method = @"phone" 微信注册:method = @“WeChat”等。 |
| | | 这个参数作用:方便业务方在数据平台以method为key查询数据 |
| | | @param isSuccess 是否注册成功 |
| | | */ |
| | | + (void)registerEventByMethod:(NSString *)method isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 用户登录完成时调用此接口 |
| | | |
| | | @param method 表示登录的方式,如游戏账号、手机号等 |
| | | @param isSuccess 是否登录成功 |
| | | */ |
| | | + (void)loginEventByMethod:(NSString *)method isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 绑定社交账户时调用此接口 |
| | | |
| | | @param method 表示登录的方式,如游戏账号、手机号等 |
| | | @param isSuccess 是否注册成功 |
| | | */ |
| | | |
| | | /** |
| | | 绑定社交账户时调用此接口 |
| | | |
| | | @param type 社交账号类型 如如微信、微博等 |
| | | @param isSuccess 是否绑定成功 |
| | | */ |
| | | + (void)accessAccountEventByType:(NSString *)type isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 完成节点(如教学/任务/副本)时调用此接口 |
| | | |
| | | @param questID 教学/任务/副本等关卡标识符 |
| | | @param type 节点类型 |
| | | @param name 教学/任务/副本等关卡名称 |
| | | @param number 第几个任务节点 |
| | | @param desc 节点描述 |
| | | @param isSuccess 节点是否完成 |
| | | */ |
| | | + (void)questEventWithQuestID:(NSString *)questID |
| | | questType:(NSString *)type |
| | | questName:(NSString *)name |
| | | questNumer:(NSUInteger)number |
| | | description:(NSString *)desc |
| | | isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 用户升级后调用此接口 |
| | | |
| | | @param level 当前用户等级 |
| | | */ |
| | | + (void)updateLevelEventWithLevel:(NSUInteger)level; |
| | | |
| | | /** |
| | | 查看内容/商品详情时调用此接口 |
| | | |
| | | @param type 内容类型如“配备”、“皮肤” |
| | | @param name 商品或内容名称 |
| | | @param contentID 商品或内容标识符 |
| | | */ |
| | | + (void)viewContentEventWithContentType:(NSString *)type |
| | | contentName:(NSString *)name |
| | | contentID:(NSString *)contentID; |
| | | |
| | | /** |
| | | 加入购买/购物车时调用此接口 |
| | | |
| | | @param type 内容类型如“配备”、“皮肤” |
| | | @param name 商品或内容名称 |
| | | @param contentID 商品或内容标识符 |
| | | @param number 商品数量 |
| | | @param isSuccess 加入购买/购物车是否成功 |
| | | */ |
| | | + (void)addCartEventWithContentType:(NSString *)type |
| | | contentName:(NSString *)name |
| | | contentID:(NSString *)contentID |
| | | contentNumber:(NSUInteger)number |
| | | isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 提交购买/下单时调用此接口 |
| | | |
| | | @param type 内容类型如“配备”、“皮肤” |
| | | @param name 商品或内容名称 |
| | | @param contentID 商品或内容标识符 |
| | | @param number 商品数量 |
| | | @param isVirtualCurrency 是否使用的是虚拟货币 |
| | | @param virtualCurrency 虚拟货币类型,如"元宝"、“金币”等 |
| | | @param currency 真实货币类型,ISO 4217代码,如:“USD” |
| | | @param isSuccess 提交购买/下单是否成功 |
| | | */ |
| | | + (void)checkoutEventWithContentType:(NSString *)type |
| | | contentName:(NSString *)name |
| | | contentID:(NSString *)contentID |
| | | contentNumber:(NSUInteger)number |
| | | isVirtualCurrency:(BOOL)isVirtualCurrency |
| | | virtualCurrency:(NSString *)virtualCurrency |
| | | currency:(NSString *)currency |
| | | isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 支付时调用此接口 |
| | | |
| | | @param type 内容类型如“配备”、“皮肤” |
| | | @param name 商品或内容名称 |
| | | @param contentID 商品或内容标识符 |
| | | @param number 商品数量 |
| | | @param channel 支付渠道名,如支付宝、微信等 |
| | | @param currency 真实货币类型,ISO 4217代码,如:“USD” |
| | | @param amount 本次支付的真实货币的金额 |
| | | @param isSuccess 支付是否成功 |
| | | */ |
| | | + (void)purchaseEventWithContentType:(NSString *)type |
| | | contentName:(NSString *)name |
| | | contentID:(NSString *)contentID |
| | | contentNumber:(NSUInteger)number |
| | | paymentChannel:(NSString *)channel |
| | | currency:(NSString *)currency |
| | | currency_amount:(unsigned long long)amount |
| | | isSuccess:(BOOL)isSuccess; |
| | | |
| | | /** |
| | | 添加支付渠道时调用此接口 |
| | | |
| | | @param channel 支付渠道名,如支付宝、微信等 |
| | | @param isSuccess 添加支付渠道是否成功 |
| | | */ |
| | | + (void)accessPaymentChannelEventByChannel:(NSString *)channel isSuccess:(BOOL)isSuccess; |
| | | |
| | | @end |
| | | |
| | | //#endif |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: e16e24f1452664db7899861623b32bd8 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTTracker.h |
| | | // TTTracker |
| | | // |
| | | // Created by fengyadong on 2017-3-14. |
| | | // Copyright (c) 2017 toutiao. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | #import "TTInstallIDManager.h" |
| | | #ifndef TOBSDK |
| | | #import "TTTrackerHeader.h" |
| | | #import "TTInstallBaseMacro.h" |
| | | #endif |
| | | |
| | | //+----------------+----------+----------+---------+--------------------------+ |
| | | //| Key | Type | Required | Default | Meaning | |
| | | //+----------------+----------+----------+---------+--------------------------+ |
| | | //| user_id | String | NO | NULL | login user_id | |
| | | //| need_encrypt | BOOL | NO | YES | whether encrypt | |
| | | //| user_unique_id | String | NO | NULL | unique_id for login user | |
| | | //+----------------+----------+----------+---------+--------------------------+ |
| | | typedef NSDictionary *_Nullable(^TTTrackerConfigParamsBlock)(void); |
| | | /** 捕获一个即将被缓存的log */ |
| | | typedef void(^TTTrackerLogHookBlock)(NSDictionary * _Nonnull hookedLog); |
| | | |
| | | @interface TTTracker : NSObject |
| | | |
| | | @property (nonatomic, copy, readonly) NSString * _Nonnull appID;/** 应用唯一标示 */ |
| | | @property (nonatomic, copy, readonly) NSString * _Nonnull channel;/** 应用发布的渠道名 */ |
| | | |
| | | //可选配置 |
| | | @property (nonatomic, copy) TTTrackerConfigParamsBlock _Nullable configParamsBlock;/** 外部使用方配置是否加密等参数 */ |
| | | @property (nonatomic, copy) TTCustomHeaderBlock _Nullable customHeaderBlock;/** 使用方自定义Header参数 */ |
| | | @property (nonatomic, copy, readonly) NSDictionary<NSString*, id> *_Nullable configParams;/** 配置信息参数 */ |
| | | @property (atomic, copy, readonly) NSDictionary<NSString*, TTTrackerLogHookBlock> *_Nullable logHookDict; |
| | | |
| | | //是否开启session YES开启NO关闭 default= YES ⚠️必须在+startWithAppID:channel:appName前设置才有效 |
| | | @property (nonatomic, assign) BOOL sessionEnalbe; |
| | | |
| | | //==================================单例方法====================================== |
| | | + (instancetype _Nonnull)sharedInstance; |
| | | |
| | | //==================================初始化方法==================================== |
| | | /** |
| | | 启动tracker服务 |
| | | |
| | | @param appID 应用标示,由头条数据仓库组统一分配 |
| | | @param appName 应用名,需向头条申请 |
| | | @param channel 渠道名称,建议正式版App Store 内测版local_test 灰度版用发布的渠道名,如pp |
| | | */ |
| | | + (void)startWithAppID:(NSString *_Nonnull)appID channel:(NSString *_Nonnull)channel appName:(NSString *_Nonnull)appName; |
| | | |
| | | /** |
| | | 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id |
| | | |
| | | @param uniqueID 用户当前的user_unique_id |
| | | */ |
| | | - (void)setCurrentUserUniqueID:(NSString *_Nullable)uniqueID; |
| | | |
| | | /** |
| | | 用户登录状态发生变更的时候需要调用此接口,传入当前的用户的user_unique_id,并且关心SSID重新获取的时机 |
| | | |
| | | @param uniqueID 用户当前的user_unique_id |
| | | @param didRetriveBlock 重新获取SSID的回调 |
| | | */ |
| | | - (void)setCurrentUserUniqueID:(NSString *_Nullable)uniqueID |
| | | didRetriveSSIDBlock:(TTInstallDidRegisterBlock _Nullable)didRetriveBlock; |
| | | |
| | | //=============================== V3 Interface =================================== |
| | | /** |
| | | v3格式日志打点 |
| | | @param event 事件名称 |
| | | @param params 额外参数 |
| | | */ |
| | | + (void)eventV3:(NSString *_Nonnull)event params:(NSDictionary *_Nullable)params; |
| | | |
| | | |
| | | //================================== 钩子方法 ====================================== |
| | | /** |
| | | 捕获一条即将被缓存的埋点日志,做一些额外的事情,比如监控等 |
| | | |
| | | @param serviceID 本业务标示建议公司名.产品线.具体业务 比如bytedance.toutiao.ad |
| | | @param logHookBlock 一条即将被缓存的埋点日志 |
| | | */ |
| | | - (void)registerWithServiceID:(NSString *_Nonnull)serviceID willCacheOneLogBlock:(TTTrackerLogHookBlock _Nullable)logHookBlock; |
| | | |
| | | //=============================== Debug模式配置 ==================================== |
| | | /** |
| | | 设置当前环境是否为内测版本 |
| | | |
| | | @param isInHouseVersion 是否为内测版本 |
| | | */ |
| | | - (void)setIsInHouseVersion:(BOOL)isInHouseVersion; |
| | | |
| | | /** |
| | | 设置debug阶段埋点验证工具的域名和端口号,一般在应用的高级调试中设置 |
| | | |
| | | @param hostName 返回当前验证工具所在的pc主机的ip和端口号,形如:10.2.201.7:10304 */ |
| | | - (void)setDebugLogServerHost:(NSString *_Nonnull)hostName; |
| | | |
| | | /** |
| | | 设置debug阶段埋点验证工具的完整url地址,一般在二维码扫描回调里调用此方法 |
| | | |
| | | @param serverAddress 返回能连接到当前验证工具的完整url地址 */ |
| | | - (void)setDebugLogServerAddress:(NSString *_Nonnull)serverAddress; |
| | | |
| | | @end |
| | | |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: d0cb49a85674046a5a0ce3a7739cf324 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | // |
| | | // TTTrackerHeader.h |
| | | // Tracker |
| | | // |
| | | // Created by fengyadong on 2017-3-14. |
| | | // Copyright (c) 2017 toutiao. All rights reserved. |
| | | // |
| | | |
| | | #import <Foundation/Foundation.h> |
| | | |
| | | static const NSUInteger kTTTrackerSDKVersion = 201; |
| | | |
| | | /// 事件类型 |
| | | typedef NS_ENUM (NSInteger,TTTrackType) { |
| | | /// 普通事件 |
| | | TTTrackTypeEvent = 1, |
| | | /// launch或者terminate事件 |
| | | TTTrackTypeSession = 2 |
| | | }; |
| | | |
| | | /// 事件类型 |
| | | typedef NS_ENUM(NSInteger,TTTrackEventType) { |
| | | /// 正常事件 |
| | | TTTrackNormalEvent = 0, |
| | | /// CDN事件,已废弃 |
| | | TTTrackCDNEvent = 1 |
| | | }; |
| | | |
| | | /// 网络状态 |
| | | typedef NS_ENUM(NSInteger, TTInstallNetworkConnection) { |
| | | /// 初始状态 |
| | | TTInstallNetworkNone = -1, |
| | | /// 无网络连接 |
| | | TTInstallNetworkNoConnection = 0, |
| | | /// 移动网络连接 |
| | | TTInstallNetworkMobileConnnection = 1, |
| | | /// 2G网络连接 |
| | | TTInstallNetwork2GConnection = 2, |
| | | /// 3G网络连接 |
| | | TTInstallNetwork3GConnection = 3, |
| | | /// wifi网络连接 |
| | | TTInstallNetworkWifiConnection = 4, |
| | | /// 4G网络连接 |
| | | TTInstallNetwork4GConnection = 5 |
| | | }; |
| | | |
| | | /// 上报策略 |
| | | typedef NS_ENUM(NSInteger, TTTrackPolicy) { |
| | | /// 初始状态 |
| | | TTTrackPolicyNone = -1, |
| | | /// 批量发送,目前都是 |
| | | TTTrackPolicyBatch = 1, |
| | | /// 实时发送 |
| | | TTTrackPolicyCritical = 2, |
| | | }; |
| | | |
| | | /// 上报触发场景 |
| | | typedef NS_ENUM(NSUInteger, TTTrackerCleanerStartCleanFromType) { |
| | | /// app启动触发 |
| | | TTTrackerCleanerStartCleanFromInitAppKey, |
| | | /// 定时器触发 |
| | | TTTrackerCleanerStartCleanFromTimer, |
| | | /// 切到前台触发 |
| | | TTTrackerCleanerStartCleanFromAppWillEnterForground, |
| | | /// 切到后台触发 |
| | | TTTrackerCleanerStartCleanFromAppDidEnterBackground, |
| | | }; |
| | | |
| | | /// APP启动时上报启动原因,wiki: https://wiki.bytedance.com/pages/viewpage.action?pageId=55125960 |
| | | typedef NS_ENUM(NSUInteger, TTTrackerLaunchFrom) { |
| | | /// 初始状态 |
| | | TTTrackerLaunchFromInitialState = 0, |
| | | /// 用户手动点击进入app |
| | | TTTrackerLaunchFromUserClick = 1, |
| | | /// 用户通过push点击进入app |
| | | TTTrackerLaunchFromRemotePush = 2, |
| | | /// 用户通过widget点击进入app |
| | | TTTrackerLaunchFromWidget = 3, |
| | | /// 用户通过sptlight点击进入app |
| | | TTTrackerLaunchFromSpotlight = 4, |
| | | /// 用户通过外部app唤醒进入app |
| | | TTTrackerLaunchFromExternal = 5, |
| | | /// 用户手动切回前台 |
| | | TTTrackerLaunchFromBackground = 6, |
| | | }; |
| | | |
| | | /// url地址类型 |
| | | typedef NS_ENUM (NSInteger,TTTrackerURLType) { |
| | | /// 日志库配置 |
| | | TTTrackerURLTypeConfig = 0, |
| | | /// 日志库批量上报 |
| | | TTTrackerURLTypeBatchReport, |
| | | /// 日志库实时上报 |
| | | TTTrackerURLTypeImmediateReport |
| | | }; |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 91f9c8ee99c5841e0ab76d461505ff23 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: edbc4b2f741ec48869f6f9036899d39d |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 2be0efbf43e9548df8c38737bb7e888e |
| | | folderAsset: yes |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | framework module TTTracker { |
| | | umbrella header "TTTracker.h" |
| | | |
| | | export * |
| | | module * { export * } |
| | | } |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 1f45356f62f5d4dd0b4953aa793f5621 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 8d982b261e1d2458c9c9a813f0531ca7 |
| | | timeCreated: 1534859534 |
| | | licenseType: Pro |
| | | DefaultImporter: |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | #import <UserNotifications/UserNotifications.h> |
| | | #endif |
| | | #import "SystemConfiguration/CaptiveNetwork.h" |
| | | #import <TTTracker/TTTracker+Game.h> |
| | | |
| | | @interface UniversalSDK()<JPUSHRegisterDelegate> |
| | | @end |
| | |
| | | |
| | | // 热云初始化 |
| | | [Tracking initWithAppKey:@"3c3724431309474be938e0b64d4ad74f" withChannelId:@"_default_"]; |
| | | |
| | | // 今日头条 |
| | | [TTTracker startWithAppID:@"151709" channel:@"ios-snqxz" appName:@"少年奇侠传"]; |
| | | |
| | | // 发送初始化完成 |
| | | [_dict removeAllObjects]; |
| | |
| | | [self SendMessageToUnity:_dict]; |
| | | |
| | | [Tracking setRegisterWithAccountID:_account.identifier]; |
| | | |
| | | [TTTracker registerEventByMethod:@"freesdk" isSuccess:YES]; |
| | | } |
| | | |
| | | -(void) FreeSDKLoginOK |
| | |
| | | [FreeSDK logout]; |
| | | } |
| | | [FreeSDK presentLoginDialog:nil]; |
| | | |
| | | NSDictionary *_dict = [NSDictionary dictionaryWithObjectsAndKeys: |
| | | [NSNumber numberWithInt:S2U_FreePlatformLogoutOk], @"code", nil]; |
| | | |
| | | [self SendMessageToUnity:_dict]; |
| | | |
| | | break; |
| | | } |
| | | case U2S_FreePlatformPay: |
| | |
| | | [FreeSDK pay:_order]; |
| | | } |
| | | break; |
| | | case U2S_PayFinished: |
| | | { |
| | | [Tracking setRyzf:[_dict objectForKey:@"orderID"] |
| | | ryzfType:@"freesdk" |
| | | hbType:[_dict objectForKey:@"moneyType"] |
| | | hbAmount:[[_dict objectForKey:@"money"] floatValue]]; |
| | | |
| | | [TTTracker purchaseEventWithContentType:@"" |
| | | contentName:@"" |
| | | contentID:@"" |
| | | contentNumber:1 |
| | | paymentChannel:@"freesdk" |
| | | currency:[_dict objectForKey:@"moneyType"] |
| | | currency_amount:[[_dict objectForKey:@"money"] intValue] |
| | | isSuccess:YES]; |
| | | } |
| | | break; |
| | | case U2S_BatteryListenStart: |
| | | if(_thread == NULL) |
| | | { |