// 
 | 
//  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 
 |