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