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
|