react-native-daro 1.0.12 → 1.0.15
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 +1 -1
- package/README.md +30 -30
- package/android/build.gradle +42 -59
- package/android/src/admob/java/com/daro/reactnative/DaroSdkBridge.kt +23 -0
- package/android/src/main/AndroidManifest.xml +1 -2
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdBannerViewManager.kt +4 -4
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMAdNativeViewManager.kt +4 -4
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMModule.kt +44 -45
- package/android/src/main/java/com/{darom → daro/reactnative}/DaroMPackage.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/constants/InternalDaroMBannerSize.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/event/DaroMEvent.kt +1 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMBannerViewModuleImpl.kt +2 -2
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMInterstitialModuleImpl.kt +26 -26
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMLightPopupModuleImpl.kt +30 -29
- package/android/src/main/java/com/{darom → daro/reactnative}/impl/DaroMRewardedAdModuleImpl.kt +33 -27
- package/android/src/main/java/com/{darom → daro/reactnative}/util/AdInfoUtil.kt +25 -1
- package/android/src/main/java/com/{darom → daro/reactnative}/util/EventEmitterUtil.kt +2 -2
- package/android/src/main/java/com/daro/reactnative/view/DaroMAdBannerViewContainer.kt +417 -0
- package/android/src/main/java/com/{darom → daro/reactnative}/view/DaroMAdNativeViewContainer.kt +4 -4
- package/app.plugin.js +1 -0
- package/ios/DaroMAdBannerViewManager.swift +5 -1
- package/ios/DaroMModule+AppOpen.swift +34 -31
- package/ios/DaroMModule+Interstitial.swift +29 -26
- package/ios/DaroMModule+LightPopup.swift +40 -33
- package/ios/DaroMModule+Rewarded.swift +35 -27
- package/ios/DaroMModule.mm +13 -13
- package/ios/DaroMModule.swift +20 -13
- package/ios/DaroMNativeAdViewManager.swift +1 -1
- package/ios/mediation/admob/DaroMediationDebugger.swift +11 -0
- package/ios/mediation/admob/DaroMediationTypes.swift +22 -0
- package/lib/commonjs/AdBannerView.js +6 -1
- package/lib/commonjs/AdBannerView.js.map +1 -1
- package/lib/commonjs/AppOpenAd.js +155 -70
- package/lib/commonjs/AppOpenAd.js.map +1 -1
- package/lib/commonjs/ErrorCode.js.map +1 -1
- package/lib/commonjs/EventEmitter.js +39 -11
- package/lib/commonjs/EventEmitter.js.map +1 -1
- package/lib/commonjs/InterstitialAd.js +157 -70
- package/lib/commonjs/InterstitialAd.js.map +1 -1
- package/lib/commonjs/LightPopupAd.js +181 -99
- package/lib/commonjs/LightPopupAd.js.map +1 -1
- package/lib/commonjs/RewardedAd.js +164 -80
- package/lib/commonjs/RewardedAd.js.map +1 -1
- package/lib/commonjs/index.js +1 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdView.js +5 -1
- package/lib/commonjs/nativeAd/NativeAdView.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/commonjs/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/types/AdEvent.js +17 -0
- package/lib/commonjs/types/AdEvent.js.map +1 -1
- package/lib/module/AdBannerView.js +6 -1
- package/lib/module/AdBannerView.js.map +1 -1
- package/lib/module/AppOpenAd.js +155 -71
- package/lib/module/AppOpenAd.js.map +1 -1
- package/lib/module/ErrorCode.js.map +1 -1
- package/lib/module/EventEmitter.js +37 -10
- package/lib/module/EventEmitter.js.map +1 -1
- package/lib/module/InterstitialAd.js +158 -72
- package/lib/module/InterstitialAd.js.map +1 -1
- package/lib/module/LightPopupAd.js +182 -100
- package/lib/module/LightPopupAd.js.map +1 -1
- package/lib/module/RewardedAd.js +165 -82
- package/lib/module/RewardedAd.js.map +1 -1
- package/lib/module/index.js +1 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/nativeAd/NativeAdView.js +5 -1
- package/lib/module/nativeAd/NativeAdView.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewComponents.js.map +1 -1
- package/lib/module/nativeAd/NativeAdViewProvider.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/types/AdEvent.js +18 -1
- package/lib/module/types/AdEvent.js.map +1 -1
- package/lib/typescript/commonjs/plugin/src/index.d.ts +19 -0
- package/lib/typescript/commonjs/plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts +6 -0
- package/lib/typescript/commonjs/plugin/src/skAdNetworkIds.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts +8 -0
- package/lib/typescript/commonjs/plugin/src/withAndroid.d.ts.map +1 -0
- package/lib/typescript/commonjs/plugin/src/withIos.d.ts +8 -0
- package/lib/typescript/commonjs/plugin/src/withIos.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/AdBannerView.d.ts +124 -2
- package/lib/typescript/commonjs/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/AppOpenAd.d.ts +53 -2
- package/lib/typescript/commonjs/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ErrorCode.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/EventEmitter.d.ts +9 -1
- package/lib/typescript/commonjs/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/InterstitialAd.d.ts +53 -2
- package/lib/typescript/commonjs/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LightPopupAd.d.ts +57 -2
- package/lib/typescript/commonjs/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/RewardedAd.d.ts +57 -2
- package/lib/typescript/commonjs/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +1 -1
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/nativeAd/NativeAdView.d.ts +124 -2
- 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.map +1 -1
- package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts +2 -2
- package/lib/typescript/commonjs/src/types/AdBannerViewProps.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdEvent.d.ts +24 -0
- package/lib/typescript/commonjs/src/types/AdEvent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/AdProps.d.ts +2 -2
- package/lib/typescript/commonjs/src/types/AdProps.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/DaroMMobileAds.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/LightPopupAd.d.ts +1 -5
- package/lib/typescript/commonjs/src/types/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/lib/typescript/module/plugin/src/index.d.ts +19 -0
- package/lib/typescript/module/plugin/src/index.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts +6 -0
- package/lib/typescript/module/plugin/src/skAdNetworkIds.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/withAndroid.d.ts +8 -0
- package/lib/typescript/module/plugin/src/withAndroid.d.ts.map +1 -0
- package/lib/typescript/module/plugin/src/withIos.d.ts +8 -0
- package/lib/typescript/module/plugin/src/withIos.d.ts.map +1 -0
- package/lib/typescript/module/src/AdBannerView.d.ts +124 -2
- package/lib/typescript/module/src/AdBannerView.d.ts.map +1 -1
- package/lib/typescript/module/src/AppOpenAd.d.ts +53 -2
- package/lib/typescript/module/src/AppOpenAd.d.ts.map +1 -1
- package/lib/typescript/module/src/ErrorCode.d.ts.map +1 -1
- package/lib/typescript/module/src/EventEmitter.d.ts +9 -1
- package/lib/typescript/module/src/EventEmitter.d.ts.map +1 -1
- package/lib/typescript/module/src/InterstitialAd.d.ts +53 -2
- package/lib/typescript/module/src/InterstitialAd.d.ts.map +1 -1
- package/lib/typescript/module/src/LightPopupAd.d.ts +57 -2
- package/lib/typescript/module/src/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/module/src/RewardedAd.d.ts +57 -2
- package/lib/typescript/module/src/RewardedAd.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +1 -1
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/nativeAd/NativeAdView.d.ts +124 -2
- 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.map +1 -1
- package/lib/typescript/module/src/types/AdBannerViewProps.d.ts +2 -2
- package/lib/typescript/module/src/types/AdBannerViewProps.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdEvent.d.ts +24 -0
- package/lib/typescript/module/src/types/AdEvent.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdInfo.d.ts.map +1 -1
- package/lib/typescript/module/src/types/AdProps.d.ts +2 -2
- package/lib/typescript/module/src/types/AdProps.d.ts.map +1 -1
- package/lib/typescript/module/src/types/DaroMMobileAds.d.ts.map +1 -1
- package/lib/typescript/module/src/types/LightPopupAd.d.ts +1 -5
- package/lib/typescript/module/src/types/LightPopupAd.d.ts.map +1 -1
- package/lib/typescript/module/src/types/NativeAdViewProps.d.ts.map +1 -1
- package/package.json +88 -101
- package/plugin/build/index.d.ts +18 -0
- package/plugin/build/index.js +71 -0
- package/plugin/build/skAdNetworkIds.d.ts +5 -0
- package/plugin/build/skAdNetworkIds.js +205 -0
- package/plugin/build/withAndroid.d.ts +7 -0
- package/plugin/build/withAndroid.js +140 -0
- package/plugin/build/withIos.d.ts +7 -0
- package/plugin/build/withIos.js +83 -0
- package/react-native-daro.podspec +25 -0
- package/src/AdBannerView.tsx +54 -17
- package/src/AppOpenAd.ts +216 -104
- package/src/ErrorCode.ts +1 -2
- package/src/EventEmitter.ts +63 -14
- package/src/InterstitialAd.ts +216 -104
- package/src/LightPopupAd.ts +240 -114
- package/src/RewardedAd.ts +233 -122
- package/src/index.tsx +20 -12
- package/src/nativeAd/NativeAdView.tsx +65 -14
- package/src/nativeAd/NativeAdViewComponents.tsx +54 -27
- package/src/nativeAd/NativeAdViewProvider.tsx +17 -7
- package/src/types/AdBannerViewProps.ts +11 -11
- package/src/types/AdEvent.ts +39 -2
- package/src/types/AdInfo.ts +17 -17
- package/src/types/AdProps.ts +8 -9
- package/src/types/DaroMMobileAds.ts +3 -6
- package/src/types/LightPopupAd.ts +2 -7
- package/src/types/NativeAdViewProps.ts +5 -5
- package/src/types/index.ts +1 -1
- package/android/gradle.properties +0 -5
- package/android/src/main/AndroidManifestNew.xml +0 -7
- package/android/src/main/java/com/darom/view/DaroMAdBannerViewContainer.kt +0 -163
- package/android/src/main/res/layout/layout_activity_transparent.xml +0 -7
- package/android/src/main/res/values/styles.xml +0 -11
- package/ios/DaroM-Bridging-Header.h +0 -6
- package/lib/commonjs/types/AppOpenAd.js +0 -6
- package/lib/commonjs/types/AppOpenAd.js.map +0 -1
- package/lib/commonjs/types/FullScreenAd.js +0 -6
- package/lib/commonjs/types/FullScreenAd.js.map +0 -1
- package/lib/commonjs/types/InterstitialAd.js +0 -6
- package/lib/commonjs/types/InterstitialAd.js.map +0 -1
- package/lib/commonjs/types/RewardedAd.js +0 -6
- package/lib/commonjs/types/RewardedAd.js.map +0 -1
- package/lib/module/types/AppOpenAd.js +0 -4
- package/lib/module/types/AppOpenAd.js.map +0 -1
- package/lib/module/types/FullScreenAd.js +0 -4
- package/lib/module/types/FullScreenAd.js.map +0 -1
- package/lib/module/types/InterstitialAd.js +0 -4
- package/lib/module/types/InterstitialAd.js.map +0 -1
- package/lib/module/types/RewardedAd.js +0 -4
- package/lib/module/types/RewardedAd.js.map +0 -1
- package/lib/typescript/commonjs/src/types/AppOpenAd.d.ts +0 -3
- package/lib/typescript/commonjs/src/types/AppOpenAd.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/FullScreenAd.d.ts +0 -21
- package/lib/typescript/commonjs/src/types/FullScreenAd.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/InterstitialAd.d.ts +0 -3
- package/lib/typescript/commonjs/src/types/InterstitialAd.d.ts.map +0 -1
- package/lib/typescript/commonjs/src/types/RewardedAd.d.ts +0 -9
- package/lib/typescript/commonjs/src/types/RewardedAd.d.ts.map +0 -1
- package/lib/typescript/module/src/types/AppOpenAd.d.ts +0 -3
- package/lib/typescript/module/src/types/AppOpenAd.d.ts.map +0 -1
- package/lib/typescript/module/src/types/FullScreenAd.d.ts +0 -21
- package/lib/typescript/module/src/types/FullScreenAd.d.ts.map +0 -1
- package/lib/typescript/module/src/types/InterstitialAd.d.ts +0 -3
- package/lib/typescript/module/src/types/InterstitialAd.d.ts.map +0 -1
- package/lib/typescript/module/src/types/RewardedAd.d.ts +0 -9
- package/lib/typescript/module/src/types/RewardedAd.d.ts.map +0 -1
- package/react-native-daro-m.podspec +0 -44
- package/src/types/AppOpenAd.ts +0 -3
- package/src/types/FullScreenAd.ts +0 -28
- package/src/types/InterstitialAd.ts +0 -3
- package/src/types/RewardedAd.ts +0 -15
package/src/RewardedAd.ts
CHANGED
|
@@ -1,130 +1,241 @@
|
|
|
1
|
-
import { NativeModules } from
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { NativeModules } from 'react-native';
|
|
2
|
+
import {
|
|
3
|
+
addEventListener,
|
|
4
|
+
removeEventListener,
|
|
5
|
+
AdEventEmitter,
|
|
6
|
+
} from './EventEmitter';
|
|
7
|
+
import type {
|
|
8
|
+
AdDisplayFailedInfo,
|
|
9
|
+
AdInfo,
|
|
10
|
+
AdLoadFailedInfo,
|
|
11
|
+
AdRewardInfo,
|
|
12
|
+
} from './types/AdInfo';
|
|
13
|
+
import {
|
|
14
|
+
AdEventType,
|
|
15
|
+
RewardedAdEventType,
|
|
16
|
+
type RewardedAdEventPayloadMap,
|
|
17
|
+
} from './types/AdEvent';
|
|
5
18
|
|
|
6
19
|
const { DaroMModule } = NativeModules;
|
|
7
20
|
|
|
8
21
|
const {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
ON_REWARDED_AD_LOADED_EVENT,
|
|
23
|
+
ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
24
|
+
ON_REWARDED_AD_CLICKED_EVENT,
|
|
25
|
+
ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
26
|
+
ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
27
|
+
ON_REWARDED_AD_HIDDEN_EVENT,
|
|
28
|
+
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
29
|
+
ON_REWARDED_AD_IMPRESSION_RECORDED,
|
|
17
30
|
} = DaroMModule.getConstants();
|
|
18
31
|
|
|
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
|
-
const
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
const
|
|
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
|
-
|
|
32
|
+
const NATIVE_EVENT_BY_TYPE: Record<AdEventType | RewardedAdEventType, string> =
|
|
33
|
+
{
|
|
34
|
+
[AdEventType.LOADED]: ON_REWARDED_AD_LOADED_EVENT,
|
|
35
|
+
[AdEventType.LOAD_FAILED]: ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
36
|
+
[AdEventType.CLICKED]: ON_REWARDED_AD_CLICKED_EVENT,
|
|
37
|
+
[AdEventType.DISPLAYED]: ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
38
|
+
[AdEventType.FAILED_TO_DISPLAY]: ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
39
|
+
[AdEventType.HIDDEN]: ON_REWARDED_AD_HIDDEN_EVENT,
|
|
40
|
+
[AdEventType.IMPRESSION_RECORDED]: ON_REWARDED_AD_IMPRESSION_RECORDED,
|
|
41
|
+
[RewardedAdEventType.RECEIVED_REWARD]: ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export class RewardedAd {
|
|
45
|
+
private static _nextRequestId = 1;
|
|
46
|
+
private static _legacyRequestIds = new Map<string, number>();
|
|
47
|
+
private static _legacyRequestIdSet = new Set<number>();
|
|
48
|
+
|
|
49
|
+
private readonly eventEmitter = new AdEventEmitter();
|
|
50
|
+
|
|
51
|
+
private constructor(
|
|
52
|
+
private readonly requestId: number,
|
|
53
|
+
private readonly adUnitId: string
|
|
54
|
+
) {}
|
|
55
|
+
|
|
56
|
+
static createForAdRequest(adUnitId: string): RewardedAd {
|
|
57
|
+
const requestId = RewardedAd._nextRequestId++;
|
|
58
|
+
return new RewardedAd(requestId, adUnitId);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
isAdReady(): Promise<boolean> {
|
|
62
|
+
return DaroMModule.isRewardedAdReady(this.requestId, this.adUnitId);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
load(): void {
|
|
66
|
+
DaroMModule.loadRewardedAd(this.requestId, this.adUnitId);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
show(customData?: string | null): void {
|
|
70
|
+
DaroMModule.showRewardedAd(
|
|
71
|
+
this.requestId,
|
|
72
|
+
this.adUnitId,
|
|
73
|
+
customData ?? null
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
addAdEventListener<T extends AdEventType | RewardedAdEventType>(
|
|
78
|
+
type: T,
|
|
79
|
+
listener: (info: RewardedAdEventPayloadMap[T]) => void
|
|
80
|
+
): () => void {
|
|
81
|
+
const nativeEvent = NATIVE_EVENT_BY_TYPE[type];
|
|
82
|
+
const requestId = this.requestId;
|
|
83
|
+
return this.eventEmitter.addEventListener(nativeEvent, (payload: any) => {
|
|
84
|
+
if (payload?.requestId !== requestId) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
listener(payload);
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
removeAllListeners(): void {
|
|
92
|
+
this.eventEmitter.removeAllListeners();
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// ---- Deprecated static API (backward compatibility) ----
|
|
96
|
+
|
|
97
|
+
private static _getLegacyRequestId(adUnitId: string): number {
|
|
98
|
+
let requestId = RewardedAd._legacyRequestIds.get(adUnitId);
|
|
99
|
+
if (requestId === undefined) {
|
|
100
|
+
requestId = RewardedAd._nextRequestId++;
|
|
101
|
+
RewardedAd._legacyRequestIds.set(adUnitId, requestId);
|
|
102
|
+
RewardedAd._legacyRequestIdSet.add(requestId);
|
|
103
|
+
}
|
|
104
|
+
return requestId;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
private static _addLegacyEventListener<T>(
|
|
108
|
+
event: string,
|
|
109
|
+
listener: (info: T) => void
|
|
110
|
+
): void {
|
|
111
|
+
addEventListener(event, (payload: any) => {
|
|
112
|
+
if (!RewardedAd._legacyRequestIdSet.has(payload?.requestId)) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
listener(payload);
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `isAdReady()`를 사용하세요. */
|
|
120
|
+
static isAdReady(adUnitId: string): Promise<boolean> {
|
|
121
|
+
const requestId = RewardedAd._getLegacyRequestId(adUnitId);
|
|
122
|
+
return DaroMModule.isRewardedAdReady(requestId, adUnitId);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `load()`를 사용하세요. */
|
|
126
|
+
static loadAd(adUnitId: string): void {
|
|
127
|
+
const requestId = RewardedAd._getLegacyRequestId(adUnitId);
|
|
128
|
+
DaroMModule.loadRewardedAd(requestId, adUnitId);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/** @deprecated `RewardedAd.createForAdRequest(adUnitId)` 인스턴스의 `show()`를 사용하세요. */
|
|
132
|
+
static showAd(adUnitId: string, customData?: string | null): void {
|
|
133
|
+
const requestId = RewardedAd._getLegacyRequestId(adUnitId);
|
|
134
|
+
DaroMModule.showRewardedAd(requestId, adUnitId, customData ?? null);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/** @deprecated `addAdEventListener(AdEventType.LOADED, ...)`를 인스턴스에서 사용하세요. */
|
|
138
|
+
static addAdLoadedEventListener(listener: (adInfo: AdInfo) => void): void {
|
|
139
|
+
RewardedAd._addLegacyEventListener(ON_REWARDED_AD_LOADED_EVENT, listener);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
143
|
+
static removeAdLoadedEventListener(): void {
|
|
144
|
+
removeEventListener(ON_REWARDED_AD_LOADED_EVENT);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/** @deprecated `addAdEventListener(AdEventType.LOAD_FAILED, ...)`를 인스턴스에서 사용하세요. */
|
|
148
|
+
static addAdLoadFailedEventListener(
|
|
149
|
+
listener: (errorInfo: AdLoadFailedInfo) => void
|
|
150
|
+
): void {
|
|
151
|
+
RewardedAd._addLegacyEventListener(
|
|
152
|
+
ON_REWARDED_AD_LOAD_FAILED_EVENT,
|
|
153
|
+
listener
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
158
|
+
static removeAdLoadFailedEventListener(): void {
|
|
159
|
+
removeEventListener(ON_REWARDED_AD_LOAD_FAILED_EVENT);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/** @deprecated `addAdEventListener(AdEventType.CLICKED, ...)`를 인스턴스에서 사용하세요. */
|
|
163
|
+
static addAdClickedEventListener(listener: (adInfo: AdInfo) => void): void {
|
|
164
|
+
RewardedAd._addLegacyEventListener(ON_REWARDED_AD_CLICKED_EVENT, listener);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
168
|
+
static removeAdClickedEventListener(): void {
|
|
169
|
+
removeEventListener(ON_REWARDED_AD_CLICKED_EVENT);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/** @deprecated `addAdEventListener(AdEventType.DISPLAYED, ...)`를 인스턴스에서 사용하세요. */
|
|
173
|
+
static addAdDisplayedEventListener(listener: (adInfo: AdInfo) => void): void {
|
|
174
|
+
RewardedAd._addLegacyEventListener(
|
|
175
|
+
ON_REWARDED_AD_DISPLAYED_EVENT,
|
|
176
|
+
listener
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
181
|
+
static removeAdDisplayedEventListener(): void {
|
|
182
|
+
removeEventListener(ON_REWARDED_AD_DISPLAYED_EVENT);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/** @deprecated `addAdEventListener(AdEventType.FAILED_TO_DISPLAY, ...)`를 인스턴스에서 사용하세요. */
|
|
186
|
+
static addAdFailedToDisplayEventListener(
|
|
187
|
+
listener: (errorInfo: AdDisplayFailedInfo) => void
|
|
188
|
+
): void {
|
|
189
|
+
RewardedAd._addLegacyEventListener(
|
|
190
|
+
ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT,
|
|
191
|
+
listener
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
196
|
+
static removeAdFailedToDisplayEventListener(): void {
|
|
197
|
+
removeEventListener(ON_REWARDED_AD_FAILED_TO_DISPLAY_EVENT);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/** @deprecated `addAdEventListener(AdEventType.HIDDEN, ...)`를 인스턴스에서 사용하세요. */
|
|
201
|
+
static addAdHiddenEventListener(listener: (adInfo: AdInfo) => void): void {
|
|
202
|
+
RewardedAd._addLegacyEventListener(ON_REWARDED_AD_HIDDEN_EVENT, listener);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
206
|
+
static removeAdHiddenEventListener(): void {
|
|
207
|
+
removeEventListener(ON_REWARDED_AD_HIDDEN_EVENT);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/** @deprecated `addAdEventListener(AdEventType.IMPRESSION_RECORDED, ...)`를 인스턴스에서 사용하세요. */
|
|
211
|
+
static addAdImpressionRecordedListener(
|
|
212
|
+
listener: (adInfo: AdInfo) => void
|
|
213
|
+
): void {
|
|
214
|
+
RewardedAd._addLegacyEventListener(
|
|
215
|
+
ON_REWARDED_AD_IMPRESSION_RECORDED,
|
|
216
|
+
listener
|
|
217
|
+
);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
221
|
+
static removeAdImpressionRecordedListener(): void {
|
|
222
|
+
removeEventListener(ON_REWARDED_AD_IMPRESSION_RECORDED);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/** @deprecated `addAdEventListener(RewardedAdEventType.RECEIVED_REWARD, ...)`를 인스턴스에서 사용하세요. */
|
|
226
|
+
static addAdReceivedRewardEventListener(
|
|
227
|
+
listener: (adInfo: AdRewardInfo) => void
|
|
228
|
+
): void {
|
|
229
|
+
RewardedAd._addLegacyEventListener(
|
|
230
|
+
ON_REWARDED_AD_RECEIVED_REWARD_EVENT,
|
|
231
|
+
listener
|
|
232
|
+
);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/** @deprecated 인스턴스의 `addAdEventListener` disposer를 사용하세요. */
|
|
236
|
+
static removeAdReceivedRewardEventListener(): void {
|
|
237
|
+
removeEventListener(ON_REWARDED_AD_RECEIVED_REWARD_EVENT);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
129
240
|
|
|
130
241
|
export default RewardedAd;
|
package/src/index.tsx
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NativeModules,
|
|
3
|
-
Platform
|
|
4
|
-
} from 'react-native';
|
|
1
|
+
import { NativeModules, Platform } from 'react-native';
|
|
5
2
|
|
|
6
3
|
export * from './AdBannerView';
|
|
7
4
|
export * from './types';
|
|
@@ -10,23 +7,34 @@ export { RewardedAd } from './RewardedAd';
|
|
|
10
7
|
export { LightPopupAd } from './LightPopupAd';
|
|
11
8
|
|
|
12
9
|
export { NativeAdView } from './nativeAd/NativeAdView';
|
|
13
|
-
export {
|
|
10
|
+
export {
|
|
11
|
+
BodyView,
|
|
12
|
+
CallToActionView,
|
|
13
|
+
IconView,
|
|
14
|
+
MediaView,
|
|
15
|
+
TitleView,
|
|
16
|
+
} from './nativeAd/NativeAdViewComponents';
|
|
14
17
|
|
|
15
18
|
const LINKING_ERROR =
|
|
16
|
-
`The
|
|
19
|
+
`The native module 'DaroMModule' doesn't seem to be linked. Make sure: \n\n` +
|
|
17
20
|
Platform.select({ ios: "- You have run 'pod install'\n", default: '' }) +
|
|
18
21
|
'- You rebuilt the app after installing the package\n' +
|
|
19
22
|
'- You are not using Expo Go\n';
|
|
20
23
|
|
|
21
|
-
const DaroMModule = NativeModules.DaroMModule
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
const DaroMModule = NativeModules.DaroMModule
|
|
25
|
+
? NativeModules.DaroMModule
|
|
26
|
+
: new Proxy(
|
|
27
|
+
{},
|
|
28
|
+
{
|
|
29
|
+
get() {
|
|
30
|
+
throw new Error(LINKING_ERROR);
|
|
31
|
+
},
|
|
32
|
+
}
|
|
33
|
+
);
|
|
26
34
|
|
|
27
35
|
export async function initialize() {
|
|
28
36
|
await DaroMModule.initializeSdk();
|
|
29
|
-
}
|
|
37
|
+
}
|
|
30
38
|
|
|
31
39
|
export async function showMediationDebugger() {
|
|
32
40
|
await DaroMModule.showMediationDebugger();
|
|
@@ -1,9 +1,32 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import {
|
|
2
|
+
forwardRef,
|
|
3
|
+
useCallback,
|
|
4
|
+
useContext,
|
|
5
|
+
useEffect,
|
|
6
|
+
useImperativeHandle,
|
|
7
|
+
useRef,
|
|
8
|
+
useState,
|
|
9
|
+
} from 'react';
|
|
10
|
+
import {
|
|
11
|
+
findNodeHandle,
|
|
12
|
+
NativeModules,
|
|
13
|
+
requireNativeComponent,
|
|
14
|
+
UIManager,
|
|
15
|
+
View,
|
|
16
|
+
type ViewProps,
|
|
17
|
+
} from 'react-native';
|
|
3
18
|
import type { AdNativeEvent } from '../types/AdEvent';
|
|
4
19
|
import type { AdInfo, AdLoadFailedInfo } from '../types/AdInfo';
|
|
5
|
-
import type {
|
|
6
|
-
|
|
20
|
+
import type {
|
|
21
|
+
NativeAdViewHandler,
|
|
22
|
+
NativeAdViewProps,
|
|
23
|
+
} from '../types/NativeAdViewProps';
|
|
24
|
+
import {
|
|
25
|
+
NativeAdViewContext,
|
|
26
|
+
NativeAdViewProvider,
|
|
27
|
+
type NativeAdViewContextType,
|
|
28
|
+
type NativeAdViewType,
|
|
29
|
+
} from './NativeAdViewProvider';
|
|
7
30
|
|
|
8
31
|
const { DaroMModule } = NativeModules;
|
|
9
32
|
|
|
@@ -15,9 +38,14 @@ type NativeAdViewNativeEvents = {
|
|
|
15
38
|
};
|
|
16
39
|
|
|
17
40
|
const ComponentName = 'DaroMNativeAdView';
|
|
18
|
-
const NativeAdViewComponent = requireNativeComponent<
|
|
19
|
-
|
|
20
|
-
|
|
41
|
+
const NativeAdViewComponent = requireNativeComponent<
|
|
42
|
+
NativeAdViewProps & ViewProps & NativeAdViewNativeEvents
|
|
43
|
+
>(ComponentName);
|
|
44
|
+
|
|
45
|
+
export const NativeAdView = forwardRef<
|
|
46
|
+
NativeAdViewHandler,
|
|
47
|
+
NativeAdViewProps & ViewProps
|
|
48
|
+
>(function NativeAdView(props, ref) {
|
|
21
49
|
const [isInitialized, setIsInitialized] = useState<boolean>(false);
|
|
22
50
|
|
|
23
51
|
useEffect(() => {
|
|
@@ -25,7 +53,9 @@ export const NativeAdView = forwardRef<NativeAdViewHandler, NativeAdViewProps &
|
|
|
25
53
|
const result = await DaroMModule.isInitialized();
|
|
26
54
|
setIsInitialized(result);
|
|
27
55
|
if (!result) {
|
|
28
|
-
console.warn(
|
|
56
|
+
console.warn(
|
|
57
|
+
'NativeAdView is mounted before the initialization of the DaroM React Native module.'
|
|
58
|
+
);
|
|
29
59
|
}
|
|
30
60
|
};
|
|
31
61
|
|
|
@@ -41,26 +71,47 @@ export const NativeAdView = forwardRef<NativeAdViewHandler, NativeAdViewProps &
|
|
|
41
71
|
<NativeAdViewProvider>
|
|
42
72
|
<NativeAdViewImpl {...props} ref={ref} />
|
|
43
73
|
</NativeAdViewProvider>
|
|
44
|
-
);
|
|
74
|
+
);
|
|
45
75
|
});
|
|
46
76
|
|
|
47
|
-
const NativeAdViewImpl = forwardRef<
|
|
48
|
-
|
|
77
|
+
const NativeAdViewImpl = forwardRef<
|
|
78
|
+
NativeAdViewHandler,
|
|
79
|
+
NativeAdViewProps & ViewProps
|
|
80
|
+
>(function NativeAdViewImpl(
|
|
81
|
+
{
|
|
82
|
+
adUnitId,
|
|
83
|
+
onAdLoaded,
|
|
84
|
+
onAdLoadFailed,
|
|
85
|
+
onAdClicked,
|
|
86
|
+
onAdImpressionRecorded,
|
|
87
|
+
children,
|
|
88
|
+
style,
|
|
89
|
+
loadOnMount = true,
|
|
90
|
+
...otherProps
|
|
91
|
+
},
|
|
49
92
|
ref
|
|
50
93
|
) {
|
|
51
94
|
// Context provides functions to manage native ad and native ad view state
|
|
52
|
-
const { setNativeAdView } = useContext(
|
|
95
|
+
const { setNativeAdView } = useContext(
|
|
96
|
+
NativeAdViewContext
|
|
97
|
+
) as NativeAdViewContextType;
|
|
53
98
|
|
|
54
99
|
const nativeAdViewRef = useRef<NativeAdViewType | null>(null);
|
|
55
100
|
|
|
56
101
|
// Load a new ad
|
|
57
102
|
const loadAd = useCallback(() => {
|
|
58
103
|
if (nativeAdViewRef.current) {
|
|
104
|
+
const nodeHandle = findNodeHandle(nativeAdViewRef.current);
|
|
105
|
+
|
|
106
|
+
if (typeof nodeHandle !== 'number') {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
|
|
59
110
|
UIManager.dispatchViewManagerCommand(
|
|
60
|
-
|
|
111
|
+
nodeHandle,
|
|
61
112
|
// @ts-ignore: Issue in RN ts defs
|
|
62
113
|
UIManager.getViewManagerConfig(ComponentName).Commands.loadAd,
|
|
63
|
-
[]
|
|
114
|
+
[]
|
|
64
115
|
);
|
|
65
116
|
}
|
|
66
117
|
}, []);
|