GDTUnifiedNativeAdView.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. //
  2. // GDTUnifiedNativeAdView.h
  3. // GDTMobSDK
  4. //
  5. // Created by nimomeng on 2018/10/10.
  6. // Copyright © 2018 Tencent. All rights reserved.
  7. //
  8. #import <UIKit/UIKit.h>
  9. #import "GDTLogoView.h"
  10. #import "GDTMediaView.h"
  11. #import "GDTUnifiedNativeAdDataObject.h"
  12. #import "GDTSDKDefines.h"
  13. @class GDTUnifiedNativeAdView;
  14. //视频广告时长Key
  15. extern NSString* const kGDTUnifiedNativeAdKeyVideoDuration;
  16. @protocol GDTUnifiedNativeAdViewDelegate <NSObject>
  17. @optional
  18. /**
  19. 广告曝光回调
  20. @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
  21. */
  22. - (void)gdt_unifiedNativeAdViewWillExpose:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
  23. /**
  24. 广告点击回调
  25. @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
  26. */
  27. - (void)gdt_unifiedNativeAdViewDidClick:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
  28. /**
  29. 广告详情页关闭回调
  30. @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
  31. */
  32. - (void)gdt_unifiedNativeAdDetailViewClosed:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
  33. /**
  34. 当点击应用下载或者广告调用系统程序打开时调用
  35. @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
  36. */
  37. - (void)gdt_unifiedNativeAdViewApplicationWillEnterBackground:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
  38. /**
  39. 广告详情页面即将展示回调
  40. @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
  41. */
  42. - (void)gdt_unifiedNativeAdDetailViewWillPresentScreen:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
  43. /**
  44. 视频广告播放状态更改回调
  45. @param nativeExpressAdView GDTUnifiedNativeAdView 实例
  46. @param status 视频广告播放状态
  47. @param userInfo 视频广告信息
  48. */
  49. - (void)gdt_unifiedNativeAdView:(GDTUnifiedNativeAdView *)unifiedNativeAdView playerStatusChanged:(GDTMediaPlayerStatus)status userInfo:(NSDictionary *)userInfo;
  50. @end
  51. @interface GDTUnifiedNativeAdView:UIView
  52. /**
  53. 绑定的数据对象
  54. */
  55. @property (nonatomic, strong, readonly) GDTUnifiedNativeAdDataObject *dataObject;
  56. /**
  57. 视频广告的媒体View,绑定数据对象后自动生成,可自定义布局
  58. */
  59. @property (nonatomic, strong, readonly) GDTMediaView *mediaView;
  60. /**
  61. 腾讯广告 LogoView,自动生成,可自定义布局
  62. */
  63. @property (nonatomic, strong, readonly) GDTLogoView *logoView;
  64. /**
  65. 广告 View 时间回调对象
  66. */
  67. @property (nonatomic, weak) id<GDTUnifiedNativeAdViewDelegate> delegate;
  68. /*
  69. * viewControllerForPresentingModalView
  70. * 详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
  71. */
  72. @property (nonatomic, weak) UIViewController *viewController;
  73. /**
  74. 自渲染2.0视图注册方法
  75. @param dataObject 数据对象,必传字段
  76. @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
  77. */
  78. - (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
  79. clickableViews:(NSArray<UIView *> *)clickableViews;
  80. /**
  81. 自渲染2.0视图注册方法
  82. @param dataObject 数据对象,必传字段
  83. @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
  84. @param customClickableViews 可点击的视图数组,与clickableViews的区别是:在视频广告中当dataObject中的videoConfig的detailPageEnable为YES时,点击后直接进落地页而非视频详情页,除此条件外点击行为与clickableViews保持一致
  85. */
  86. - (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
  87. clickableViews:(NSArray<UIView *> *)clickableViews customClickableViews:(NSArray <UIView *> *)customClickableViews;
  88. /**
  89. 注册可点击的callToAction视图的方法
  90. 建议开发者使用GDTUnifiedNativeAdDataObject中的callToAction字段来创建视图,并取代自定义的下载或打开等button,
  91. 调用此方法之前必须先调用registerDataObject:clickableViews
  92. @param callToActionView CTA视图, 系统自动处理点击事件
  93. */
  94. - (void)registerClickableCallToActionView:(UIView *)callToActionView;
  95. /**
  96. 注销数据对象,在 tableView、collectionView 等场景需要复用 GDTUnifiedNativeAdView 时,
  97. 需要在合适的时机,例如 cell 的 prepareForReuse 方法内执行 unregisterDataObject 方法,
  98. 将广告对象与 GDTUnifiedNativeAdView 解绑,具体可参考示例 demo 的 UnifiedNativeAdBaseTableViewCell 类
  99. */
  100. - (void)unregisterDataObject;
  101. //#pragma mark - DEPRECATED
  102. ///**
  103. // 此方法已经废弃
  104. // 自渲染2.0视图注册方法
  105. //
  106. // @param dataObject 数据对象,必传字段
  107. // @param logoView logo视图
  108. // @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
  109. // @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
  110. // */
  111. //- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
  112. // logoView:(GDTLogoView *)logoView
  113. // viewController:(UIViewController *)viewController
  114. // clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
  115. //
  116. //
  117. ///**
  118. // 此方法已经废弃
  119. // 自渲染2.0视图注册方法
  120. //
  121. // @param dataObject 数据对象,必传字段
  122. // @param mediaView 媒体对象视图,此处放视频播放器的容器视图
  123. // @param logoView logo视图
  124. // @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
  125. // @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
  126. // */
  127. //- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
  128. // mediaView:(GDTMediaView *)mediaView
  129. // logoView:(GDTLogoView *)logoView
  130. // viewController:(UIViewController *)viewController
  131. // clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
  132. @end