cloudx-react-native 2.0.0-beta.1
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/LICENSE +57 -0
- package/README.md +1258 -0
- package/android/build.gradle +78 -0
- package/android/gradle.properties +7 -0
- package/android/src/main/AndroidManifest.xml +7 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXAdViewEvent.kt +15 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXBannerViewManagerImpl.kt +472 -0
- package/android/src/main/java/com/cloudxreactnative/CloudXReactNativeModuleImpl.kt +861 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXBannerViewManager.kt +90 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXReactNativeModule.kt +73 -0
- package/android/src/newarch/com/cloudxreactnative/CloudXReactNativePackage.kt +37 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXBannerViewManager.kt +76 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXReactNativeModule.kt +73 -0
- package/android/src/oldarch/com/cloudxreactnative/CloudXReactNativePackage.kt +16 -0
- package/cloudx-react-native.podspec +46 -0
- package/ios/AppTrackingTransparency.h +13 -0
- package/ios/AppTrackingTransparency.mm +59 -0
- package/ios/RNCloudXBannerView.h +51 -0
- package/ios/RNCloudXBannerView.mm +633 -0
- package/ios/RNCloudXBannerViewManager.h +11 -0
- package/ios/RNCloudXBannerViewManager.mm +60 -0
- package/ios/RNCloudXModule.h +30 -0
- package/ios/RNCloudXModule.mm +1088 -0
- package/lib/commonjs/AdView.js +151 -0
- package/lib/commonjs/AdView.js.map +1 -0
- package/lib/commonjs/AppTrackingTransparency.js +62 -0
- package/lib/commonjs/AppTrackingTransparency.js.map +1 -0
- package/lib/commonjs/BannerAd.js +117 -0
- package/lib/commonjs/BannerAd.js.map +1 -0
- package/lib/commonjs/CloudX.js +49 -0
- package/lib/commonjs/CloudX.js.map +1 -0
- package/lib/commonjs/ErrorCode.js +116 -0
- package/lib/commonjs/ErrorCode.js.map +1 -0
- package/lib/commonjs/EventEmitter.js +44 -0
- package/lib/commonjs/EventEmitter.js.map +1 -0
- package/lib/commonjs/InterstitialAd.js +94 -0
- package/lib/commonjs/InterstitialAd.js.map +1 -0
- package/lib/commonjs/MRecAd.js +117 -0
- package/lib/commonjs/MRecAd.js.map +1 -0
- package/lib/commonjs/RewardedAd.js +103 -0
- package/lib/commonjs/RewardedAd.js.map +1 -0
- package/lib/commonjs/hooks.js +239 -0
- package/lib/commonjs/hooks.js.map +1 -0
- package/lib/commonjs/index.js +144 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js +26 -0
- package/lib/commonjs/specs/CloudXAdViewNativeComponent.js.map +1 -0
- package/lib/commonjs/specs/NativeCloudXModule.js +18 -0
- package/lib/commonjs/specs/NativeCloudXModule.js.map +1 -0
- package/lib/commonjs/types/AdEvent.js +6 -0
- package/lib/commonjs/types/AdEvent.js.map +1 -0
- package/lib/commonjs/types/AdInfo.js +6 -0
- package/lib/commonjs/types/AdInfo.js.map +1 -0
- package/lib/commonjs/types/BannerAd.js +6 -0
- package/lib/commonjs/types/BannerAd.js.map +1 -0
- package/lib/commonjs/types/CloudX.js +6 -0
- package/lib/commonjs/types/CloudX.js.map +1 -0
- package/lib/commonjs/types/Configuration.js +2 -0
- package/lib/commonjs/types/Configuration.js.map +1 -0
- package/lib/commonjs/types/FullscreenAd.js +6 -0
- package/lib/commonjs/types/FullscreenAd.js.map +1 -0
- package/lib/commonjs/types/RewardedAd.js +6 -0
- package/lib/commonjs/types/RewardedAd.js.map +1 -0
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/module/AdView.js +144 -0
- package/lib/module/AdView.js.map +1 -0
- package/lib/module/AppTrackingTransparency.js +55 -0
- package/lib/module/AppTrackingTransparency.js.map +1 -0
- package/lib/module/BannerAd.js +110 -0
- package/lib/module/BannerAd.js.map +1 -0
- package/lib/module/CloudX.js +42 -0
- package/lib/module/CloudX.js.map +1 -0
- package/lib/module/ErrorCode.js +110 -0
- package/lib/module/ErrorCode.js.map +1 -0
- package/lib/module/EventEmitter.js +35 -0
- package/lib/module/EventEmitter.js.map +1 -0
- package/lib/module/InterstitialAd.js +87 -0
- package/lib/module/InterstitialAd.js.map +1 -0
- package/lib/module/MRecAd.js +110 -0
- package/lib/module/MRecAd.js.map +1 -0
- package/lib/module/RewardedAd.js +96 -0
- package/lib/module/RewardedAd.js.map +1 -0
- package/lib/module/hooks.js +230 -0
- package/lib/module/hooks.js.map +1 -0
- package/lib/module/index.js +33 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/specs/CloudXAdViewNativeComponent.js +20 -0
- package/lib/module/specs/CloudXAdViewNativeComponent.js.map +1 -0
- package/lib/module/specs/NativeCloudXModule.js +14 -0
- package/lib/module/specs/NativeCloudXModule.js.map +1 -0
- package/lib/module/types/AdEvent.js +2 -0
- package/lib/module/types/AdEvent.js.map +1 -0
- package/lib/module/types/AdInfo.js +2 -0
- package/lib/module/types/AdInfo.js.map +1 -0
- package/lib/module/types/BannerAd.js +2 -0
- package/lib/module/types/BannerAd.js.map +1 -0
- package/lib/module/types/CloudX.js +2 -0
- package/lib/module/types/CloudX.js.map +1 -0
- package/lib/module/types/Configuration.js +2 -0
- package/lib/module/types/Configuration.js.map +1 -0
- package/lib/module/types/FullscreenAd.js +2 -0
- package/lib/module/types/FullscreenAd.js.map +1 -0
- package/lib/module/types/RewardedAd.js +2 -0
- package/lib/module/types/RewardedAd.js.map +1 -0
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/typescript/src/AdView.d.ts +69 -0
- package/lib/typescript/src/AdView.d.ts.map +1 -0
- package/lib/typescript/src/AppTrackingTransparency.d.ts +28 -0
- package/lib/typescript/src/AppTrackingTransparency.d.ts.map +1 -0
- package/lib/typescript/src/BannerAd.d.ts +4 -0
- package/lib/typescript/src/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/CloudX.d.ts +4 -0
- package/lib/typescript/src/CloudX.d.ts.map +1 -0
- package/lib/typescript/src/ErrorCode.d.ts +102 -0
- package/lib/typescript/src/ErrorCode.d.ts.map +1 -0
- package/lib/typescript/src/EventEmitter.d.ts +16 -0
- package/lib/typescript/src/EventEmitter.d.ts.map +1 -0
- package/lib/typescript/src/InterstitialAd.d.ts +4 -0
- package/lib/typescript/src/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/src/MRecAd.d.ts +4 -0
- package/lib/typescript/src/MRecAd.d.ts.map +1 -0
- package/lib/typescript/src/RewardedAd.d.ts +4 -0
- package/lib/typescript/src/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/hooks.d.ts +50 -0
- package/lib/typescript/src/hooks.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +23 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts +61 -0
- package/lib/typescript/src/specs/CloudXAdViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/specs/NativeCloudXModule.d.ts +106 -0
- package/lib/typescript/src/specs/NativeCloudXModule.d.ts.map +1 -0
- package/lib/typescript/src/types/AdEvent.d.ts +10 -0
- package/lib/typescript/src/types/AdEvent.d.ts.map +1 -0
- package/lib/typescript/src/types/AdInfo.d.ts +48 -0
- package/lib/typescript/src/types/AdInfo.d.ts.map +1 -0
- package/lib/typescript/src/types/BannerAd.d.ts +39 -0
- package/lib/typescript/src/types/BannerAd.d.ts.map +1 -0
- package/lib/typescript/src/types/CloudX.d.ts +25 -0
- package/lib/typescript/src/types/CloudX.d.ts.map +1 -0
- package/lib/typescript/src/types/Configuration.d.ts +10 -0
- package/lib/typescript/src/types/Configuration.d.ts.map +1 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts +29 -0
- package/lib/typescript/src/types/FullscreenAd.d.ts.map +1 -0
- package/lib/typescript/src/types/RewardedAd.d.ts +10 -0
- package/lib/typescript/src/types/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +8 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/package.json +78 -0
- package/src/AdView.tsx +213 -0
- package/src/AppTrackingTransparency.ts +56 -0
- package/src/BannerAd.ts +133 -0
- package/src/CloudX.ts +55 -0
- package/src/ErrorCode.ts +157 -0
- package/src/EventEmitter.ts +38 -0
- package/src/InterstitialAd.ts +103 -0
- package/src/MRecAd.ts +133 -0
- package/src/RewardedAd.ts +113 -0
- package/src/hooks.ts +292 -0
- package/src/index.ts +50 -0
- package/src/specs/CloudXAdViewNativeComponent.ts +82 -0
- package/src/specs/NativeCloudXModule.ts +162 -0
- package/src/types/AdEvent.ts +11 -0
- package/src/types/AdInfo.ts +60 -0
- package/src/types/BannerAd.ts +59 -0
- package/src/types/CloudX.ts +33 -0
- package/src/types/Configuration.ts +10 -0
- package/src/types/FullscreenAd.ts +39 -0
- package/src/types/RewardedAd.ts +10 -0
- package/src/types/index.ts +7 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableArray
|
|
4
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
5
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
6
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
7
|
+
import com.facebook.react.uimanager.ViewManagerDelegate
|
|
8
|
+
import com.facebook.react.viewmanagers.CloudXAdViewManagerDelegate
|
|
9
|
+
import com.facebook.react.viewmanagers.CloudXAdViewManagerInterface
|
|
10
|
+
import androidx.annotation.NonNull
|
|
11
|
+
import androidx.annotation.Nullable
|
|
12
|
+
|
|
13
|
+
@ReactModule(name = CloudXBannerViewManagerImpl.NAME)
|
|
14
|
+
class CloudXBannerViewManager :
|
|
15
|
+
SimpleViewManager<CloudXBannerViewWrapper>(),
|
|
16
|
+
CloudXAdViewManagerInterface<CloudXBannerViewWrapper> {
|
|
17
|
+
|
|
18
|
+
private val delegate: ViewManagerDelegate<CloudXBannerViewWrapper>
|
|
19
|
+
|
|
20
|
+
init {
|
|
21
|
+
delegate = CloudXAdViewManagerDelegate(this)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
override fun getDelegate(): ViewManagerDelegate<CloudXBannerViewWrapper>? {
|
|
25
|
+
return delegate
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@NonNull
|
|
29
|
+
override fun getName(): String = CloudXBannerViewManagerImpl.NAME
|
|
30
|
+
|
|
31
|
+
@NonNull
|
|
32
|
+
override fun createViewInstance(@NonNull reactContext: ThemedReactContext): CloudXBannerViewWrapper {
|
|
33
|
+
return CloudXBannerViewManagerImpl.createViewInstance(reactContext)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
override fun receiveCommand(@NonNull view: CloudXBannerViewWrapper, commandId: String, @Nullable args: ReadableArray?) {
|
|
37
|
+
super.receiveCommand(view, commandId, args)
|
|
38
|
+
CloudXBannerViewManagerImpl.receiveCommand(view, commandId, args)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override fun setPlacement(view: CloudXBannerViewWrapper, placement: String?) {
|
|
42
|
+
CloudXBannerViewManagerImpl.setPlacement(view, placement)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
override fun setAdUnitId(view: CloudXBannerViewWrapper, adUnitId: String?) {
|
|
46
|
+
CloudXBannerViewManagerImpl.setAdId(view, adUnitId)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
override fun setAdFormat(view: CloudXBannerViewWrapper, adFormat: String?) {
|
|
50
|
+
CloudXBannerViewManagerImpl.setAdType(view, adFormat)
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
override fun setAdPosition(view: CloudXBannerViewWrapper, adPosition: String?) {
|
|
54
|
+
CloudXBannerViewManagerImpl.setPosition(view, adPosition)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
override fun setLoadOnMount(view: CloudXBannerViewWrapper, loadOnMount: Boolean) {
|
|
58
|
+
CloudXBannerViewManagerImpl.setShouldLoad(view, loadOnMount)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
override fun setCustomData(view: CloudXBannerViewWrapper, customData: String?) {
|
|
62
|
+
CloudXBannerViewManagerImpl.setCustomData(view, customData)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
override fun setAutoRefresh(view: CloudXBannerViewWrapper, autoRefresh: Boolean) {
|
|
66
|
+
CloudXBannerViewManagerImpl.setAutoRefresh(view, autoRefresh)
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
override fun loadAd(view: CloudXBannerViewWrapper) {
|
|
70
|
+
CloudXBannerViewManagerImpl.loadAd(view)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
override fun destroy(view: CloudXBannerViewWrapper) {
|
|
74
|
+
CloudXBannerViewManagerImpl.destroy(view)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
|
|
78
|
+
return CloudXBannerViewManagerImpl.getExportedCustomDirectEventTypeConstants()
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override fun onAfterUpdateTransaction(@NonNull view: CloudXBannerViewWrapper) {
|
|
82
|
+
super.onAfterUpdateTransaction(view)
|
|
83
|
+
CloudXBannerViewManagerImpl.onAfterUpdateTransaction(view)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override fun onDropViewInstance(@NonNull view: CloudXBannerViewWrapper) {
|
|
87
|
+
CloudXBannerViewManagerImpl.onDropViewInstance(view)
|
|
88
|
+
super.onDropViewInstance(view)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.fbreact.specs.NativeCloudXModuleSpec
|
|
4
|
+
import com.facebook.react.bridge.Promise
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
|
|
8
|
+
class CloudXReactNativeModule(reactContext: ReactApplicationContext) :
|
|
9
|
+
NativeCloudXModuleSpec(reactContext) {
|
|
10
|
+
|
|
11
|
+
private val impl = CloudXReactNativeModuleImpl(reactContext)
|
|
12
|
+
|
|
13
|
+
override fun getName(): String = CloudXReactNativeModuleImpl.MODULE_NAME
|
|
14
|
+
|
|
15
|
+
override fun getTypedExportedConstants(): MutableMap<String, Any> = impl.getConstants()
|
|
16
|
+
|
|
17
|
+
override fun onCatalystInstanceDestroy() {
|
|
18
|
+
super.onCatalystInstanceDestroy()
|
|
19
|
+
impl.onCatalystInstanceDestroy()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@ReactMethod override fun addListener(eventName: String) {}
|
|
23
|
+
@ReactMethod override fun removeListeners(count: Double) {}
|
|
24
|
+
|
|
25
|
+
@ReactMethod override fun initialize(pluginVersion: String, appKey: String, promise: Promise) = impl.initialize(pluginVersion, appKey, promise)
|
|
26
|
+
@ReactMethod override fun isInitialized(promise: Promise) = impl.isInitialized(promise)
|
|
27
|
+
@ReactMethod override fun isTablet(promise: Promise) = impl.isTablet(promise)
|
|
28
|
+
@ReactMethod override fun getVersion(promise: Promise) = impl.getVersion(promise)
|
|
29
|
+
|
|
30
|
+
@ReactMethod override fun setMinLogLevel(level: String) = impl.setMinLogLevel(level)
|
|
31
|
+
@ReactMethod override fun setVisualDebuggingEnabled(enabled: Boolean) = impl.setVisualDebuggingEnabled(enabled)
|
|
32
|
+
|
|
33
|
+
@ReactMethod override fun setHashedUserID(hashedUserID: String) = impl.setHashedUserID(hashedUserID)
|
|
34
|
+
@ReactMethod override fun setUserKeyValue(key: String, value: String) = impl.setUserKeyValue(key, value)
|
|
35
|
+
@ReactMethod override fun setAppKeyValue(key: String, value: String) = impl.setAppKeyValue(key, value)
|
|
36
|
+
@ReactMethod override fun clearAllKeyValues() = impl.clearAllKeyValues()
|
|
37
|
+
|
|
38
|
+
@ReactMethod override fun createBanner(adUnitId: String, position: String) = impl.createBanner(adUnitId, position)
|
|
39
|
+
@ReactMethod override fun createBannerWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createBannerWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
40
|
+
@ReactMethod override fun showBanner(adUnitId: String) = impl.showBanner(adUnitId)
|
|
41
|
+
@ReactMethod override fun hideBanner(adUnitId: String) = impl.hideBanner(adUnitId)
|
|
42
|
+
@ReactMethod override fun destroyBanner(adUnitId: String) = impl.destroyBanner(adUnitId)
|
|
43
|
+
@ReactMethod override fun setBannerPlacement(adUnitId: String, placement: String?) = impl.setBannerPlacement(adUnitId, placement)
|
|
44
|
+
@ReactMethod override fun setBannerCustomData(adUnitId: String, customData: String?) = impl.setBannerCustomData(adUnitId, customData)
|
|
45
|
+
@ReactMethod override fun startBannerAutoRefresh(adUnitId: String) = impl.startBannerAutoRefresh(adUnitId)
|
|
46
|
+
@ReactMethod override fun stopBannerAutoRefresh(adUnitId: String) = impl.stopBannerAutoRefresh(adUnitId)
|
|
47
|
+
@ReactMethod override fun updateBannerPosition(adUnitId: String, position: String) = impl.updateBannerPosition(adUnitId, position)
|
|
48
|
+
@ReactMethod override fun updateBannerOffsets(adUnitId: String, xOffset: Double, yOffset: Double) = impl.updateBannerOffsets(adUnitId, xOffset, yOffset)
|
|
49
|
+
@ReactMethod override fun setBannerBackgroundColor(adUnitId: String, hexColorString: String) = impl.setBannerBackgroundColor(adUnitId, hexColorString)
|
|
50
|
+
|
|
51
|
+
@ReactMethod override fun createMRec(adUnitId: String, position: String) = impl.createMRec(adUnitId, position)
|
|
52
|
+
@ReactMethod override fun createMRecWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createMRecWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
53
|
+
@ReactMethod override fun showMRec(adUnitId: String) = impl.showMRec(adUnitId)
|
|
54
|
+
@ReactMethod override fun hideMRec(adUnitId: String) = impl.hideMRec(adUnitId)
|
|
55
|
+
@ReactMethod override fun destroyMRec(adUnitId: String) = impl.destroyMRec(adUnitId)
|
|
56
|
+
@ReactMethod override fun setMRecPlacement(adUnitId: String, placement: String?) = impl.setMRecPlacement(adUnitId, placement)
|
|
57
|
+
@ReactMethod override fun setMRecCustomData(adUnitId: String, customData: String?) = impl.setMRecCustomData(adUnitId, customData)
|
|
58
|
+
@ReactMethod override fun startMRecAutoRefresh(adUnitId: String) = impl.startMRecAutoRefresh(adUnitId)
|
|
59
|
+
@ReactMethod override fun stopMRecAutoRefresh(adUnitId: String) = impl.stopMRecAutoRefresh(adUnitId)
|
|
60
|
+
@ReactMethod override fun updateMRecPosition(adUnitId: String, position: String) = impl.updateMRecPosition(adUnitId, position)
|
|
61
|
+
@ReactMethod override fun updateMRecOffsets(adUnitId: String, xOffset: Double, yOffset: Double) = impl.updateMRecOffsets(adUnitId, xOffset, yOffset)
|
|
62
|
+
@ReactMethod override fun setMRecBackgroundColor(adUnitId: String, hexColorString: String) = impl.setMRecBackgroundColor(adUnitId, hexColorString)
|
|
63
|
+
|
|
64
|
+
@ReactMethod override fun loadInterstitial(adUnitId: String) = impl.loadInterstitial(adUnitId)
|
|
65
|
+
@ReactMethod override fun isInterstitialReady(adUnitId: String, promise: Promise) = impl.isInterstitialReady(adUnitId, promise)
|
|
66
|
+
@ReactMethod override fun showInterstitial(adUnitId: String, placement: String?, customData: String?) = impl.showInterstitial(adUnitId, placement, customData)
|
|
67
|
+
@ReactMethod override fun destroyInterstitial(adUnitId: String) = impl.destroyInterstitial(adUnitId)
|
|
68
|
+
|
|
69
|
+
@ReactMethod override fun loadRewarded(adUnitId: String) = impl.loadRewarded(adUnitId)
|
|
70
|
+
@ReactMethod override fun isRewardedReady(adUnitId: String, promise: Promise) = impl.isRewardedReady(adUnitId, promise)
|
|
71
|
+
@ReactMethod override fun showRewarded(adUnitId: String, placement: String?, customData: String?) = impl.showRewarded(adUnitId, placement, customData)
|
|
72
|
+
@ReactMethod override fun destroyRewarded(adUnitId: String) = impl.destroyRewarded(adUnitId)
|
|
73
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.BaseReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.module.model.ReactModuleInfo
|
|
7
|
+
import com.facebook.react.module.model.ReactModuleInfoProvider
|
|
8
|
+
import com.facebook.react.uimanager.ViewManager
|
|
9
|
+
|
|
10
|
+
class CloudXReactNativePackage : BaseReactPackage() {
|
|
11
|
+
override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
|
|
12
|
+
return when (name) {
|
|
13
|
+
CloudXReactNativeModuleImpl.MODULE_NAME -> CloudXReactNativeModule(reactContext)
|
|
14
|
+
else -> null
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
override fun getReactModuleInfoProvider(): ReactModuleInfoProvider {
|
|
19
|
+
return ReactModuleInfoProvider {
|
|
20
|
+
mapOf(
|
|
21
|
+
CloudXReactNativeModuleImpl.MODULE_NAME to ReactModuleInfo(
|
|
22
|
+
CloudXReactNativeModuleImpl.MODULE_NAME,
|
|
23
|
+
CloudXReactNativeModule::class.java.name,
|
|
24
|
+
false, // canOverrideExistingModule
|
|
25
|
+
false, // needsEagerInit
|
|
26
|
+
true, // hasConstants
|
|
27
|
+
false, // isCxxModule
|
|
28
|
+
true // isTurboModule
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
35
|
+
return listOf(CloudXBannerViewManager())
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReadableArray
|
|
4
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
5
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
6
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
7
|
+
import androidx.annotation.NonNull
|
|
8
|
+
import androidx.annotation.Nullable
|
|
9
|
+
|
|
10
|
+
class CloudXBannerViewManager : SimpleViewManager<CloudXBannerViewWrapper>() {
|
|
11
|
+
|
|
12
|
+
@NonNull
|
|
13
|
+
override fun getName(): String = CloudXBannerViewManagerImpl.NAME
|
|
14
|
+
|
|
15
|
+
@NonNull
|
|
16
|
+
override fun createViewInstance(@NonNull reactContext: ThemedReactContext): CloudXBannerViewWrapper {
|
|
17
|
+
return CloudXBannerViewManagerImpl.createViewInstance(reactContext)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@ReactProp(name = "placement")
|
|
21
|
+
fun setPlacement(view: CloudXBannerViewWrapper, placement: String?) {
|
|
22
|
+
CloudXBannerViewManagerImpl.setPlacement(view, placement)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@ReactProp(name = "adUnitId")
|
|
26
|
+
fun setAdUnitId(view: CloudXBannerViewWrapper, adUnitId: String?) {
|
|
27
|
+
CloudXBannerViewManagerImpl.setAdId(view, adUnitId)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
@ReactProp(name = "adFormat")
|
|
31
|
+
fun setAdFormat(view: CloudXBannerViewWrapper, adFormat: String?) {
|
|
32
|
+
CloudXBannerViewManagerImpl.setAdType(view, adFormat)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
@ReactProp(name = "adPosition")
|
|
36
|
+
fun setAdPosition(view: CloudXBannerViewWrapper, adPosition: String?) {
|
|
37
|
+
CloudXBannerViewManagerImpl.setPosition(view, adPosition)
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@ReactProp(name = "loadOnMount")
|
|
41
|
+
fun setLoadOnMount(view: CloudXBannerViewWrapper, loadOnMount: Boolean) {
|
|
42
|
+
CloudXBannerViewManagerImpl.setShouldLoad(view, loadOnMount)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
@ReactProp(name = "customData")
|
|
46
|
+
fun setCustomData(view: CloudXBannerViewWrapper, customData: String?) {
|
|
47
|
+
CloudXBannerViewManagerImpl.setCustomData(view, customData)
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@ReactProp(name = "autoRefresh")
|
|
51
|
+
fun setAutoRefresh(view: CloudXBannerViewWrapper, autoRefresh: Boolean) {
|
|
52
|
+
CloudXBannerViewManagerImpl.setAutoRefresh(view, autoRefresh)
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
override fun receiveCommand(@NonNull view: CloudXBannerViewWrapper, commandId: String, @Nullable args: ReadableArray?) {
|
|
56
|
+
super.receiveCommand(view, commandId, args)
|
|
57
|
+
when (commandId) {
|
|
58
|
+
"loadAd" -> CloudXBannerViewManagerImpl.loadAd(view)
|
|
59
|
+
"destroy" -> CloudXBannerViewManagerImpl.destroy(view)
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
override fun getExportedCustomDirectEventTypeConstants(): Map<String, Any>? {
|
|
64
|
+
return CloudXBannerViewManagerImpl.getExportedCustomDirectEventTypeConstants()
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
override fun onAfterUpdateTransaction(@NonNull view: CloudXBannerViewWrapper) {
|
|
68
|
+
super.onAfterUpdateTransaction(view)
|
|
69
|
+
CloudXBannerViewManagerImpl.onAfterUpdateTransaction(view)
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
override fun onDropViewInstance(@NonNull view: CloudXBannerViewWrapper) {
|
|
73
|
+
CloudXBannerViewManagerImpl.onDropViewInstance(view)
|
|
74
|
+
super.onDropViewInstance(view)
|
|
75
|
+
}
|
|
76
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
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
|
+
|
|
8
|
+
class CloudXReactNativeModule(reactContext: ReactApplicationContext) :
|
|
9
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
10
|
+
|
|
11
|
+
private val impl = CloudXReactNativeModuleImpl(reactContext)
|
|
12
|
+
|
|
13
|
+
override fun getName(): String = CloudXReactNativeModuleImpl.MODULE_NAME
|
|
14
|
+
|
|
15
|
+
override fun getConstants(): MutableMap<String, Any> = impl.getConstants()
|
|
16
|
+
|
|
17
|
+
override fun onCatalystInstanceDestroy() {
|
|
18
|
+
super.onCatalystInstanceDestroy()
|
|
19
|
+
impl.onCatalystInstanceDestroy()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@ReactMethod fun addListener(eventName: String) {}
|
|
23
|
+
@ReactMethod fun removeListeners(count: Double) {}
|
|
24
|
+
|
|
25
|
+
@ReactMethod fun initialize(pluginVersion: String, appKey: String, promise: Promise) = impl.initialize(pluginVersion, appKey, promise)
|
|
26
|
+
@ReactMethod fun isInitialized(promise: Promise) = impl.isInitialized(promise)
|
|
27
|
+
@ReactMethod fun isTablet(promise: Promise) = impl.isTablet(promise)
|
|
28
|
+
@ReactMethod fun getVersion(promise: Promise) = impl.getVersion(promise)
|
|
29
|
+
|
|
30
|
+
@ReactMethod fun setMinLogLevel(level: String) = impl.setMinLogLevel(level)
|
|
31
|
+
@ReactMethod fun setVisualDebuggingEnabled(enabled: Boolean) = impl.setVisualDebuggingEnabled(enabled)
|
|
32
|
+
|
|
33
|
+
@ReactMethod fun setHashedUserID(hashedUserID: String) = impl.setHashedUserID(hashedUserID)
|
|
34
|
+
@ReactMethod fun setUserKeyValue(key: String, value: String) = impl.setUserKeyValue(key, value)
|
|
35
|
+
@ReactMethod fun setAppKeyValue(key: String, value: String) = impl.setAppKeyValue(key, value)
|
|
36
|
+
@ReactMethod fun clearAllKeyValues() = impl.clearAllKeyValues()
|
|
37
|
+
|
|
38
|
+
@ReactMethod fun createBanner(adUnitId: String, position: String) = impl.createBanner(adUnitId, position)
|
|
39
|
+
@ReactMethod fun createBannerWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createBannerWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
40
|
+
@ReactMethod fun showBanner(adUnitId: String) = impl.showBanner(adUnitId)
|
|
41
|
+
@ReactMethod fun hideBanner(adUnitId: String) = impl.hideBanner(adUnitId)
|
|
42
|
+
@ReactMethod fun destroyBanner(adUnitId: String) = impl.destroyBanner(adUnitId)
|
|
43
|
+
@ReactMethod fun setBannerPlacement(adUnitId: String, placement: String?) = impl.setBannerPlacement(adUnitId, placement)
|
|
44
|
+
@ReactMethod fun setBannerCustomData(adUnitId: String, customData: String?) = impl.setBannerCustomData(adUnitId, customData)
|
|
45
|
+
@ReactMethod fun startBannerAutoRefresh(adUnitId: String) = impl.startBannerAutoRefresh(adUnitId)
|
|
46
|
+
@ReactMethod fun stopBannerAutoRefresh(adUnitId: String) = impl.stopBannerAutoRefresh(adUnitId)
|
|
47
|
+
@ReactMethod fun updateBannerPosition(adUnitId: String, position: String) = impl.updateBannerPosition(adUnitId, position)
|
|
48
|
+
@ReactMethod fun updateBannerOffsets(adUnitId: String, xOffset: Double, yOffset: Double) = impl.updateBannerOffsets(adUnitId, xOffset, yOffset)
|
|
49
|
+
@ReactMethod fun setBannerBackgroundColor(adUnitId: String, hexColorString: String) = impl.setBannerBackgroundColor(adUnitId, hexColorString)
|
|
50
|
+
|
|
51
|
+
@ReactMethod fun createMRec(adUnitId: String, position: String) = impl.createMRec(adUnitId, position)
|
|
52
|
+
@ReactMethod fun createMRecWithOffsets(adUnitId: String, position: String, xOffset: Double, yOffset: Double) = impl.createMRecWithOffsets(adUnitId, position, xOffset, yOffset)
|
|
53
|
+
@ReactMethod fun showMRec(adUnitId: String) = impl.showMRec(adUnitId)
|
|
54
|
+
@ReactMethod fun hideMRec(adUnitId: String) = impl.hideMRec(adUnitId)
|
|
55
|
+
@ReactMethod fun destroyMRec(adUnitId: String) = impl.destroyMRec(adUnitId)
|
|
56
|
+
@ReactMethod fun setMRecPlacement(adUnitId: String, placement: String?) = impl.setMRecPlacement(adUnitId, placement)
|
|
57
|
+
@ReactMethod fun setMRecCustomData(adUnitId: String, customData: String?) = impl.setMRecCustomData(adUnitId, customData)
|
|
58
|
+
@ReactMethod fun startMRecAutoRefresh(adUnitId: String) = impl.startMRecAutoRefresh(adUnitId)
|
|
59
|
+
@ReactMethod fun stopMRecAutoRefresh(adUnitId: String) = impl.stopMRecAutoRefresh(adUnitId)
|
|
60
|
+
@ReactMethod fun updateMRecPosition(adUnitId: String, position: String) = impl.updateMRecPosition(adUnitId, position)
|
|
61
|
+
@ReactMethod fun updateMRecOffsets(adUnitId: String, xOffset: Double, yOffset: Double) = impl.updateMRecOffsets(adUnitId, xOffset, yOffset)
|
|
62
|
+
@ReactMethod fun setMRecBackgroundColor(adUnitId: String, hexColorString: String) = impl.setMRecBackgroundColor(adUnitId, hexColorString)
|
|
63
|
+
|
|
64
|
+
@ReactMethod fun loadInterstitial(adUnitId: String) = impl.loadInterstitial(adUnitId)
|
|
65
|
+
@ReactMethod fun isInterstitialReady(adUnitId: String, promise: Promise) = impl.isInterstitialReady(adUnitId, promise)
|
|
66
|
+
@ReactMethod fun showInterstitial(adUnitId: String, placement: String?, customData: String?) = impl.showInterstitial(adUnitId, placement, customData)
|
|
67
|
+
@ReactMethod fun destroyInterstitial(adUnitId: String) = impl.destroyInterstitial(adUnitId)
|
|
68
|
+
|
|
69
|
+
@ReactMethod fun loadRewarded(adUnitId: String) = impl.loadRewarded(adUnitId)
|
|
70
|
+
@ReactMethod fun isRewardedReady(adUnitId: String, promise: Promise) = impl.isRewardedReady(adUnitId, promise)
|
|
71
|
+
@ReactMethod fun showRewarded(adUnitId: String, placement: String?, customData: String?) = impl.showRewarded(adUnitId, placement, customData)
|
|
72
|
+
@ReactMethod fun destroyRewarded(adUnitId: String) = impl.destroyRewarded(adUnitId)
|
|
73
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
package com.cloudxreactnative
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.ReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.uimanager.ViewManager
|
|
7
|
+
|
|
8
|
+
class CloudXReactNativePackage : ReactPackage {
|
|
9
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
10
|
+
return listOf(CloudXReactNativeModule(reactContext))
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
14
|
+
return listOf(CloudXBannerViewManager())
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
require "json"
|
|
2
|
+
|
|
3
|
+
package = JSON.parse(File.read(File.join(__dir__, "package.json")))
|
|
4
|
+
|
|
5
|
+
Pod::Spec.new do |s|
|
|
6
|
+
s.name = "cloudx-react-native"
|
|
7
|
+
s.version = package["version"]
|
|
8
|
+
s.summary = package["description"]
|
|
9
|
+
s.homepage = "https://github.com/cloudx-io/cloudx-react-native"
|
|
10
|
+
s.license = package["license"]
|
|
11
|
+
s.authors = { "CloudX" => "support@cloudx.io" }
|
|
12
|
+
s.platforms = { :ios => "13.0" }
|
|
13
|
+
s.source = { :git => "https://github.com/cloudx-io/cloudx-react-native.git", :tag => "#{s.version}" }
|
|
14
|
+
|
|
15
|
+
s.requires_arc = true
|
|
16
|
+
|
|
17
|
+
s.dependency "CloudXCore", "~> 2.1.0-beta"
|
|
18
|
+
|
|
19
|
+
s.source_files = "ios/**/*.{h,mm}"
|
|
20
|
+
|
|
21
|
+
s.pod_target_xcconfig = {
|
|
22
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if respond_to?(:install_modules_dependencies, true)
|
|
26
|
+
install_modules_dependencies(s)
|
|
27
|
+
else
|
|
28
|
+
s.dependency "React-Core"
|
|
29
|
+
|
|
30
|
+
if ENV['RCT_NEW_ARCH_ENABLED'] == '1'
|
|
31
|
+
folly_compiler_flags = '-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1 -Wno-comma -Wno-shorten-64-to-32'
|
|
32
|
+
s.compiler_flags = folly_compiler_flags + " -DRCT_NEW_ARCH_ENABLED=1"
|
|
33
|
+
s.pod_target_xcconfig = {
|
|
34
|
+
"HEADER_SEARCH_PATHS" => "\"$(PODS_ROOT)/boost\"",
|
|
35
|
+
"OTHER_CPLUSPLUSFLAGS" => "-DFOLLY_NO_CONFIG -DFOLLY_MOBILE=1 -DFOLLY_USE_LIBCPP=1",
|
|
36
|
+
"CLANG_CXX_LANGUAGE_STANDARD" => "c++20"
|
|
37
|
+
}
|
|
38
|
+
s.dependency "React-RCTFabric"
|
|
39
|
+
s.dependency "React-Codegen"
|
|
40
|
+
s.dependency "RCT-Folly"
|
|
41
|
+
s.dependency "RCTRequired"
|
|
42
|
+
s.dependency "RCTTypeSafety"
|
|
43
|
+
s.dependency "ReactCommon/turbomodule/core"
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//
|
|
2
|
+
// AppTrackingTransparency.m
|
|
3
|
+
// CloudXReactNative
|
|
4
|
+
//
|
|
5
|
+
// App Tracking Transparency module for iOS 14+
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "AppTrackingTransparency.h"
|
|
9
|
+
#import <AppTrackingTransparency/AppTrackingTransparency.h>
|
|
10
|
+
#import <AdSupport/AdSupport.h>
|
|
11
|
+
|
|
12
|
+
@implementation AppTrackingTransparency
|
|
13
|
+
|
|
14
|
+
RCT_EXPORT_MODULE();
|
|
15
|
+
|
|
16
|
+
RCT_EXPORT_METHOD(requestTrackingAuthorization:(RCTPromiseResolveBlock)resolve
|
|
17
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
18
|
+
if (@available(iOS 14, *)) {
|
|
19
|
+
ATTrackingManagerAuthorizationStatus currentStatus = [ATTrackingManager trackingAuthorizationStatus];
|
|
20
|
+
|
|
21
|
+
if (currentStatus == ATTrackingManagerAuthorizationStatusNotDetermined) {
|
|
22
|
+
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
|
|
23
|
+
resolve([self statusToString:status]);
|
|
24
|
+
}];
|
|
25
|
+
} else {
|
|
26
|
+
resolve([self statusToString:currentStatus]);
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
resolve(@"not_required");
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
RCT_EXPORT_METHOD(getTrackingAuthorizationStatus:(RCTPromiseResolveBlock)resolve
|
|
34
|
+
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
35
|
+
if (@available(iOS 14, *)) {
|
|
36
|
+
ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];
|
|
37
|
+
resolve([self statusToString:status]);
|
|
38
|
+
} else {
|
|
39
|
+
resolve(@"not_required");
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
- (NSString *)statusToString:(ATTrackingManagerAuthorizationStatus)status API_AVAILABLE(ios(14)) {
|
|
44
|
+
switch (status) {
|
|
45
|
+
case ATTrackingManagerAuthorizationStatusAuthorized:
|
|
46
|
+
return @"authorized";
|
|
47
|
+
case ATTrackingManagerAuthorizationStatusDenied:
|
|
48
|
+
return @"denied";
|
|
49
|
+
case ATTrackingManagerAuthorizationStatusRestricted:
|
|
50
|
+
return @"restricted";
|
|
51
|
+
case ATTrackingManagerAuthorizationStatusNotDetermined:
|
|
52
|
+
return @"not_determined";
|
|
53
|
+
default:
|
|
54
|
+
return @"unknown";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@end
|
|
59
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
//
|
|
2
|
+
// RNCloudXBannerView.h
|
|
3
|
+
// cloudx-react-native
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
#import <React/RCTComponent.h>
|
|
7
|
+
#import <CloudXCore/CloudXCore.h>
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Ad view position options for programmatic banner placement.
|
|
11
|
+
*/
|
|
12
|
+
typedef NS_ENUM(NSInteger, RNCloudXAdViewPosition) {
|
|
13
|
+
RNCloudXAdViewPositionNone = 0,
|
|
14
|
+
RNCloudXAdViewPositionTopLeft,
|
|
15
|
+
RNCloudXAdViewPositionTopCenter,
|
|
16
|
+
RNCloudXAdViewPositionTopRight,
|
|
17
|
+
RNCloudXAdViewPositionCenterLeft,
|
|
18
|
+
RNCloudXAdViewPositionCentered,
|
|
19
|
+
RNCloudXAdViewPositionCenterRight,
|
|
20
|
+
RNCloudXAdViewPositionBottomLeft,
|
|
21
|
+
RNCloudXAdViewPositionBottomCenter,
|
|
22
|
+
RNCloudXAdViewPositionBottomRight
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
|
+
#import <React/RCTViewComponentView.h>
|
|
27
|
+
@interface RNCloudXBannerView : RCTViewComponentView <CLXBannerDelegate, CLXAdRevenueDelegate>
|
|
28
|
+
#else
|
|
29
|
+
#import <React/RCTView.h>
|
|
30
|
+
@interface RNCloudXBannerView : RCTView <CLXBannerDelegate, CLXAdRevenueDelegate>
|
|
31
|
+
#endif
|
|
32
|
+
|
|
33
|
+
@property (nonatomic, copy) NSString *placement;
|
|
34
|
+
@property (nonatomic, copy) NSString *adId;
|
|
35
|
+
@property (nonatomic, copy) NSString *bannerSize;
|
|
36
|
+
@property (nonatomic, copy) NSString *adPosition;
|
|
37
|
+
@property (nonatomic, copy) NSString *customData;
|
|
38
|
+
@property (nonatomic, assign) BOOL shouldLoad;
|
|
39
|
+
@property (nonatomic, assign) BOOL autoRefresh;
|
|
40
|
+
|
|
41
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdLoaded;
|
|
42
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdLoadFailed;
|
|
43
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdClicked;
|
|
44
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdExpanded;
|
|
45
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdCollapsed;
|
|
46
|
+
@property (nonatomic, copy) RCTDirectEventBlock onAdRevenuePaid;
|
|
47
|
+
|
|
48
|
+
- (void)loadAd;
|
|
49
|
+
- (void)destroyAd;
|
|
50
|
+
|
|
51
|
+
@end
|