react-native-daro 1.0.15 → 1.0.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +11 -1
- package/android/src/main/java/com/daro/reactnative/DaroMAdBannerViewManager.kt +34 -11
- package/android/src/main/java/com/daro/reactnative/DaroMAdNativeViewManager.kt +79 -48
- package/android/src/main/java/com/daro/reactnative/DaroMModule.kt +80 -25
- package/android/src/main/java/com/daro/reactnative/DaroMPackage.kt +28 -4
- package/android/src/main/java/com/daro/reactnative/DaroMediaViewManager.kt +25 -0
- package/android/src/main/java/com/daro/reactnative/event/DaroMEvent.kt +18 -7
- package/android/src/main/java/com/daro/reactnative/util/EventEmitterUtil.kt +18 -5
- package/android/src/main/java/com/daro/reactnative/view/DaroMAdNativeViewContainer.kt +301 -52
- package/android/src/main/java/com/daro/reactnative/view/DaroMediaView.kt +123 -0
- package/android/src/newarch/java/com/daro/reactnative/DaroMModuleSpec.kt +6 -0
- package/android/src/oldarch/java/com/daro/reactnative/DaroMModuleSpec.kt +90 -0
- package/ios/DaroMModule+AppOpen.swift +13 -10
- package/ios/DaroMModule+Interstitial.swift +12 -9
- package/ios/DaroMModule+LightPopup.swift +16 -13
- package/ios/DaroMModule+Rewarded.swift +12 -9
- package/ios/DaroMModule.mm +45 -17
- package/ios/DaroMModule.swift +4 -4
- package/ios/Fabric/DaroMAdBannerComponentView.mm +207 -0
- package/ios/Fabric/DaroMFabricEventSink.mm +31 -0
- package/ios/Fabric/DaroMFabricPropApplier.mm +123 -0
- package/ios/Fabric/DaroMNativeAdComponentView.mm +294 -0
- package/ios/{DaroMAdBannerViewManager.m → Paper/DaroMAdBannerViewManager.m} +3 -1
- package/ios/Paper/DaroMAdBannerViewManager.swift +21 -0
- package/ios/{DaroMNativeAdViewManager.m → Paper/DaroMNativeAdViewManager.m} +2 -1
- package/ios/Paper/DaroMNativeAdViewManager.swift +22 -0
- package/ios/Shared/DaroMAdEventSink.swift +24 -0
- package/ios/Shared/DaroMBannerAdView.swift +188 -0
- package/ios/Shared/DaroMNativeAdLoadCoordinator.swift +49 -0
- package/ios/Shared/DaroMNativeAdView.swift +575 -0
- package/ios/Shared/DaroMNativeAssetResolver.swift +53 -0
- package/ios/mediation/admob/DaroMediationTypes.swift +1 -0
- package/lib/commonjs/AdBannerView.js +20 -39
- package/lib/commonjs/AdBannerView.js.map +1 -1
- package/lib/commonjs/AppOpenAd.js +43 -10
- package/lib/commonjs/AppOpenAd.js.map +1 -1
- package/lib/commonjs/DaroMAdBannerViewNativeComponent.ts +47 -0
- package/lib/commonjs/DaroMNativeAdViewNativeComponent.ts +62 -0
- package/lib/commonjs/DaroMediaViewNativeComponent.ts +9 -0
- package/lib/commonjs/EventEmitter.js +4 -5
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/InterstitialAd.js +9 -11
- package/lib/commonjs/InterstitialAd.js.map +1 -1
- package/lib/commonjs/LightPopupAd.js +11 -12
- package/lib/commonjs/LightPopupAd.js.map +1 -1
- package/lib/commonjs/NativeDaroModule.js +9 -0
- package/lib/commonjs/NativeDaroModule.js.map +1 -0
- package/lib/commonjs/RewardedAd.js +9 -11
- package/lib/commonjs/RewardedAd.js.map +1 -1
- package/lib/commonjs/codegen-env.d.js +2 -0
- package/lib/commonjs/codegen-env.d.js.map +1 -0
- package/lib/commonjs/hooks/useInterstitialAd.js +110 -0
- package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
- package/lib/commonjs/hooks/useLightPopupAd.js +114 -0
- package/lib/commonjs/hooks/useLightPopupAd.js.map +1 -0
- package/lib/commonjs/hooks/useRewardedAd.js +113 -0
- package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
- package/lib/commonjs/index.js +29 -13
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdView.js +23 -22
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js +43 -31
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js +34 -7
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/module/AdBannerView.js +19 -40
- package/lib/module/AdBannerView.js.map +1 -1
- package/lib/module/AppOpenAd.js +43 -11
- package/lib/module/AppOpenAd.js.map +1 -1
- package/lib/module/DaroMAdBannerViewNativeComponent.ts +47 -0
- package/lib/module/DaroMNativeAdViewNativeComponent.ts +62 -0
- package/lib/module/DaroMediaViewNativeComponent.ts +9 -0
- package/lib/module/EventEmitter.js +4 -6
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/InterstitialAd.js +8 -11
- package/lib/module/InterstitialAd.js.map +1 -1
- package/lib/module/LightPopupAd.js +11 -13
- package/lib/module/LightPopupAd.js.map +1 -1
- package/lib/module/NativeDaroModule.js +5 -0
- package/lib/module/NativeDaroModule.js.map +1 -0
- package/lib/module/RewardedAd.js +8 -11
- package/lib/module/RewardedAd.js.map +1 -1
- package/lib/module/codegen-env.d.js +2 -0
- package/lib/module/codegen-env.d.js.map +1 -0
- package/lib/module/hooks/useInterstitialAd.js +106 -0
- package/lib/module/hooks/useInterstitialAd.js.map +1 -0
- package/lib/module/hooks/useLightPopupAd.js +110 -0
- package/lib/module/hooks/useLightPopupAd.js.map +1 -0
- package/lib/module/hooks/useRewardedAd.js +109 -0
- package/lib/module/hooks/useRewardedAd.js.map +1 -0
- package/lib/module/index.js +7 -13
- package/lib/module/index.js.map +1 -1
- package/lib/module/nativeAd/NativeAdView.js +22 -23
- package/lib/module/nativeAd/NativeAdView.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewComponents.js +45 -34
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewProvider.js +35 -8
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/typescript/commonjs/plugin/src/index.d.ts +1 -1
- package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -1
- package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/AdBannerView.d.ts +2 -2
- package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
- package/lib/typescript/commonjs/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
- package/lib/typescript/commonjs/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts +6 -0
- package/lib/typescript/commonjs/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/NativeDaroModule.d.ts +61 -0
- package/lib/typescript/commonjs/src/NativeDaroModule.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts +19 -0
- package/lib/typescript/commonjs/src/hooks/useInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts +23 -0
- package/lib/typescript/commonjs/src/hooks/useLightPopupAd.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts +20 -0
- package/lib/typescript/commonjs/src/hooks/useRewardedAd.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +7 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +1 -0
- package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
- package/lib/typescript/commonjs/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts +2 -0
- package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/lib/typescript/module/plugin/src/index.d.ts +1 -1
- package/lib/typescript/module/plugin/src/index.d.ts.map +1 -1
- package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -1
- package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -1
- package/lib/typescript/module/src/AdBannerView.d.ts +2 -2
- package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts +32 -0
- package/lib/typescript/module/src/DaroMAdBannerViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts +42 -0
- package/lib/typescript/module/src/DaroMNativeAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts +6 -0
- package/lib/typescript/module/src/DaroMediaViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeDaroModule.d.ts +61 -0
- package/lib/typescript/module/src/NativeDaroModule.d.ts.map +1 -0
- package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts +19 -0
- package/lib/typescript/module/src/hooks/useInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts +23 -0
- package/lib/typescript/module/src/hooks/useLightPopupAd.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/useRewardedAd.d.ts +20 -0
- package/lib/typescript/module/src/hooks/useRewardedAd.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +7 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +1 -0
- package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdViewComponents.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts +11 -5
- package/lib/typescript/module/src/nativeAd/NativeAdViewProvider.d.ts.map +1 -1
- package/lib/typescript/module/src/types/NativeAdViewProps.d.ts +2 -0
- package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/package.json +12 -5
- package/plugin/build/index.d.ts +1 -1
- package/plugin/build/withAndroid.js +99 -17
- package/plugin/build/withIos.js +4 -5
- package/react-native-daro.podspec +3 -0
- package/src/AdBannerView.tsx +24 -61
- package/src/AppOpenAd.ts +46 -9
- package/src/DaroMAdBannerViewNativeComponent.ts +47 -0
- package/src/DaroMNativeAdViewNativeComponent.ts +62 -0
- package/src/DaroMediaViewNativeComponent.ts +9 -0
- package/src/EventEmitter.ts +4 -5
- package/src/InterstitialAd.ts +8 -10
- package/src/LightPopupAd.ts +11 -12
- package/src/NativeDaroModule.ts +91 -0
- package/src/RewardedAd.ts +8 -10
- package/src/codegen-env.d.ts +45 -0
- package/src/hooks/useInterstitialAd.ts +117 -0
- package/src/hooks/useLightPopupAd.ts +132 -0
- package/src/hooks/useRewardedAd.ts +122 -0
- package/src/index.tsx +21 -22
- package/src/nativeAd/NativeAdView.tsx +41 -54
- package/src/nativeAd/NativeAdViewComponents.tsx +80 -42
- package/src/nativeAd/NativeAdViewProvider.tsx +75 -17
- package/src/types/NativeAdViewProps.ts +7 -0
- package/ios/DaroMAdBannerViewManager.swift +0 -91
- package/ios/DaroMNativeAdViewManager.swift +0 -291
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
package com.daro.reactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.Promise
|
|
4
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
5
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
+
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.facebook.react.bridge.ReadableMap
|
|
8
|
+
|
|
9
|
+
abstract class DaroMModuleSpec(reactContext: ReactApplicationContext) :
|
|
10
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
11
|
+
|
|
12
|
+
override fun getName(): String = DaroMModule.NAME
|
|
13
|
+
|
|
14
|
+
protected abstract fun getTypedExportedConstants(): MutableMap<String, Any>
|
|
15
|
+
|
|
16
|
+
override fun getConstants(): MutableMap<String, Any> = getTypedExportedConstants()
|
|
17
|
+
|
|
18
|
+
@ReactMethod
|
|
19
|
+
abstract fun addListener(eventName: String)
|
|
20
|
+
|
|
21
|
+
@ReactMethod
|
|
22
|
+
abstract fun removeListeners(count: Double)
|
|
23
|
+
|
|
24
|
+
@ReactMethod
|
|
25
|
+
abstract fun isInitialized(promise: Promise)
|
|
26
|
+
|
|
27
|
+
@ReactMethod
|
|
28
|
+
abstract fun initializeSdk(promise: Promise)
|
|
29
|
+
|
|
30
|
+
@ReactMethod
|
|
31
|
+
abstract fun setUserId(userId: String, promise: Promise)
|
|
32
|
+
|
|
33
|
+
@ReactMethod
|
|
34
|
+
abstract fun showMediationDebugger(promise: Promise)
|
|
35
|
+
|
|
36
|
+
@ReactMethod
|
|
37
|
+
abstract fun isInterstitialReady(requestId: Double, adUnitId: String, promise: Promise)
|
|
38
|
+
|
|
39
|
+
@ReactMethod
|
|
40
|
+
abstract fun loadInterstitial(requestId: Double, adUnitId: String, promise: Promise)
|
|
41
|
+
|
|
42
|
+
@ReactMethod
|
|
43
|
+
abstract fun showInterstitial(requestId: Double, adUnitId: String, promise: Promise)
|
|
44
|
+
|
|
45
|
+
@ReactMethod
|
|
46
|
+
abstract fun isRewardedAdReady(requestId: Double, adUnitId: String, promise: Promise)
|
|
47
|
+
|
|
48
|
+
@ReactMethod
|
|
49
|
+
abstract fun loadRewardedAd(requestId: Double, adUnitId: String, promise: Promise)
|
|
50
|
+
|
|
51
|
+
@ReactMethod
|
|
52
|
+
abstract fun showRewardedAd(
|
|
53
|
+
requestId: Double,
|
|
54
|
+
adUnitId: String,
|
|
55
|
+
customData: String?,
|
|
56
|
+
promise: Promise,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
@ReactMethod
|
|
60
|
+
abstract fun isAppOpenAdReady(requestId: Double, adUnitId: String, promise: Promise)
|
|
61
|
+
|
|
62
|
+
@ReactMethod
|
|
63
|
+
abstract fun loadAppOpenAd(requestId: Double, adUnitId: String, promise: Promise)
|
|
64
|
+
|
|
65
|
+
@ReactMethod
|
|
66
|
+
abstract fun showAppOpenAd(
|
|
67
|
+
requestId: Double,
|
|
68
|
+
adUnitId: String,
|
|
69
|
+
placement: String?,
|
|
70
|
+
customData: String?,
|
|
71
|
+
promise: Promise,
|
|
72
|
+
)
|
|
73
|
+
|
|
74
|
+
@ReactMethod
|
|
75
|
+
abstract fun isLightPopupReady(requestId: Double, adUnitId: String, promise: Promise)
|
|
76
|
+
|
|
77
|
+
@ReactMethod
|
|
78
|
+
abstract fun loadLightPopup(requestId: Double, adUnitId: String, promise: Promise)
|
|
79
|
+
|
|
80
|
+
@ReactMethod
|
|
81
|
+
abstract fun showLightPopup(requestId: Double, adUnitId: String, promise: Promise)
|
|
82
|
+
|
|
83
|
+
@ReactMethod
|
|
84
|
+
abstract fun setLightPopupAdConfiguration(
|
|
85
|
+
requestId: Double,
|
|
86
|
+
adUnitId: String,
|
|
87
|
+
configuration: ReadableMap,
|
|
88
|
+
promise: Promise,
|
|
89
|
+
)
|
|
90
|
+
}
|
|
@@ -4,43 +4,46 @@ import React
|
|
|
4
4
|
|
|
5
5
|
extension DaroMModule {
|
|
6
6
|
|
|
7
|
-
@objc(isAppOpenAdReady
|
|
7
|
+
@objc(isAppOpenAdReady:adUnitId:resolve:reject:)
|
|
8
8
|
func isAppOpenAdReady(
|
|
9
|
-
|
|
9
|
+
requestId: Double,
|
|
10
10
|
adUnitId: String,
|
|
11
11
|
resolve: RCTPromiseResolveBlock,
|
|
12
12
|
reject: RCTPromiseRejectBlock
|
|
13
13
|
) {
|
|
14
|
+
let requestId = Int(requestId)
|
|
14
15
|
if !Self.sdkInitialized {
|
|
15
16
|
DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
|
|
16
17
|
resolve(false)
|
|
17
18
|
return
|
|
18
19
|
}
|
|
19
|
-
resolve(appOpenAds[requestId
|
|
20
|
+
resolve(appOpenAds[requestId]?.loadedAd != nil)
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
@objc(loadAppOpenAd
|
|
23
|
+
@objc(loadAppOpenAd:adUnitId:resolve:reject:)
|
|
23
24
|
func loadAppOpenAd(
|
|
24
|
-
|
|
25
|
+
requestId: Double,
|
|
25
26
|
adUnitId: String,
|
|
26
27
|
resolve: RCTPromiseResolveBlock,
|
|
27
28
|
reject: RCTPromiseRejectBlock
|
|
28
29
|
) {
|
|
29
|
-
|
|
30
|
+
let requestId = Int(requestId)
|
|
31
|
+
let appOpenAdLoader = retrieveAppOpenLoader(requestId: requestId, adUnitId: adUnitId)
|
|
30
32
|
appOpenAdLoader.loadAd()
|
|
31
|
-
|
|
33
|
+
resolve(Void())
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
@objc(showAppOpenAd
|
|
36
|
+
@objc(showAppOpenAd:adUnitId:placement:customData:resolve:reject:)
|
|
35
37
|
func showAppOpenAd(
|
|
36
|
-
|
|
38
|
+
requestId: Double,
|
|
37
39
|
adUnitId: String,
|
|
38
40
|
placement: String?,
|
|
39
41
|
customData: String?,
|
|
40
42
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
41
43
|
reject: RCTPromiseRejectBlock
|
|
42
44
|
) {
|
|
43
|
-
|
|
45
|
+
let requestId = Int(requestId)
|
|
46
|
+
guard let loadedAd = appOpenAds[requestId]?.loadedAd else {
|
|
44
47
|
reject("APPOPEN_NOT_LOADED", "AppOpen ad not loaded", nil)
|
|
45
48
|
return
|
|
46
49
|
}
|
|
@@ -4,41 +4,44 @@ import React
|
|
|
4
4
|
|
|
5
5
|
extension DaroMModule {
|
|
6
6
|
|
|
7
|
-
@objc(isInterstitialReady
|
|
7
|
+
@objc(isInterstitialReady:adUnitId:resolve:reject:)
|
|
8
8
|
func isInterstitialReady(
|
|
9
|
-
|
|
9
|
+
requestId: Double,
|
|
10
10
|
adUnitId: String,
|
|
11
11
|
resolve: RCTPromiseResolveBlock,
|
|
12
12
|
reject: RCTPromiseRejectBlock
|
|
13
13
|
) {
|
|
14
|
+
let requestId = Int(requestId)
|
|
14
15
|
if !Self.sdkInitialized {
|
|
15
16
|
DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
|
|
16
17
|
resolve(false)
|
|
17
18
|
return
|
|
18
19
|
}
|
|
19
|
-
resolve(interstitials[requestId
|
|
20
|
+
resolve(interstitials[requestId]?.loadedAd != nil)
|
|
20
21
|
}
|
|
21
22
|
|
|
22
|
-
@objc(loadInterstitial
|
|
23
|
+
@objc(loadInterstitial:adUnitId:resolve:reject:)
|
|
23
24
|
func loadInterstitial(
|
|
24
|
-
|
|
25
|
+
requestId: Double,
|
|
25
26
|
adUnitId: String,
|
|
26
27
|
resolve: RCTPromiseResolveBlock,
|
|
27
28
|
reject: RCTPromiseRejectBlock
|
|
28
29
|
) {
|
|
29
|
-
let
|
|
30
|
+
let requestId = Int(requestId)
|
|
31
|
+
let interstitialLoader = retrieveInterstitialLoader(requestId: requestId, adUnitId: adUnitId)
|
|
30
32
|
interstitialLoader.loadAd()
|
|
31
33
|
resolve(Void())
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
@objc(showInterstitial
|
|
36
|
+
@objc(showInterstitial:adUnitId:resolve:reject:)
|
|
35
37
|
func showInterstitial(
|
|
36
|
-
|
|
38
|
+
requestId: Double,
|
|
37
39
|
adUnitId: String,
|
|
38
40
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
39
41
|
reject: @escaping RCTPromiseRejectBlock
|
|
40
42
|
) {
|
|
41
|
-
|
|
43
|
+
let requestId = Int(requestId)
|
|
44
|
+
guard let loadedAd = interstitials[requestId]?.loadedAd else {
|
|
42
45
|
reject("INTERSTITIAL_NOT_LOADED", "Interstitial ad not loaded", nil)
|
|
43
46
|
return
|
|
44
47
|
}
|
|
@@ -3,45 +3,48 @@ import UIKit
|
|
|
3
3
|
// MARK: - LightPopup Ad
|
|
4
4
|
extension DaroMModule {
|
|
5
5
|
|
|
6
|
-
@objc(isLightPopupReady
|
|
6
|
+
@objc(isLightPopupReady:adUnitId:resolve:reject:)
|
|
7
7
|
func isLightPopupReady(
|
|
8
|
-
|
|
8
|
+
requestId: Double,
|
|
9
9
|
adUnitId: String,
|
|
10
10
|
resolve: RCTPromiseResolveBlock,
|
|
11
11
|
reject: RCTPromiseRejectBlock
|
|
12
12
|
) {
|
|
13
|
+
let requestId = Int(requestId)
|
|
13
14
|
if !Self.sdkInitialized {
|
|
14
15
|
DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
|
|
15
16
|
resolve(false)
|
|
16
17
|
return
|
|
17
18
|
}
|
|
18
|
-
resolve(lightPopups[requestId
|
|
19
|
+
resolve(lightPopups[requestId]?.loadedAd != nil)
|
|
19
20
|
}
|
|
20
21
|
|
|
21
|
-
@objc(loadLightPopup
|
|
22
|
+
@objc(loadLightPopup:adUnitId:resolve:reject:)
|
|
22
23
|
func loadLightPopup(
|
|
23
|
-
|
|
24
|
+
requestId: Double,
|
|
24
25
|
adUnitId: String,
|
|
25
26
|
resolve: RCTPromiseResolveBlock,
|
|
26
27
|
reject: RCTPromiseRejectBlock
|
|
27
28
|
) {
|
|
28
|
-
let
|
|
29
|
+
let requestId = Int(requestId)
|
|
30
|
+
let lightPopupLoader = retrieveLightPopupLoader(requestId: requestId, adUnitId: adUnitId)
|
|
29
31
|
lightPopupLoader.loadAd()
|
|
30
32
|
resolve(Void())
|
|
31
33
|
}
|
|
32
34
|
|
|
33
|
-
@objc(showLightPopup
|
|
35
|
+
@objc(showLightPopup:adUnitId:resolve:reject:)
|
|
34
36
|
func showLightPopup(
|
|
35
|
-
|
|
37
|
+
requestId: Double,
|
|
36
38
|
adUnitId: String,
|
|
37
39
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
38
40
|
reject: @escaping RCTPromiseRejectBlock
|
|
39
41
|
) {
|
|
40
|
-
|
|
42
|
+
let requestId = Int(requestId)
|
|
43
|
+
guard let loadedAd = lightPopups[requestId]?.loadedAd else {
|
|
41
44
|
reject("LIGHTPOPUP_NOT_LOADED", "LightPopup ad not loaded", nil)
|
|
42
45
|
return
|
|
43
46
|
}
|
|
44
|
-
let reqIdInt = requestId
|
|
47
|
+
let reqIdInt = requestId
|
|
45
48
|
executeOnMainThread { [weak self] in
|
|
46
49
|
guard let viewController = UIApplication.shared.windows.first?.rootViewController else {
|
|
47
50
|
reject("VIEW_CONTROLLER_NOT_FOUND", "Root view controller not found", nil)
|
|
@@ -53,15 +56,15 @@ extension DaroMModule {
|
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
58
|
|
|
56
|
-
@objc(setLightPopupAdConfiguration
|
|
59
|
+
@objc(setLightPopupAdConfiguration:adUnitId:configuration:resolve:reject:)
|
|
57
60
|
func setLightPopupAdConfiguration(
|
|
58
|
-
|
|
61
|
+
requestId: Double,
|
|
59
62
|
adUnitId: String,
|
|
60
63
|
configuration: [String: Any],
|
|
61
64
|
resolve: RCTPromiseResolveBlock,
|
|
62
65
|
reject: RCTPromiseRejectBlock
|
|
63
66
|
) {
|
|
64
|
-
let reqIdInt = requestId
|
|
67
|
+
let reqIdInt = Int(requestId)
|
|
65
68
|
guard let loadedAd = lightPopups[reqIdInt]?.loadedAd else {
|
|
66
69
|
lightPopupConfigurations[reqIdInt] = configuration
|
|
67
70
|
resolve(Void())
|
|
@@ -1,43 +1,46 @@
|
|
|
1
1
|
import React
|
|
2
2
|
|
|
3
3
|
extension DaroMModule {
|
|
4
|
-
@objc(isRewardedAdReady
|
|
4
|
+
@objc(isRewardedAdReady:adUnitId:resolve:reject:)
|
|
5
5
|
func isRewardedAdReady(
|
|
6
|
-
|
|
6
|
+
requestId: Double,
|
|
7
7
|
adUnitId: String,
|
|
8
8
|
resolve: RCTPromiseResolveBlock,
|
|
9
9
|
reject: RCTPromiseRejectBlock
|
|
10
10
|
) {
|
|
11
|
+
let requestId = Int(requestId)
|
|
11
12
|
if !Self.sdkInitialized {
|
|
12
13
|
DaroMModule.logger.debug("[DaroMMobileAds] !isInitialized")
|
|
13
14
|
resolve(false)
|
|
14
15
|
return
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
resolve(rewardedAds[requestId
|
|
18
|
+
resolve(rewardedAds[requestId]?.loadedAd != nil)
|
|
18
19
|
}
|
|
19
20
|
|
|
20
|
-
@objc(loadRewardedAd
|
|
21
|
+
@objc(loadRewardedAd:adUnitId:resolve:reject:)
|
|
21
22
|
func loadRewardedAd(
|
|
22
|
-
|
|
23
|
+
requestId: Double,
|
|
23
24
|
adUnitId: String,
|
|
24
25
|
resolve: RCTPromiseResolveBlock,
|
|
25
26
|
reject: RCTPromiseRejectBlock
|
|
26
27
|
) {
|
|
27
|
-
let
|
|
28
|
+
let requestId = Int(requestId)
|
|
29
|
+
let rewardedLoader = retrieveRewardedLoader(requestId: requestId, adUnitId: adUnitId)
|
|
28
30
|
rewardedLoader.loadAd()
|
|
29
31
|
resolve(Void())
|
|
30
32
|
}
|
|
31
33
|
|
|
32
|
-
@objc(showRewardedAd
|
|
34
|
+
@objc(showRewardedAd:adUnitId:customData:resolve:reject:)
|
|
33
35
|
func showRewardedAd(
|
|
34
|
-
|
|
36
|
+
requestId: Double,
|
|
35
37
|
adUnitId: String,
|
|
36
38
|
customData: String?,
|
|
37
39
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
38
40
|
reject: @escaping RCTPromiseRejectBlock
|
|
39
41
|
) {
|
|
40
|
-
|
|
42
|
+
let requestId = Int(requestId)
|
|
43
|
+
guard let loadedAd = rewardedAds[requestId]?.loadedAd else {
|
|
41
44
|
reject("REWARDED_AD_NOT_LOADED", "Rewarded ad not loaded", nil)
|
|
42
45
|
return
|
|
43
46
|
}
|
package/ios/DaroMModule.mm
CHANGED
|
@@ -1,45 +1,73 @@
|
|
|
1
1
|
#import <React/RCTBridgeModule.h>
|
|
2
2
|
#import <React/RCTEventEmitter.h>
|
|
3
3
|
|
|
4
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
5
|
+
#import <DaroReactNativeSpec/DaroReactNativeSpec.h>
|
|
6
|
+
#endif
|
|
7
|
+
|
|
4
8
|
@interface RCT_EXTERN_MODULE (DaroMModule, RCTEventEmitter)
|
|
5
9
|
|
|
6
10
|
#pragma mark - Initialization
|
|
7
11
|
|
|
8
|
-
RCT_EXTERN_METHOD(isInitialized
|
|
9
|
-
RCT_EXTERN_METHOD(initializeSdk
|
|
10
|
-
RCT_EXTERN_METHOD(setUserId
|
|
12
|
+
RCT_EXTERN_METHOD(isInitialized:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
13
|
+
RCT_EXTERN_METHOD(initializeSdk:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
14
|
+
RCT_EXTERN_METHOD(setUserId:(NSString *)userId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
11
15
|
|
|
12
16
|
#pragma mark - Mediation Debugger
|
|
13
17
|
|
|
14
|
-
RCT_EXTERN_METHOD(showMediationDebugger
|
|
18
|
+
RCT_EXTERN_METHOD(showMediationDebugger:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
15
19
|
|
|
16
20
|
#pragma mark - Interstitial
|
|
17
21
|
|
|
18
|
-
RCT_EXTERN_METHOD(isInterstitialReady
|
|
19
|
-
RCT_EXTERN_METHOD(loadInterstitial
|
|
20
|
-
RCT_EXTERN_METHOD(showInterstitial
|
|
22
|
+
RCT_EXTERN_METHOD(isInterstitialReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
23
|
+
RCT_EXTERN_METHOD(loadInterstitial:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
24
|
+
RCT_EXTERN_METHOD(showInterstitial:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
21
25
|
|
|
22
26
|
#pragma mark - Rewarded
|
|
23
27
|
|
|
24
|
-
RCT_EXTERN_METHOD(isRewardedAdReady
|
|
25
|
-
RCT_EXTERN_METHOD(loadRewardedAd
|
|
26
|
-
RCT_EXTERN_METHOD(showRewardedAd
|
|
28
|
+
RCT_EXTERN_METHOD(isRewardedAdReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
29
|
+
RCT_EXTERN_METHOD(loadRewardedAd:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
30
|
+
RCT_EXTERN_METHOD(showRewardedAd:(double)requestId adUnitId:(NSString *)adUnitId customData:(nullable NSString *)customData resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
27
31
|
|
|
28
32
|
#pragma mark - AppOpen Ad
|
|
29
33
|
|
|
30
|
-
RCT_EXTERN_METHOD(isAppOpenAdReady
|
|
31
|
-
RCT_EXTERN_METHOD(loadAppOpenAd
|
|
32
|
-
RCT_EXTERN_METHOD(showAppOpenAd
|
|
34
|
+
RCT_EXTERN_METHOD(isAppOpenAdReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
35
|
+
RCT_EXTERN_METHOD(loadAppOpenAd:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
36
|
+
RCT_EXTERN_METHOD(showAppOpenAd:(double)requestId adUnitId:(NSString *)adUnitId placement:(nullable NSString *)placement customData:(nullable NSString *)customData resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
33
37
|
|
|
34
38
|
#pragma mark - Light Popup
|
|
35
39
|
|
|
36
|
-
RCT_EXTERN_METHOD(isLightPopupReady
|
|
37
|
-
RCT_EXTERN_METHOD(loadLightPopup
|
|
38
|
-
RCT_EXTERN_METHOD(showLightPopup
|
|
39
|
-
RCT_EXTERN_METHOD(setLightPopupAdConfiguration
|
|
40
|
+
RCT_EXTERN_METHOD(isLightPopupReady:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
41
|
+
RCT_EXTERN_METHOD(loadLightPopup:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
42
|
+
RCT_EXTERN_METHOD(showLightPopup:(double)requestId adUnitId:(NSString *)adUnitId resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
43
|
+
RCT_EXTERN_METHOD(setLightPopupAdConfiguration:(double)requestId adUnitId:(NSString *)adUnitId configuration:(NSDictionary *)configuration resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject)
|
|
40
44
|
|
|
41
45
|
+ (BOOL)requiresMainQueueSetup {
|
|
42
46
|
return YES;
|
|
43
47
|
}
|
|
44
48
|
|
|
45
49
|
@end
|
|
50
|
+
|
|
51
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
52
|
+
|
|
53
|
+
@interface DaroMModule (TurboModule) <RCTTurboModule>
|
|
54
|
+
@end
|
|
55
|
+
|
|
56
|
+
@implementation DaroMModule (TurboModule)
|
|
57
|
+
|
|
58
|
+
- (facebook::react::ModuleConstants<JS::NativeDaroModule::Constants>)getConstants
|
|
59
|
+
{
|
|
60
|
+
NSDictionary *constants = [self constantsToExport] ?: @{};
|
|
61
|
+
return (facebook::react::ModuleConstants<JS::NativeDaroModule::Constants>)
|
|
62
|
+
[_RCTTypedModuleConstants newWithUnsafeDictionary:constants];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
66
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
67
|
+
{
|
|
68
|
+
return std::make_shared<facebook::react::NativeDaroModuleSpecJSI>(params);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@end
|
|
72
|
+
|
|
73
|
+
#endif
|
package/ios/DaroMModule.swift
CHANGED
|
@@ -90,12 +90,12 @@ class DaroMModule: RCTEventEmitter {
|
|
|
90
90
|
|
|
91
91
|
// MARK: - SDK 초기화 및 설정
|
|
92
92
|
|
|
93
|
-
@objc(isInitialized
|
|
93
|
+
@objc(isInitialized:reject:)
|
|
94
94
|
func isInitialized(resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
95
95
|
resolve(Self.sdkInitialized)
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
@objc(initializeSdk
|
|
98
|
+
@objc(initializeSdk:reject:)
|
|
99
99
|
func initializeSdk(
|
|
100
100
|
resolve: @escaping RCTPromiseResolveBlock,
|
|
101
101
|
reject: @escaping RCTPromiseRejectBlock
|
|
@@ -121,14 +121,14 @@ class DaroMModule: RCTEventEmitter {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
@objc(showMediationDebugger
|
|
124
|
+
@objc(showMediationDebugger:reject:)
|
|
125
125
|
func showMediationDebugger(resolve: @escaping RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
126
126
|
DaroMediationDebugger.show {
|
|
127
127
|
resolve(Void())
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
|
|
131
|
-
@objc(setUserId
|
|
131
|
+
@objc(setUserId:resolve:reject:)
|
|
132
132
|
func setUserId(userId: String, resolve: RCTPromiseResolveBlock, reject: RCTPromiseRejectBlock) {
|
|
133
133
|
DaroAds.shared.userId = userId
|
|
134
134
|
resolve(Void())
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
#import <React/RCTDefines.h>
|
|
2
|
+
|
|
3
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
4
|
+
|
|
5
|
+
#import <React/RCTComponent.h>
|
|
6
|
+
#import <React/RCTFabricComponentsPlugins.h>
|
|
7
|
+
#import <React/RCTViewComponentView.h>
|
|
8
|
+
#import <react/renderer/components/DaroReactNativeSpec/ComponentDescriptors.h>
|
|
9
|
+
#import <react/renderer/components/DaroReactNativeSpec/EventEmitters.h>
|
|
10
|
+
#import <react/renderer/components/DaroReactNativeSpec/Props.h>
|
|
11
|
+
#import <react/renderer/components/DaroReactNativeSpec/RCTComponentViewHelpers.h>
|
|
12
|
+
#include <folly/dynamic.h>
|
|
13
|
+
#include <string>
|
|
14
|
+
|
|
15
|
+
using namespace facebook::react;
|
|
16
|
+
|
|
17
|
+
extern UIView *DaroMFabricCreateSwiftView(NSString *className);
|
|
18
|
+
extern void DaroMFabricSetValue(UIView *view, NSString *key, id value);
|
|
19
|
+
extern void DaroMFabricPerformSelector(UIView *view, SEL selector);
|
|
20
|
+
extern void DaroMFabricPerformSelectorWithObject(UIView *view, SEL selector, id object);
|
|
21
|
+
extern NSString *DaroMFabricNSStringFromStdString(const std::string &value);
|
|
22
|
+
extern NSDictionary *DaroMFabricEventBody(NSDictionary *body);
|
|
23
|
+
extern std::string DaroMFabricEventString(NSDictionary *body, NSString *key);
|
|
24
|
+
extern double DaroMFabricEventDouble(NSDictionary *body, NSString *key);
|
|
25
|
+
extern int DaroMFabricEventInt(NSDictionary *body, NSString *key);
|
|
26
|
+
|
|
27
|
+
@interface DaroMAdBannerViewComponentView : RCTViewComponentView <RCTDaroMAdBannerViewViewProtocol>
|
|
28
|
+
@end
|
|
29
|
+
|
|
30
|
+
@implementation DaroMAdBannerViewComponentView {
|
|
31
|
+
UIView *_bannerView;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
+ (void)load
|
|
35
|
+
{
|
|
36
|
+
[super load];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
- (instancetype)initWithFrame:(CGRect)frame
|
|
40
|
+
{
|
|
41
|
+
if (self = [super initWithFrame:frame]) {
|
|
42
|
+
static const auto defaultProps = std::make_shared<const DaroMAdBannerViewProps>();
|
|
43
|
+
_props = defaultProps;
|
|
44
|
+
[self createBannerView];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return self;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
- (void)createBannerView
|
|
51
|
+
{
|
|
52
|
+
_bannerView = DaroMFabricCreateSwiftView(@"DaroMAdBannerView");
|
|
53
|
+
self.contentView = _bannerView;
|
|
54
|
+
[self installEventHandlers];
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (void)installEventHandlers
|
|
58
|
+
{
|
|
59
|
+
__weak DaroMAdBannerViewComponentView *weakSelf = self;
|
|
60
|
+
|
|
61
|
+
RCTDirectEventBlock onAdLoadedEvent = ^(NSDictionary *body) {
|
|
62
|
+
DaroMAdBannerViewComponentView *strongSelf = weakSelf;
|
|
63
|
+
if (!strongSelf) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
|
|
68
|
+
if (!eventEmitter) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
NSDictionary *eventBody = DaroMFabricEventBody(body);
|
|
73
|
+
eventEmitter->onAdLoadedEvent({
|
|
74
|
+
.adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
|
|
75
|
+
.latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
RCTDirectEventBlock onAdLoadFailedEvent = ^(NSDictionary *body) {
|
|
80
|
+
DaroMAdBannerViewComponentView *strongSelf = weakSelf;
|
|
81
|
+
if (!strongSelf) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
|
|
86
|
+
if (!eventEmitter) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
NSDictionary *eventBody = DaroMFabricEventBody(body);
|
|
91
|
+
eventEmitter->onAdLoadFailedEvent({
|
|
92
|
+
.adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
|
|
93
|
+
.code = DaroMFabricEventInt(eventBody, @"code"),
|
|
94
|
+
.message = DaroMFabricEventString(eventBody, @"message"),
|
|
95
|
+
.latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
RCTDirectEventBlock onAdClickedEvent = ^(NSDictionary *body) {
|
|
100
|
+
DaroMAdBannerViewComponentView *strongSelf = weakSelf;
|
|
101
|
+
if (!strongSelf) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
|
|
106
|
+
if (!eventEmitter) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
NSDictionary *eventBody = DaroMFabricEventBody(body);
|
|
111
|
+
eventEmitter->onAdClickedEvent({
|
|
112
|
+
.adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
|
|
113
|
+
.latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
RCTDirectEventBlock onAdImpressionRecordedEvent = ^(NSDictionary *body) {
|
|
118
|
+
DaroMAdBannerViewComponentView *strongSelf = weakSelf;
|
|
119
|
+
if (!strongSelf) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
auto eventEmitter = std::static_pointer_cast<const DaroMAdBannerViewEventEmitter>(strongSelf->_eventEmitter);
|
|
124
|
+
if (!eventEmitter) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
NSDictionary *eventBody = DaroMFabricEventBody(body);
|
|
129
|
+
eventEmitter->onAdImpressionRecordedEvent({
|
|
130
|
+
.adUnitId = DaroMFabricEventString(eventBody, @"adUnitId"),
|
|
131
|
+
.latencyMillis = DaroMFabricEventDouble(eventBody, @"latencyMillis"),
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
DaroMFabricSetValue(_bannerView, @"onAdLoadedEvent", onAdLoadedEvent);
|
|
136
|
+
DaroMFabricSetValue(_bannerView, @"onAdLoadFailedEvent", onAdLoadFailedEvent);
|
|
137
|
+
DaroMFabricSetValue(_bannerView, @"onAdClickedEvent", onAdClickedEvent);
|
|
138
|
+
DaroMFabricSetValue(_bannerView, @"onAdImpressionRecordedEvent", onAdImpressionRecordedEvent);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
+ (ComponentDescriptorProvider)componentDescriptorProvider
|
|
142
|
+
{
|
|
143
|
+
return concreteComponentDescriptorProvider<DaroMAdBannerViewComponentDescriptor>();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
- (void)updateProps:(const Props::Shared &)props oldProps:(const Props::Shared &)oldProps
|
|
147
|
+
{
|
|
148
|
+
const auto &oldComponentProps = *std::static_pointer_cast<const DaroMAdBannerViewProps>(_props);
|
|
149
|
+
const auto &newComponentProps = *std::static_pointer_cast<const DaroMAdBannerViewProps>(props);
|
|
150
|
+
NSMutableArray<NSString *> *changedProps = [NSMutableArray new];
|
|
151
|
+
|
|
152
|
+
if (oldComponentProps.adUnitId != newComponentProps.adUnitId) {
|
|
153
|
+
DaroMFabricSetValue(_bannerView, @"adUnitId", DaroMFabricNSStringFromStdString(newComponentProps.adUnitId));
|
|
154
|
+
[changedProps addObject:@"adUnitId"];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (oldComponentProps.adFormat != newComponentProps.adFormat) {
|
|
158
|
+
DaroMFabricSetValue(_bannerView, @"adFormat", DaroMFabricNSStringFromStdString(newComponentProps.adFormat));
|
|
159
|
+
[changedProps addObject:@"adFormat"];
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
if (oldComponentProps.loadOnMount != newComponentProps.loadOnMount) {
|
|
163
|
+
DaroMFabricSetValue(_bannerView, @"loadOnMount", @(newComponentProps.loadOnMount));
|
|
164
|
+
[changedProps addObject:@"loadOnMount"];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
if (oldComponentProps.isVisible != newComponentProps.isVisible) {
|
|
168
|
+
DaroMFabricSetValue(_bannerView, @"isVisible", @(newComponentProps.isVisible));
|
|
169
|
+
[changedProps addObject:@"isVisible"];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
[super updateProps:props oldProps:oldProps];
|
|
173
|
+
|
|
174
|
+
DaroMFabricPerformSelectorWithObject(_bannerView, NSSelectorFromString(@"applyReactProps:"), changedProps);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
- (void)loadAd
|
|
178
|
+
{
|
|
179
|
+
DaroMFabricPerformSelector(_bannerView, NSSelectorFromString(@"loadAd"));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
- (void)handleCommand:(const NSString *)commandName args:(const NSArray *)args
|
|
183
|
+
{
|
|
184
|
+
RCTDaroMAdBannerViewHandleCommand(self, commandName, args);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
- (void)prepareForRecycle
|
|
188
|
+
{
|
|
189
|
+
[super prepareForRecycle];
|
|
190
|
+
DaroMFabricSetValue(_bannerView, @"onAdLoadedEvent", nil);
|
|
191
|
+
DaroMFabricSetValue(_bannerView, @"onAdLoadFailedEvent", nil);
|
|
192
|
+
DaroMFabricSetValue(_bannerView, @"onAdClickedEvent", nil);
|
|
193
|
+
DaroMFabricSetValue(_bannerView, @"onAdImpressionRecordedEvent", nil);
|
|
194
|
+
DaroMFabricPerformSelector(_bannerView, NSSelectorFromString(@"prepareForReuse"));
|
|
195
|
+
[self installEventHandlers];
|
|
196
|
+
static const auto defaultProps = std::make_shared<const DaroMAdBannerViewProps>();
|
|
197
|
+
_props = defaultProps;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@end
|
|
201
|
+
|
|
202
|
+
Class<RCTComponentViewProtocol> DaroMAdBannerViewCls(void)
|
|
203
|
+
{
|
|
204
|
+
return DaroMAdBannerViewComponentView.class;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
#endif
|