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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
//
//  LCDFeedExploreViewController.h
//  LCDSDK
//
//  Created by yuxr on 2020/6/11.
//  Copyright © 2020 cuiyanan. All rights reserved.
//
 
#import <UIKit/UIKit.h>
#import "LCDPublicDefine.h"
#import "LCDCallBackProtocol.h"
 
@class LCDFeedExploreViewController,LCDEvent;
NS_ASSUME_NONNULL_BEGIN
 
@protocol LCDFeedExploreViewControllerDelegate <LCDRequestCallBackProtocol,LCDPageDetailUserInteractionDelegate,LCDDrawVideoViewControllerDelegate>
 
@optional
/*! @abstract 点击进入详情页的回调 */
- (void)feedExploreGoToDetailPageEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 离开详情页的回调 */
- (void)feedExploreLeaveDetailPageEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 视频详情页播放开始的回调 */
- (void)feedExploreVideoDetailPageStartPlayEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 视频详情页暂停播放的回调 */
- (void)feedExploreVideoDetailPagePauseEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 视频详情页继续播放的回调 */
- (void)feedExploreVideoDetailPageContinueEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 视频详情页结束播放的回调 */
- (void)feedExploreVideoDetailPageOverPlayEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 新闻信息流 item 点击回调 */
- (void)feedExploreClickCellEvent:(LCDEvent *)event controller:(LCDFeedExploreViewController *)feedExploreViewController;
/*! @abstract 数据刷新的回调 */
- (void)feedExploreDataRefreshCompletion:(NSError *)error;
 
- (void)feedExploreChannelChanged:(NSDictionary *)params controller:(LCDFeedExploreViewController *)feedExploreViewController;
 
/*! @abstract 过滤数据,每次加载数据返回标题等信息,开发者过滤完数据以后,返回需要删除的数据合集 */
- (NSArray <LCDGroupID>*)feedExploreFilterDeleteDataWithFeedList:(NSArray <NSDictionary *>*)feedData;
/*! @abstract 详情页添加挂件,返回需要添加的挂件view */
- (UIView *)feedExploreDetaiPage:(LCDFeedSecondaryDetailPageType *)pageType addPendantView:(LCDEvent *)event;
 
/// 返回开发者自己渲染的view
- (UIView *)feedExploreTopView:(LCDFeedExploreViewController *)feedExploreViewController;
/// 返回开发者自己渲染的view的高度,最高为屏幕的高度一半
- (CGFloat)feedExploreHeightForTopView:(LCDFeedExploreViewController *)feedExploreViewController;
 
@end
 
typedef NS_ENUM(NSInteger, LCDFeedExploreVCUIStyle) {
    LCDFeedExploreVCUIStyleDefault,
    LCDFeedExploreVCUIStyleRoundCorner
};
 
@interface LCDFeedExploreVCConfig : NSObject
 
/*! @abstract 内部容器偏移量,默认为{statusBarHeight, 0, 0, 0} */
@property (nonatomic, assign) UIEdgeInsets contentInset ;
/*! @abstract 接收回调的代理 */
@property (nonatomic, weak) id<LCDFeedExploreViewControllerDelegate> delegate;
/*! @abstract 接收广告回调的代理 */
@property (nonatomic, weak) id<LCDAdvertCallBackProtocol> adDelegate;
/*! @abstract 接收当前频道scrollView滚动事件的代理 */
@property (nonatomic, weak) id<LCDScrollViewDelegate> scrollViewDelegate;
 
/// SDK渲染banner
@property (nonatomic, copy) NSArray<LCDNativeDataModel *> *bannerDataArray;
@property (nonatomic, assign) long long newsFrom_group_Id; // SDK渲染banner 从媒体某个固定的id上跳进来的,媒体传,用于埋点
 
/*! @abstract 展示VC的大小。 默认屏幕大小 */
@property (nonatomic, assign) CGSize viewSize;
 
@property (nonatomic) LCDFeedExploreVCUIStyle uiStyle;
 
/** --------------------for 内容定制-------------------- */
/*! @abstract optional,标记接入场景
 必须与炬焰控制台申请的scene保持一致,否则会出问题。 */
@property (nonatomic, copy) NSString *scene;
 
@end
 
@interface LCDFeedExploreViewController : UIViewController
 
- (instancetype)init NS_UNAVAILABLE;
+ (instancetype)new NS_UNAVAILABLE;
 
- (instancetype)initWithConfigBuilder:(void(^)(LCDFeedExploreVCConfig *config))configBuilder;
 
/*! @abstract 刷新数据及数据刷新完成回调 */
- (void)refreshDataWithCompletion:(void (^ _Nullable)(NSError * _Nullable error))completion;
 
/*! @abstract 当前频道内容的scrollView */
- (UIScrollView * _Nullable)currentDataView;
 
@end
 
NS_ASSUME_NONNULL_END