ss
Aeline
2020-09-26 6d8742046f04db48591ace087c35cca0228ae009
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
//
//  GDTUnifiedNativeAdView.h
//  GDTMobSDK
//
//  Created by nimomeng on 2018/10/10.
//  Copyright © 2018 Tencent. All rights reserved.
//
 
#import <UIKit/UIKit.h>
#import "GDTLogoView.h"
#import "GDTMediaView.h"
#import "GDTUnifiedNativeAdDataObject.h"
#import "GDTSDKDefines.h"
 
@class GDTUnifiedNativeAdView;
 
//视频广告时长Key
extern NSString* const kGDTUnifiedNativeAdKeyVideoDuration;
 
@protocol GDTUnifiedNativeAdViewDelegate <NSObject>
 
@optional
/**
 广告曝光回调
 
 @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
 */
- (void)gdt_unifiedNativeAdViewWillExpose:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
 
 
/**
 广告点击回调
 
 @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
 */
- (void)gdt_unifiedNativeAdViewDidClick:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
 
 
/**
 广告详情页关闭回调
 
 @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
 */
- (void)gdt_unifiedNativeAdDetailViewClosed:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
 
 
/**
 当点击应用下载或者广告调用系统程序打开时调用
 
 @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
 */
- (void)gdt_unifiedNativeAdViewApplicationWillEnterBackground:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
 
 
/**
 广告详情页面即将展示回调
 
 @param unifiedNativeAdView GDTUnifiedNativeAdView 实例
 */
- (void)gdt_unifiedNativeAdDetailViewWillPresentScreen:(GDTUnifiedNativeAdView *)unifiedNativeAdView;
 
 
/**
 视频广告播放状态更改回调
 
 @param nativeExpressAdView GDTUnifiedNativeAdView 实例
 @param status 视频广告播放状态
 @param userInfo 视频广告信息
 */
- (void)gdt_unifiedNativeAdView:(GDTUnifiedNativeAdView *)unifiedNativeAdView playerStatusChanged:(GDTMediaPlayerStatus)status userInfo:(NSDictionary *)userInfo;
@end
 
@interface GDTUnifiedNativeAdView:UIView
 
/**
 绑定的数据对象
 */
@property (nonatomic, strong, readonly) GDTUnifiedNativeAdDataObject *dataObject;
 
/**
 视频广告的媒体View,绑定数据对象后自动生成,可自定义布局
 */
@property (nonatomic, strong, readonly) GDTMediaView *mediaView;
 
/**
 腾讯广告 LogoView,自动生成,可自定义布局
 */
@property (nonatomic, strong, readonly) GDTLogoView *logoView;
 
/**
 广告 View 时间回调对象
 */
@property (nonatomic, weak) id<GDTUnifiedNativeAdViewDelegate> delegate;
 
/*
 *  viewControllerForPresentingModalView
 *  详解:开发者需传入用来弹出目标页的ViewController,一般为当前ViewController
 */
@property (nonatomic, weak) UIViewController *viewController;
 
/**
 自渲染2.0视图注册方法
 
 @param dataObject 数据对象,必传字段
 @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
 */
- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
            clickableViews:(NSArray<UIView *> *)clickableViews;
 
 
/**
 自渲染2.0视图注册方法
 @param dataObject 数据对象,必传字段
 @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
 @param customClickableViews 可点击的视图数组,与clickableViews的区别是:在视频广告中当dataObject中的videoConfig的detailPageEnable为YES时,点击后直接进落地页而非视频详情页,除此条件外点击行为与clickableViews保持一致
 */
- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
            clickableViews:(NSArray<UIView *> *)clickableViews customClickableViews:(NSArray <UIView *> *)customClickableViews;
 
/**
 注册可点击的callToAction视图的方法
 建议开发者使用GDTUnifiedNativeAdDataObject中的callToAction字段来创建视图,并取代自定义的下载或打开等button,
 调用此方法之前必须先调用registerDataObject:clickableViews
 @param callToActionView CTA视图, 系统自动处理点击事件
 */
- (void)registerClickableCallToActionView:(UIView *)callToActionView;
 
/**
 注销数据对象,在 tableView、collectionView 等场景需要复用 GDTUnifiedNativeAdView 时,
 需要在合适的时机,例如 cell 的 prepareForReuse 方法内执行 unregisterDataObject 方法,
 将广告对象与 GDTUnifiedNativeAdView 解绑,具体可参考示例 demo 的 UnifiedNativeAdBaseTableViewCell 类
 */
- (void)unregisterDataObject;
 
//#pragma mark - DEPRECATED
///**
// 此方法已经废弃
// 自渲染2.0视图注册方法
//
// @param dataObject 数据对象,必传字段
// @param logoView logo视图
// @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
// @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
// */
//- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
//                  logoView:(GDTLogoView *)logoView
//            viewController:(UIViewController *)viewController
//            clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
//
//
///**
// 此方法已经废弃
// 自渲染2.0视图注册方法
// 
// @param dataObject 数据对象,必传字段
// @param mediaView 媒体对象视图,此处放视频播放器的容器视图
// @param logoView logo视图
// @param viewController 所在ViewController,必传字段。支持在register之后对其进行修改
// @param clickableViews 可点击的视图数组,此数组内的广告元素才可以响应广告对应的点击事件
// */
//- (void)registerDataObject:(GDTUnifiedNativeAdDataObject *)dataObject
//                 mediaView:(GDTMediaView *)mediaView
//                  logoView:(GDTLogoView *)logoView
//            viewController:(UIViewController *)viewController
//            clickableViews:(NSArray<UIView *> *)clickableViews GDT_DEPRECATED_MSG_ATTRIBUTE("use registerDataObject:clickableViews: instead.");
@end