admin
2022-09-04 fa05f89529e05078b29606e4beda3de5cfdce485
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
//
//  CSJAppStorePreloadItem.h
//  BUAppStore
//
//  Created by Siwant on 2018/9/10.
//
 
#import <Foundation/Foundation.h>
#import <StoreKit/StoreKit.h>
#import "CSJSKANStoreProductModel.h"
#import "CSJAdSDKDefines+Private.h"
 
NS_ASSUME_NONNULL_BEGIN
 
typedef NS_ENUM(NSInteger, BUAppStorePreloadState) {
    BUAppStorePreloadPend   = 0,
    BUAppStorePreloading    = 1,
    BUAppStorePreloadFinish = 2,
    BUAppStorePreloadError  = 3,
    BUAppStorePreloadBreak  = 4,
};
 
@interface CSJAppStorePreloadItem : NSObject
 
@property (nonatomic, assign) BOOL isPresentAnimated;
@property (nonatomic, assign) BOOL isDismissAnimated;
@property (nonatomic, assign) BOOL isDuplicated;
@property (nonatomic, readonly, copy) NSString *appID;
@property (nonatomic, readonly, strong) id<CSJAd> adModel;
 
@property (nonatomic, readonly, assign) BUAppStorePreloadState state;
@property (nonatomic, readonly, strong) SKStoreProductViewController *productController;
 
@property (nonatomic, strong) CSJSKANStoreProductModel *adNetworkModel;
 
/** 标记是否为复用过的 item. preload 过程中,点击直接打开,复用这个正在 preload 的 item,而不是重新 new 一个。*/
@property (nonatomic, assign) BOOL isUsePreloading;
 
///3501 add 各个预加载对象分别记录状态
@property (nonatomic, assign) BOOL presenting;
 
///3501 add 各个预加载对象分别记录状态
@property (nonatomic, assign) BOOL visible;
 
- (instancetype)initWithAppID:(NSString *)appId adModel:(id<CSJAd>)adModel;
 
- (void)loadProductCompletion:(nullable void(^)(BOOL result, NSError * __nullable error, CSJAppStorePreloadItem * _Nonnull item))completion;
 
- (void)stopLoad;
 
- (void)openProductByController:(UIViewController *)controller
              presentCompletion:(void (^ __nullable)(void))presentCompletion
              dismissCompletion:(void (^ __nullable)(CSJAppStorePreloadItem* item))dismissCompletion;
 
@end
 
@interface CSJAppStorePreloadItem (Tracker)
/// 预加载时间戳
- (void)resetLoadTimestamp;
 
- (void)startPreloadTimeTrackEvent;
 
- (void)stopPreloadTimeTrackEvent;
 
 
/// 显示时间戳
- (void)resetShowTimestamp;
 
- (void)startShowTimeTrackEvent;
 
- (void)stopShowTimeTrackEvent;
 
// 新
//- (void)resetTimestamp;
//
//- (void)startPreloadTimeTrackEvent;
//
//- (void)stopPreloadTimeTrackEvent;
@end
 
NS_ASSUME_NONNULL_END