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