// // TTInstallIDManager.h // Article // // Created by fengyadong on 17-3-14. // // #import /** 设备注册完成回调 */ typedef void(^TTInstallDidRegisterBlock)(NSString *deviceID, NSString *installID, NSString *ssID); /** 自定义Header中的扩展字段,在header中独立的custom结构中 */ typedef NSDictionary *(^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