CSJRenderEngine.h 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. //
  2. // CSJRenderEngine.h
  3. // CSJAdSDK
  4. //
  5. // Created by Rush.D.Xzj on 2021/2/9.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "CSJAdInfoViewModel.h"
  9. #import "CSJRenderInteractionModel.h"
  10. #import "CSJRenderResultModel.h"
  11. #import "CSJFullLinkTrackInfo.h"
  12. #import "CSJRenderEngineDefine.h"
  13. #import "CSJRenderStrategy.h"
  14. #import "CSJRenderEngineViewModel.h"
  15. @class CSJNativeAd;
  16. NS_ASSUME_NONNULL_BEGIN
  17. @class CSJRenderEngine;
  18. @protocol CSJRenderEngineDelegate <NSObject>
  19. /// 从renderStrategy拿数据,先自己处理一下,然后进行透传
  20. - (void)renderEngine:(CSJRenderEngine *)renderEngine successView:(UIView *)successView error:(NSError *)error;
  21. - (void)renderEngine:(CSJRenderEngine *)renderEngine report_webview_time_trackWithParams:(NSDictionary *)params;
  22. /// 直接拿renderStrategy进行透传
  23. - (NSTimeInterval)renderTimeoutInRenderEngine:(CSJRenderEngine *)renderEngine;
  24. - (NSInteger)playPercentInRenderEngine:(CSJRenderEngine *)renderEngine;
  25. - (NSDictionary *)renderEngine:(CSJRenderEngine *)renderEngine renderInteractionModel:(CSJRenderInteractionModel *)renderInteractionModel clickExtraInfo:(nullable NSDictionary *)clickExtraInfoDic;
  26. - (void)renderEngine:(CSJRenderEngine *)renderEngine reportError:(NSError *)error;
  27. - (void)renderEngine:(CSJRenderEngine *)renderEngine reportLabel:(NSString *)label;
  28. // xzj_todo:BUNativeAd问题
  29. - (CSJNativeAd *)nativeAdInRenderEngine:(CSJRenderEngine *)renderEngine;
  30. @end
  31. @interface CSJRenderEngine : NSObject
  32. @property (nonatomic, strong) CSJRenderEngineViewModel *renderEngineViewModel;
  33. @property (nonatomic, weak) id<CSJRenderEngineDelegate> delegate;
  34. + (instancetype)renderEngineWithInfoViewModel:(CSJAdInfoViewModel *)infoViewModel containerView:(UIView *)containerView renderIndex:(NSInteger)renderIndex;
  35. @property (nonatomic, strong, readonly) CSJRenderResultModel *renderResultModel;
  36. // 最后触发成功/失败回调的渲染策略,一定会有值的。因为无兜底渲染策略也是一种策略
  37. @property (nonatomic, strong, readonly) CSJRenderStrategy *resultRenderStrategy;
  38. - (BOOL)isRenderNative;
  39. - (void)render;
  40. @end
  41. NS_ASSUME_NONNULL_END