CSJRenderStrategy.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. //
  2. // CSJRenderStrategy.h
  3. // CSJAdSDK
  4. //
  5. // Created by Rush.D.Xzj on 2021/2/3.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import "CSJAdInfoViewModel.h"
  9. #import "CSJRenderResultModel.h"
  10. #import "CSJRenderEngineDefine.h"
  11. #import "CSJRenderInteractionModel.h"
  12. #import "CSJAdSDKManager+Private.h"
  13. #import "CSJRenderEngineViewModel.h"
  14. NS_ASSUME_NONNULL_BEGIN
  15. @interface CSJRenderStrategy : NSObject
  16. @property (nonatomic, strong) CSJRenderEngineViewModel *renderEngineViewModel;
  17. // 动态布局View,当前是NativeExpressAdView及其子类
  18. // 这里一定是要weak
  19. @property (nonatomic, weak, readonly) UIView *containerView;
  20. @property (nonatomic, strong, readonly) CSJRenderResultModel *renderResultModel;
  21. // 因为前端的renderDidFinish会在超时的时候也可能会超时,所以需要添加这个字段来表明是否有渲染结果了。
  22. @property (nonatomic, assign, readonly) BOOL haveRenderResult;
  23. // 这里的containerView一定不能为nil
  24. - (id)initWithRenderEngineViewModel:(CSJRenderEngineViewModel *)renderEngineViewModel containerView:(UIView * _Nonnull)containerView;
  25. - (void)render;
  26. - (BURenderEngineRenderType)renderType;
  27. - (void)updateWithThemeStatus:(BUAdSDKThemeStatus)themeStatus;
  28. // 一些细碎的逻辑
  29. // xzj_todo 目前没有想好是否放在这里, 先临时这么解决
  30. // 检测白屏
  31. - (void)detectBlankIfNeed;
  32. // 上报show事件
  33. - (void)reportShowEventIfNeed;
  34. // 中间页 上报数据
  35. - (void)reportMaterialMetaIfNeedWithRelatedMaterialMetaJson:(NSDictionary *)dataDic;
  36. // 刷新WKwebview
  37. - (void)refreshWKWebViewIfNeed;
  38. // 原生兜底相关
  39. - (CGFloat)playerCurrentTime;
  40. - (NSInteger)playerTotalTime;
  41. - (void)sendPlayableStateChange:(BOOL)isShow reduceDuration:(NSInteger)reduceDuration;
  42. - (void)sendShowSkipInLiveScene:(BOOL)isShow;
  43. - (void)sendShowToast:(NSString*)toast;
  44. /// 调用webview JSB
  45. /// @param event jsb名称
  46. /// @param data 参数
  47. - (void)invokeWebEvent:(NSString *)event data:(NSDictionary * _Nullable)data;
  48. @end
  49. NS_ASSUME_NONNULL_END