hch
2025-07-18 2a011653190c36e6fb1f790b3819a1d6b0744aef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//
//  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