UNPKG

2.13 kBPlain TextView Raw
1#import <EXAdsFacebook/EXNativeAdView.h>
2#import <FBAudienceNetwork/FBAudienceNetwork.h>
3#import <UMCore/UMUtilitiesInterface.h>
4
5@interface EXNativeAdView ()
6
7@property (nonatomic, weak) UMModuleRegistry *moduleRegistry;
8
9@end
10
11@implementation EXNativeAdView
12
13- (instancetype)initWithModuleRegistry:(UMModuleRegistry *)moduleRegistry
14{
15 if (self = [super init]) {
16 _moduleRegistry = moduleRegistry;
17 }
18 return self;
19}
20
21- (void)setOnAdLoaded:(UMDirectEventBlock)onAdLoaded
22{
23 _onAdLoaded = onAdLoaded;
24
25 if (_nativeAd != nil) {
26 [self callOnAdLoadedWithAd:_nativeAd];
27 }
28}
29
30- (void)setNativeAd:(FBNativeAd *)nativeAd
31{
32 _nativeAd = nativeAd;
33 [self callOnAdLoadedWithAd:_nativeAd];
34}
35
36- (void)callOnAdLoadedWithAd:(FBNativeAd *)nativeAd
37{
38 if (_onAdLoaded != nil) {
39 _onAdLoaded(@{
40 @"headline": nativeAd.headline,
41 @"linkDescription": nativeAd.linkDescription,
42 @"advertiserName": nativeAd.advertiserName,
43 @"socialContext": nativeAd.socialContext,
44 @"callToActionText": nativeAd.callToAction,
45 @"bodyText": nativeAd.bodyText,
46 @"adTranslation": nativeAd.adTranslation,
47 @"promotedTranslation": nativeAd.promotedTranslation,
48 @"sponsoredTranslation": nativeAd.sponsoredTranslation,
49 });
50 }
51}
52
53- (void)registerViewsForInteraction:(FBMediaView *)mediaView adIcon:(FBAdIconView *)adIconView clickableViews:(NSArray<UIView *> *)clickable
54{
55 __weak typeof(self) weakSelf = self;
56 dispatch_async(dispatch_get_main_queue(), ^{
57 __strong typeof(self) strongSelf = weakSelf;
58 if (strongSelf) {
59 [strongSelf.nativeAd registerViewForInteraction:strongSelf
60 mediaView:mediaView
61 iconView:adIconView
62 viewController:[[strongSelf.moduleRegistry getModuleImplementingProtocol:@protocol(UMUtilitiesInterface)] currentViewController]
63 clickableViews:clickable];
64 }
65 });
66}
67
68@end