adwhale-sdk-react-native 2.7.203 → 2.7.300
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/AdwhaleSdkReactNative.podspec +22 -0
- package/README.md +105 -39
- package/android/build.gradle +15 -15
- package/android/proguard-rules.pro +52 -107
- package/android/src/main/java/com/adwhalesdkreactnative/AdWhaleCustomNativeBinderFactory.java +18 -0
- package/android/src/main/java/com/adwhalesdkreactnative/AdwhaleSdkReactNativePackage.java +51 -6
- package/android/src/main/java/com/adwhalesdkreactnative/BinderFactory.java +9 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java +149 -42
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdView.java +60 -30
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAppOpenAd.java +136 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java +37 -46
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationExitPopupAd.java +240 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java +189 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationLoggerModule.java +2 -1
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationNativeAdViewListenerBridge.java +83 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationRewardAd.java +255 -6
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java +191 -70
- package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTransitionPopupAd.java +218 -0
- package/android/src/main/java/com/adwhalesdkreactnative/RNWrapperView.java +137 -0
- package/android/src/main/java/com/adwhalesdkreactnative/SimpleBinderFactory.java +1 -1
- package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodArgConst.java +112 -0
- package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodCallConst.java +113 -0
- package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodResultConst.java +28 -0
- package/build/generated/ios/ReactAppDependencyProvider.podspec +34 -0
- package/ios/AdWhaleNativeCustomViewFactoryRegistry.swift +56 -0
- package/ios/AdwhaleSdkReactNative.mm +96 -5
- package/ios/AdwhaleSdkReactNativeModule.swift +148 -0
- package/ios/RNAdWhaleMediationAdViewManager.m +38 -0
- package/ios/RNAdWhaleMediationAdViewManager.swift +14 -0
- package/ios/RNAdWhaleMediationAppOpenAd.m +18 -0
- package/ios/RNAdWhaleMediationAppOpenAd.swift +175 -0
- package/ios/RNAdWhaleMediationCustomNativeAdViewManager.m +22 -0
- package/ios/RNAdWhaleMediationCustomNativeAdViewManager.swift +239 -0
- package/ios/RNAdWhaleMediationInterstitialAd.m +18 -0
- package/ios/RNAdWhaleMediationInterstitialAd.swift +161 -0
- package/ios/RNAdWhaleMediationRewardAd.m +18 -0
- package/ios/RNAdWhaleMediationRewardAd.swift +172 -0
- package/ios/WhaleMediationBannerContainer.swift +182 -0
- package/lib/module/AdWhaleAdView.js +80 -1
- package/lib/module/AdWhaleAdView.js.map +1 -1
- package/lib/module/AdWhaleAppOpenAd.js +223 -25
- package/lib/module/AdWhaleAppOpenAd.js.map +1 -1
- package/lib/module/AdWhaleExitPopupAd.js +93 -0
- package/lib/module/AdWhaleExitPopupAd.js.map +1 -0
- package/lib/module/AdWhaleInterstitialAd.js +146 -22
- package/lib/module/AdWhaleInterstitialAd.js.map +1 -1
- package/lib/module/AdWhaleMediationAds.js +75 -4
- package/lib/module/AdWhaleMediationAds.js.map +1 -1
- package/lib/module/AdWhaleNativeCustomView.js +59 -8
- package/lib/module/AdWhaleNativeCustomView.js.map +1 -1
- package/lib/module/AdWhaleNativeTemplateView.js +37 -19
- package/lib/module/AdWhaleNativeTemplateView.js.map +1 -1
- package/lib/module/AdWhaleRewardAd.js +169 -24
- package/lib/module/AdWhaleRewardAd.js.map +1 -1
- package/lib/module/AdWhaleTransitionPopupAd.js +87 -0
- package/lib/module/AdWhaleTransitionPopupAd.js.map +1 -0
- package/lib/module/NativeAdwhaleSdkReactNative.js +16 -1
- package/lib/module/NativeAdwhaleSdkReactNative.js.map +1 -1
- package/lib/module/constants/AdWhaleMethodArgConst.js +53 -0
- package/lib/module/constants/AdWhaleMethodArgConst.js.map +1 -0
- package/lib/module/constants/AdWhaleMethodCallConst.js +56 -0
- package/lib/module/constants/AdWhaleMethodCallConst.js.map +1 -0
- package/lib/module/constants/AdWhaleMethodResultConst.js +16 -0
- package/lib/module/constants/AdWhaleMethodResultConst.js.map +1 -0
- package/lib/module/index.js +10 -1
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/AdWhaleAdView.d.ts +46 -2
- package/lib/typescript/src/AdWhaleAdView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleAppOpenAd.d.ts +10 -0
- package/lib/typescript/src/AdWhaleAppOpenAd.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleExitPopupAd.d.ts +36 -0
- package/lib/typescript/src/AdWhaleExitPopupAd.d.ts.map +1 -0
- package/lib/typescript/src/AdWhaleInterstitialAd.d.ts +16 -0
- package/lib/typescript/src/AdWhaleInterstitialAd.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleMediationAds.d.ts +14 -5
- package/lib/typescript/src/AdWhaleMediationAds.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleNativeCustomView.d.ts +7 -4
- package/lib/typescript/src/AdWhaleNativeCustomView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts +20 -7
- package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleRewardAd.d.ts +18 -2
- package/lib/typescript/src/AdWhaleRewardAd.d.ts.map +1 -1
- package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts +33 -0
- package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts.map +1 -0
- package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts +33 -6
- package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts.map +1 -1
- package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts +51 -0
- package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts.map +1 -0
- package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts +53 -0
- package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts.map +1 -0
- package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts +14 -0
- package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +10 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/AdWhaleAdView.tsx +126 -9
- package/src/AdWhaleAppOpenAd.ts +293 -38
- package/src/AdWhaleExitPopupAd.ts +183 -0
- package/src/AdWhaleInterstitialAd.ts +206 -36
- package/src/AdWhaleMediationAds.ts +109 -5
- package/src/AdWhaleNativeCustomView.tsx +85 -23
- package/src/AdWhaleNativeTemplateView.tsx +79 -42
- package/src/AdWhaleRewardAd.ts +245 -43
- package/src/AdWhaleTransitionPopupAd.ts +171 -0
- package/src/NativeAdwhaleSdkReactNative.ts +36 -6
- package/src/constants/AdWhaleMethodArgConst.ts +50 -0
- package/src/constants/AdWhaleMethodCallConst.ts +60 -0
- package/src/constants/AdWhaleMethodResultConst.ts +13 -0
- package/src/index.ts +34 -1
|
@@ -4,11 +4,10 @@
|
|
|
4
4
|
import { NativeModules, Platform } from 'react-native';
|
|
5
5
|
import NativeAdwhaleSdkReactNative from "./NativeAdwhaleSdkReactNative.js";
|
|
6
6
|
const LINKING_ERROR = `AdWhale Mediation SDK native modules not linked.\n` + `Make sure:\n` + ` • Android: AdwhaleSdkReactNative / RNAdWhaleMediationLoggerModule 등록 여부\n` + ` • iOS: Pod install 및 빌드 완료 여부\n` + ` • Web 환경에서 실행 중이 아닌지\n` + `Platform: ${Platform.OS}`;
|
|
7
|
+
const IOS_UNSUPPORTED_LOGGER = '[AdWhaleMediationAds] setLoggerEnabled: iOS에서는 RN 로거 모듈(RNAdWhaleMediationLoggerModule)을 지원하지 않습니다.';
|
|
7
8
|
const {
|
|
8
9
|
RNAdWhaleMediationLoggerModule
|
|
9
10
|
} = NativeModules;
|
|
10
|
-
|
|
11
|
-
// TurboModule spec을 통해 접근
|
|
12
11
|
const AdwhaleSdkReactNative = NativeAdwhaleSdkReactNative;
|
|
13
12
|
if (!AdwhaleSdkReactNative) {
|
|
14
13
|
console.warn(LINKING_ERROR);
|
|
@@ -19,20 +18,40 @@ if (!AdwhaleSdkReactNative) {
|
|
|
19
18
|
hasGetConsentStatus: !!AdwhaleSdkReactNative.getConsentStatus,
|
|
20
19
|
hasResetGdprConsentStatus: !!AdwhaleSdkReactNative.resetGdprConsentStatus,
|
|
21
20
|
hasSetGdpr: !!AdwhaleSdkReactNative.setGdpr,
|
|
22
|
-
hasSetCoppa: !!AdwhaleSdkReactNative.setCoppa
|
|
21
|
+
hasSetCoppa: !!AdwhaleSdkReactNative.setCoppa,
|
|
22
|
+
hasSetTagForUnderAgeOfConsent: !!AdwhaleSdkReactNative.setTagForUnderAgeOfConsent,
|
|
23
|
+
hasSetMaxAdContentRating: !!AdwhaleSdkReactNative.setMaxAdContentRating,
|
|
24
|
+
hasSetTestDeviceIdentifiers: !!AdwhaleSdkReactNative.setTestDeviceIdentifiers,
|
|
25
|
+
hasShowAdInspector: !!AdwhaleSdkReactNative.showAdInspector,
|
|
26
|
+
hasSetAppMuted: !!AdwhaleSdkReactNative.setAppMuted,
|
|
27
|
+
hasSetAppVolume: !!AdwhaleSdkReactNative.setAppVolume
|
|
23
28
|
});
|
|
24
29
|
}
|
|
25
30
|
export const AdWhaleMediationAds = {
|
|
31
|
+
/**
|
|
32
|
+
* Flutter `AdWhaleMediationAds.instance.initialize()` 와 동일.
|
|
33
|
+
* 네이티브 TurboModule 은 codegen 에 따라 `initialize` 를 호출하며, 성공 맵은 `statusCode` + `message` 만 반환합니다.
|
|
34
|
+
*/
|
|
26
35
|
initialize() {
|
|
27
36
|
if (!AdwhaleSdkReactNative?.initialize) {
|
|
28
37
|
return Promise.reject(new Error(LINKING_ERROR));
|
|
29
38
|
}
|
|
30
|
-
return AdwhaleSdkReactNative.initialize()
|
|
39
|
+
return AdwhaleSdkReactNative.initialize().catch(e => ({
|
|
40
|
+
statusCode: -1,
|
|
41
|
+
message: e instanceof Error ? e.message : String(e)
|
|
42
|
+
}));
|
|
31
43
|
},
|
|
32
44
|
setLoggerEnabled(enabled) {
|
|
45
|
+
if (Platform.OS === 'ios') {
|
|
46
|
+
console.warn(IOS_UNSUPPORTED_LOGGER);
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
33
49
|
RNAdWhaleMediationLoggerModule?.setLogLevel?.(enabled);
|
|
34
50
|
},
|
|
35
51
|
getLogLevel() {
|
|
52
|
+
if (Platform.OS === 'ios') {
|
|
53
|
+
return Promise.reject(new Error('getLogLevel is not supported on iOS (Android 전용).'));
|
|
54
|
+
}
|
|
36
55
|
if (!RNAdWhaleMediationLoggerModule?.getLogLevel) {
|
|
37
56
|
return Promise.reject(new Error('getLogLevel is not implemented in native module'));
|
|
38
57
|
}
|
|
@@ -74,11 +93,63 @@ export const AdWhaleMediationAds = {
|
|
|
74
93
|
},
|
|
75
94
|
setGdpr(consent) {
|
|
76
95
|
console.log('[AdWhaleMediationAds] setGdpr called:', consent);
|
|
96
|
+
if (Platform.OS === 'ios') {
|
|
97
|
+
console.warn('[AdWhaleMediationAds] setGdpr: iOS AdWhale SDK 에 대응 API가 없어 지원하지 않습니다 (Android 전용).');
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
77
100
|
if (!AdwhaleSdkReactNative?.setGdpr) {
|
|
78
101
|
console.warn('[AdWhaleMediationAds] setGdpr is not implemented in native module');
|
|
79
102
|
return;
|
|
80
103
|
}
|
|
81
104
|
AdwhaleSdkReactNative.setGdpr(consent);
|
|
105
|
+
},
|
|
106
|
+
setTagForUnderAgeOfConsent(tag) {
|
|
107
|
+
if (!AdwhaleSdkReactNative?.setTagForUnderAgeOfConsent) {
|
|
108
|
+
console.warn('[AdWhaleMediationAds] setTagForUnderAgeOfConsent is not implemented in native module');
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
AdwhaleSdkReactNative.setTagForUnderAgeOfConsent(tag);
|
|
112
|
+
},
|
|
113
|
+
setMaxAdContentRating(rating) {
|
|
114
|
+
if (!AdwhaleSdkReactNative?.setMaxAdContentRating) {
|
|
115
|
+
console.warn('[AdWhaleMediationAds] setMaxAdContentRating is not implemented in native module');
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
if (rating === undefined || rating === '') {
|
|
119
|
+
AdwhaleSdkReactNative.setMaxAdContentRating(null);
|
|
120
|
+
} else {
|
|
121
|
+
AdwhaleSdkReactNative.setMaxAdContentRating(rating);
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
setTestDeviceIdentifiers(testDeviceIds) {
|
|
125
|
+
if (testDeviceIds == null) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (!AdwhaleSdkReactNative?.setTestDeviceIdentifiers) {
|
|
129
|
+
console.warn('[AdWhaleMediationAds] setTestDeviceIdentifiers is not implemented in native module');
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
AdwhaleSdkReactNative.setTestDeviceIdentifiers(testDeviceIds);
|
|
133
|
+
},
|
|
134
|
+
showAdInspector() {
|
|
135
|
+
if (!AdwhaleSdkReactNative?.showAdInspector) {
|
|
136
|
+
return Promise.reject(new Error('showAdInspector is not implemented in native module'));
|
|
137
|
+
}
|
|
138
|
+
return AdwhaleSdkReactNative.showAdInspector();
|
|
139
|
+
},
|
|
140
|
+
setAppMuted(isMuted) {
|
|
141
|
+
if (!AdwhaleSdkReactNative?.setAppMuted) {
|
|
142
|
+
console.warn('[AdWhaleMediationAds] setAppMuted is not implemented in native module');
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
AdwhaleSdkReactNative.setAppMuted(isMuted);
|
|
146
|
+
},
|
|
147
|
+
setAppVolume(volume) {
|
|
148
|
+
if (!AdwhaleSdkReactNative?.setAppVolume) {
|
|
149
|
+
console.warn('[AdWhaleMediationAds] setAppVolume is not implemented in native module');
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
AdwhaleSdkReactNative.setAppVolume(volume);
|
|
82
153
|
}
|
|
83
154
|
};
|
|
84
155
|
//# sourceMappingURL=AdWhaleMediationAds.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeAdwhaleSdkReactNative","LINKING_ERROR","OS","RNAdWhaleMediationLoggerModule","AdwhaleSdkReactNative","console","warn","log","hasInitialize","initialize","hasRequestGdprConsent","requestGdprConsent","hasGetConsentStatus","getConsentStatus","hasResetGdprConsentStatus","resetGdprConsentStatus","hasSetGdpr","setGdpr","hasSetCoppa","setCoppa","AdWhaleMediationAds","Promise","reject","Error","setLoggerEnabled","enabled","setLogLevel","getLogLevel","error","consent"],"sourceRoot":"../../src","sources":["AdWhaleMediationAds.ts"],"mappings":";;AAAA;AACA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,OAAOC,2BAA2B,
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeAdwhaleSdkReactNative","LINKING_ERROR","OS","IOS_UNSUPPORTED_LOGGER","RNAdWhaleMediationLoggerModule","AdwhaleSdkReactNative","console","warn","log","hasInitialize","initialize","hasRequestGdprConsent","requestGdprConsent","hasGetConsentStatus","getConsentStatus","hasResetGdprConsentStatus","resetGdprConsentStatus","hasSetGdpr","setGdpr","hasSetCoppa","setCoppa","hasSetTagForUnderAgeOfConsent","setTagForUnderAgeOfConsent","hasSetMaxAdContentRating","setMaxAdContentRating","hasSetTestDeviceIdentifiers","setTestDeviceIdentifiers","hasShowAdInspector","showAdInspector","hasSetAppMuted","setAppMuted","hasSetAppVolume","setAppVolume","AdWhaleMediationAds","Promise","reject","Error","catch","e","statusCode","message","String","setLoggerEnabled","enabled","setLogLevel","getLogLevel","error","consent","tag","rating","undefined","testDeviceIds","isMuted","volume"],"sourceRoot":"../../src","sources":["AdWhaleMediationAds.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,32 +5,83 @@ import React, { forwardRef, useImperativeHandle, useRef } from 'react';
|
|
|
5
5
|
import { requireNativeComponent, UIManager, findNodeHandle } from 'react-native';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
const VIEW_MANAGER_NAME = 'RNAdWhaleMediationCustomNativeAdView';
|
|
8
|
+
const LOG_PREFIX = '[adwhale_sdk_react_native] AdWhaleNativeCustomView.tsx';
|
|
8
9
|
const NativeComponent = requireNativeComponent(VIEW_MANAGER_NAME);
|
|
9
10
|
export const AdWhaleNativeCustomView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
10
11
|
const innerRef = useRef(null);
|
|
11
12
|
useImperativeHandle(ref, () => ({
|
|
12
13
|
loadAd() {
|
|
13
14
|
const handle = findNodeHandle(innerRef.current);
|
|
14
|
-
|
|
15
|
+
console.log(`${LOG_PREFIX} loadAd() called handle=${String(handle)}`);
|
|
16
|
+
if (!handle) {
|
|
17
|
+
console.log(`${LOG_PREFIX} loadAd() skipped: handle is null`);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
15
20
|
const config = UIManager.getViewManagerConfig(VIEW_MANAGER_NAME);
|
|
16
|
-
|
|
17
|
-
|
|
21
|
+
const loadCommand = config?.Commands?.loadAd;
|
|
22
|
+
if (loadCommand != null) {
|
|
23
|
+
console.log(`${LOG_PREFIX} dispatch loadAd commandId=${String(loadCommand)}`);
|
|
24
|
+
UIManager.dispatchViewManagerCommand(handle, loadCommand, []);
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
console.log(`${LOG_PREFIX} loadAd commandId missing, fallback to string command`);
|
|
28
|
+
try {
|
|
29
|
+
UIManager.dispatchViewManagerCommand(handle, 'loadAd', []);
|
|
30
|
+
} catch (error) {
|
|
31
|
+
console.log(`${LOG_PREFIX} loadAd fallback dispatch failed: ${String(error)}`);
|
|
32
|
+
}
|
|
18
33
|
},
|
|
19
34
|
showAd() {
|
|
20
35
|
const handle = findNodeHandle(innerRef.current);
|
|
21
|
-
|
|
36
|
+
console.log(`${LOG_PREFIX} showAd() called handle=${String(handle)}`);
|
|
37
|
+
if (!handle) {
|
|
38
|
+
console.log(`${LOG_PREFIX} showAd() skipped: handle is null`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
22
41
|
const config = UIManager.getViewManagerConfig(VIEW_MANAGER_NAME);
|
|
23
|
-
|
|
24
|
-
|
|
42
|
+
const showCommand = config?.Commands?.showAd;
|
|
43
|
+
if (showCommand != null) {
|
|
44
|
+
console.log(`${LOG_PREFIX} dispatch showAd commandId=${String(showCommand)}`);
|
|
45
|
+
UIManager.dispatchViewManagerCommand(handle, showCommand, []);
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
console.log(`${LOG_PREFIX} showAd commandId missing, fallback to string command`);
|
|
49
|
+
try {
|
|
50
|
+
UIManager.dispatchViewManagerCommand(handle, 'showAd', []);
|
|
51
|
+
} catch (error) {
|
|
52
|
+
console.log(`${LOG_PREFIX} showAd fallback dispatch failed: ${String(error)}`);
|
|
53
|
+
}
|
|
25
54
|
}
|
|
26
55
|
}));
|
|
27
56
|
const handleFailedToLoad = e => {
|
|
28
|
-
|
|
57
|
+
const ev = e.nativeEvent;
|
|
58
|
+
queueMicrotask(() => props.onNativeAdFailedToLoad?.(ev));
|
|
59
|
+
};
|
|
60
|
+
const handleShowFailed = e => {
|
|
61
|
+
const ev = e.nativeEvent;
|
|
62
|
+
queueMicrotask(() => props.onNativeAdShowFailed?.(ev));
|
|
63
|
+
};
|
|
64
|
+
const handleLoaded = () => {
|
|
65
|
+
console.log('AdWhaleNativeCustomView.tsx CustomNative onLoaded');
|
|
66
|
+
// 네이티브 직접 이벤트가 레이아웃/커밋 중 동기 호출되면 setState 가 먹지 않는 경우가 있어 한 틱 미룸
|
|
67
|
+
queueMicrotask(() => props.onNativeAdLoaded?.());
|
|
68
|
+
};
|
|
69
|
+
const handleClicked = () => {
|
|
70
|
+
console.log('AdWhaleNativeCustomView.tsx CustomNative onClicked');
|
|
71
|
+
queueMicrotask(() => props.onNativeAdClicked?.());
|
|
72
|
+
};
|
|
73
|
+
const handleClosed = () => {
|
|
74
|
+
console.log('AdWhaleNativeCustomView.tsx CustomNative onClosed');
|
|
75
|
+
queueMicrotask(() => props.onNativeAdClosed?.());
|
|
29
76
|
};
|
|
30
77
|
return /*#__PURE__*/_jsx(NativeComponent, {
|
|
31
78
|
ref: innerRef,
|
|
32
79
|
...props,
|
|
33
|
-
|
|
80
|
+
onNativeAdLoaded: handleLoaded,
|
|
81
|
+
onNativeAdFailedToLoad: props.onNativeAdFailedToLoad ? handleFailedToLoad : undefined,
|
|
82
|
+
onNativeAdShowFailed: props.onNativeAdShowFailed ? handleShowFailed : undefined,
|
|
83
|
+
onNativeAdClicked: handleClicked,
|
|
84
|
+
onNativeAdClosed: handleClosed
|
|
34
85
|
});
|
|
35
86
|
});
|
|
36
87
|
//# sourceMappingURL=AdWhaleNativeCustomView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeCustomView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","LOG_PREFIX","NativeComponent","AdWhaleNativeCustomView","props","ref","innerRef","loadAd","handle","current","console","log","String","config","getViewManagerConfig","loadCommand","Commands","dispatchViewManagerCommand","error","showAd","showCommand","handleFailedToLoad","e","ev","nativeEvent","queueMicrotask","onNativeAdFailedToLoad","handleShowFailed","onNativeAdShowFailed","handleLoaded","onNativeAdLoaded","handleClicked","onNativeAdClicked","handleClosed","onNativeAdClosed","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeCustomView.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,40 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
// src/AdWhaleNativeTemplateView.tsx
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
4
|
+
import { forwardRef, useImperativeHandle, useState } from 'react';
|
|
5
|
+
import { Platform, requireNativeComponent } from 'react-native';
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
const VIEW_MANAGER_NAME = 'RNAdWhaleMediationTemplateNativeAdView';
|
|
8
8
|
const NativeComponent = requireNativeComponent(VIEW_MANAGER_NAME);
|
|
9
9
|
export const AdWhaleNativeTemplateView = /*#__PURE__*/forwardRef((props, ref) => {
|
|
10
|
-
|
|
10
|
+
if (Platform.OS === 'ios') {
|
|
11
|
+
// iOS는 커스텀 바인딩만 지원 (템플릿 바인딩 미지원)
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
const {
|
|
15
|
+
loadSignal,
|
|
16
|
+
showSignal,
|
|
17
|
+
viewSyncKey,
|
|
18
|
+
onNativeAdFailedToLoad,
|
|
19
|
+
onNativeAdShowFailed,
|
|
20
|
+
...nativeRest
|
|
21
|
+
} = props;
|
|
22
|
+
const [internalLoadId, setInternalLoadId] = useState(0);
|
|
23
|
+
const [internalShowId, setInternalShowId] = useState(0);
|
|
24
|
+
const useExternalLoad = loadSignal !== undefined;
|
|
25
|
+
const useExternalShow = showSignal !== undefined;
|
|
26
|
+
const loadRequestIdForNative = useExternalLoad ? loadSignal : internalLoadId;
|
|
27
|
+
const showRequestIdForNative = useExternalShow ? showSignal : internalShowId;
|
|
11
28
|
useImperativeHandle(ref, () => ({
|
|
12
29
|
loadAd() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
UIManager.dispatchViewManagerCommand(handle, config.Commands.loadAd, []);
|
|
30
|
+
if (useExternalLoad) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
setInternalLoadId(v => v + 1);
|
|
18
34
|
},
|
|
19
35
|
showAd() {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
UIManager.dispatchViewManagerCommand(handle, config.Commands.showAd, []);
|
|
36
|
+
if (useExternalShow) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
setInternalShowId(v => v + 1);
|
|
25
40
|
}
|
|
26
41
|
}));
|
|
27
42
|
const handleFailedToLoad = e => {
|
|
28
|
-
|
|
43
|
+
onNativeAdFailedToLoad?.(e.nativeEvent);
|
|
29
44
|
};
|
|
30
45
|
const handleShowFailed = e => {
|
|
31
|
-
|
|
46
|
+
onNativeAdShowFailed?.(e.nativeEvent);
|
|
32
47
|
};
|
|
33
48
|
return /*#__PURE__*/_jsx(NativeComponent, {
|
|
34
|
-
|
|
35
|
-
...
|
|
36
|
-
|
|
37
|
-
|
|
49
|
+
collapsable: false,
|
|
50
|
+
...nativeRest,
|
|
51
|
+
viewSyncKey: viewSyncKey ?? -1,
|
|
52
|
+
loadRequestId: loadRequestIdForNative,
|
|
53
|
+
showRequestId: showRequestIdForNative,
|
|
54
|
+
onNativeAdFailedToLoad: onNativeAdFailedToLoad ? handleFailedToLoad : undefined,
|
|
55
|
+
onNativeAdShowFailed: onNativeAdShowFailed ? handleShowFailed : undefined
|
|
38
56
|
});
|
|
39
57
|
});
|
|
40
58
|
//# sourceMappingURL=AdWhaleNativeTemplateView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["forwardRef","useImperativeHandle","useState","Platform","requireNativeComponent","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeTemplateView","props","ref","OS","loadSignal","showSignal","viewSyncKey","onNativeAdFailedToLoad","onNativeAdShowFailed","nativeRest","internalLoadId","setInternalLoadId","internalShowId","setInternalShowId","useExternalLoad","undefined","useExternalShow","loadRequestIdForNative","showRequestIdForNative","loadAd","v","showAd","handleFailedToLoad","e","nativeEvent","handleShowFailed","collapsable","loadRequestId","showRequestId"],"sourceRoot":"../../src","sources":["AdWhaleNativeTemplateView.tsx"],"mappings":";;AAAA;AACA,SAASA,UAAU,EAAEC,mBAAmB,EAAEC,QAAQ,QAAQ,OAAO;AACjE,SAASC,QAAQ,EAAEC,sBAAsB,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA6FhE,MAAMC,iBAAiB,GAAG,wCAAwC;AAElE,MAAMC,eAAe,GACnBJ,sBAAsB,CAAcG,iBAAiB,CAAC;AAExD,OAAO,MAAME,yBAAyB,gBAAGT,UAAU,CAGjD,CAACU,KAAK,EAAEC,GAAG,KAAK;EAChB,IAAIR,QAAQ,CAACS,EAAE,KAAK,KAAK,EAAE;IACzB;IACA,OAAO,IAAI;EACb;EACA,MAAM;IACJC,UAAU;IACVC,UAAU;IACVC,WAAW;IACXC,sBAAsB;IACtBC,oBAAoB;IACpB,GAAGC;EACL,CAAC,GAAGR,KAAK;EAET,MAAM,CAACS,cAAc,EAAEC,iBAAiB,CAAC,GAAGlB,QAAQ,CAAC,CAAC,CAAC;EACvD,MAAM,CAACmB,cAAc,EAAEC,iBAAiB,CAAC,GAAGpB,QAAQ,CAAC,CAAC,CAAC;EAEvD,MAAMqB,eAAe,GAAGV,UAAU,KAAKW,SAAS;EAChD,MAAMC,eAAe,GAAGX,UAAU,KAAKU,SAAS;EAChD,MAAME,sBAAsB,GAAGH,eAAe,GAAGV,UAAU,GAAGM,cAAc;EAC5E,MAAMQ,sBAAsB,GAAGF,eAAe,GAAGX,UAAU,GAAGO,cAAc;EAE5EpB,mBAAmB,CAACU,GAAG,EAAE,OAAO;IAC9BiB,MAAMA,CAAA,EAAG;MACP,IAAIL,eAAe,EAAE;QACnB;MACF;MACAH,iBAAiB,CAACS,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC;IAC/B,CAAC;IACDC,MAAMA,CAAA,EAAG;MACP,IAAIL,eAAe,EAAE;QACnB;MACF;MACAH,iBAAiB,CAACO,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC;IAC/B;EACF,CAAC,CAAC,CAAC;EAEH,MAAME,kBAAyD,GAAGC,CAAC,IAAI;IACrEhB,sBAAsB,GAAGgB,CAAC,CAACC,WAAW,CAAC;EACzC,CAAC;EAED,MAAMC,gBAAqD,GAAGF,CAAC,IAAI;IACjEf,oBAAoB,GAAGe,CAAC,CAACC,WAAW,CAAC;EACvC,CAAC;EAED,oBACE3B,IAAA,CAACE,eAAe;IACd2B,WAAW,EAAE,KAAM;IAAA,GACfjB,UAAU;IACdH,WAAW,EAAEA,WAAW,IAAI,CAAC,CAAE;IAC/BqB,aAAa,EAAEV,sBAAuB;IACtCW,aAAa,EAAEV,sBAAuB;IACtCX,sBAAsB,EACpBA,sBAAsB,GAAGe,kBAAkB,GAAGP,SAC/C;IACDP,oBAAoB,EAClBA,oBAAoB,GAAGiB,gBAAgB,GAAGV;EAC3C,CACF,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
|
|
@@ -2,59 +2,204 @@
|
|
|
2
2
|
|
|
3
3
|
// src/AdWhaleRewardAd.ts
|
|
4
4
|
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
5
|
+
const LINKING_ERROR = 'RNAdWhaleMediationRewardAd native module is not linked on this platform.';
|
|
5
6
|
const {
|
|
6
7
|
RNAdWhaleMediationRewardAd
|
|
7
8
|
} = NativeModules;
|
|
8
|
-
const rewardEmitter = new NativeEventEmitter(RNAdWhaleMediationRewardAd);
|
|
9
|
+
const rewardEmitter = RNAdWhaleMediationRewardAd ? new NativeEventEmitter(RNAdWhaleMediationRewardAd) : null;
|
|
9
10
|
export const AdWhaleRewardAd = {
|
|
10
11
|
loadAd(placementUid, options) {
|
|
12
|
+
if (!RNAdWhaleMediationRewardAd) {
|
|
13
|
+
console.warn(LINKING_ERROR);
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
11
16
|
// 먼저 옵션들을 설정
|
|
12
17
|
if (options?.placementName) {
|
|
13
|
-
RNAdWhaleMediationRewardAd.setPlacementName(options.placementName);
|
|
18
|
+
RNAdWhaleMediationRewardAd.setPlacementName?.(options.placementName);
|
|
14
19
|
}
|
|
15
20
|
if (options?.region) {
|
|
16
|
-
RNAdWhaleMediationRewardAd.setRegion(options.region);
|
|
21
|
+
RNAdWhaleMediationRewardAd.setRegion?.(options.region);
|
|
17
22
|
}
|
|
18
23
|
if (options?.gcoder) {
|
|
19
|
-
RNAdWhaleMediationRewardAd.setGcoder(options.gcoder);
|
|
24
|
+
RNAdWhaleMediationRewardAd.setGcoder?.(options.gcoder);
|
|
25
|
+
}
|
|
26
|
+
if (RNAdWhaleMediationRewardAd.loadAd) {
|
|
27
|
+
RNAdWhaleMediationRewardAd.loadAd(placementUid);
|
|
28
|
+
return;
|
|
20
29
|
}
|
|
21
|
-
|
|
22
|
-
|
|
30
|
+
if (RNAdWhaleMediationRewardAd.loadRewardAd) {
|
|
31
|
+
RNAdWhaleMediationRewardAd.loadRewardAd({
|
|
32
|
+
adId: 0,
|
|
33
|
+
placementUid,
|
|
34
|
+
placementName: options?.placementName,
|
|
35
|
+
region: options?.region,
|
|
36
|
+
gcoder: options?.gcoder ? [options.gcoder.lt, options.gcoder.lng] : undefined
|
|
37
|
+
});
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.warn('[AdWhaleRewardAd] Native module missing both loadAd and loadRewardAd.');
|
|
23
41
|
},
|
|
24
42
|
showAd() {
|
|
25
|
-
RNAdWhaleMediationRewardAd
|
|
43
|
+
if (!RNAdWhaleMediationRewardAd) {
|
|
44
|
+
console.warn(LINKING_ERROR);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
if (RNAdWhaleMediationRewardAd.showAd) {
|
|
48
|
+
RNAdWhaleMediationRewardAd.showAd();
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (RNAdWhaleMediationRewardAd.showAdWithoutView) {
|
|
52
|
+
RNAdWhaleMediationRewardAd.showAdWithoutView(0);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
console.warn('[AdWhaleRewardAd] Native module missing both showAd and showAdWithoutView.');
|
|
56
|
+
},
|
|
57
|
+
/** Flutter와 동일한 신규 API (권장) */
|
|
58
|
+
loadRewardAd(adId, placementUid, options) {
|
|
59
|
+
if (!RNAdWhaleMediationRewardAd) {
|
|
60
|
+
console.warn(LINKING_ERROR);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (!RNAdWhaleMediationRewardAd.loadRewardAd) {
|
|
64
|
+
this.loadAd(placementUid, options);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
RNAdWhaleMediationRewardAd.loadRewardAd({
|
|
68
|
+
adId,
|
|
69
|
+
placementUid,
|
|
70
|
+
placementName: options?.placementName,
|
|
71
|
+
region: options?.region,
|
|
72
|
+
gcoder: options?.gcoder ? [options.gcoder.lt, options.gcoder.lng] : undefined
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
showAdWithoutView(adId) {
|
|
76
|
+
if (!RNAdWhaleMediationRewardAd) {
|
|
77
|
+
console.warn(LINKING_ERROR);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
if (!RNAdWhaleMediationRewardAd.showAdWithoutView) {
|
|
81
|
+
this.showAd();
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
RNAdWhaleMediationRewardAd.showAdWithoutView(adId);
|
|
85
|
+
},
|
|
86
|
+
destroyAd(adId) {
|
|
87
|
+
RNAdWhaleMediationRewardAd?.destroyAd?.(adId);
|
|
26
88
|
},
|
|
27
89
|
addEventListeners(listeners) {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
listeners.onLoaded?.();
|
|
32
|
-
}));
|
|
90
|
+
if (!rewardEmitter) {
|
|
91
|
+
console.warn(LINKING_ERROR);
|
|
92
|
+
return [];
|
|
33
93
|
}
|
|
94
|
+
const subs = [];
|
|
95
|
+
let directShowedReceived = false;
|
|
96
|
+
let directUserRewardedReceived = false;
|
|
97
|
+
subs.push(rewardEmitter.addListener('onRewardAdLoaded', () => {
|
|
98
|
+
directShowedReceived = false;
|
|
99
|
+
directUserRewardedReceived = false;
|
|
100
|
+
console.log('AdWhaleRewardAd.ts Reward onLoaded');
|
|
101
|
+
listeners.onLoaded?.();
|
|
102
|
+
}));
|
|
34
103
|
if (listeners.onLoadFailed) {
|
|
35
104
|
subs.push(rewardEmitter.addListener('onRewardAdFailedToLoad', event => listeners.onLoadFailed?.(event)));
|
|
36
105
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
}
|
|
106
|
+
subs.push(rewardEmitter.addListener('onRewardAdShowed', () => {
|
|
107
|
+
directShowedReceived = true;
|
|
108
|
+
console.log('AdWhaleRewardAd.ts Reward onAdShowed');
|
|
109
|
+
listeners.onShowed?.();
|
|
110
|
+
}));
|
|
42
111
|
if (listeners.onShowFailed) {
|
|
43
112
|
subs.push(rewardEmitter.addListener('onRewardAdFailedToShow', event => listeners.onShowFailed?.(event)));
|
|
44
113
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
114
|
+
subs.push(rewardEmitter.addListener('onRewardAdDismissed', () => {
|
|
115
|
+
directShowedReceived = false;
|
|
116
|
+
directUserRewardedReceived = false;
|
|
117
|
+
console.log('AdWhaleRewardAd.ts Reward onDismissed');
|
|
118
|
+
listeners.onDismissed?.();
|
|
119
|
+
}));
|
|
50
120
|
if (listeners.onClicked) {
|
|
51
121
|
subs.push(rewardEmitter.addListener('onRewardAdClicked', () => {
|
|
52
122
|
listeners.onClicked?.();
|
|
53
123
|
}));
|
|
54
124
|
}
|
|
55
|
-
|
|
56
|
-
|
|
125
|
+
subs.push(rewardEmitter.addListener('onUserRewarded', event => {
|
|
126
|
+
directUserRewardedReceived = true;
|
|
127
|
+
const rewardedEvent = event;
|
|
128
|
+
const rewardAmount = rewardedEvent.amount ?? rewardedEvent.RewardAmount;
|
|
129
|
+
const rewardType = rewardedEvent.type ?? rewardedEvent.RewardType;
|
|
130
|
+
console.log(`AdWhaleRewardAd.ts Reward onUserRewarded: ${String(rewardAmount)}, ${String(rewardType)}`);
|
|
131
|
+
listeners.onUserRewarded?.(rewardedEvent);
|
|
132
|
+
}));
|
|
133
|
+
subs.push(rewardEmitter.addListener('onAdEvent', payload => {
|
|
134
|
+
if (payload?.eventName === 'onRewardAdShowed' && !directShowedReceived) {
|
|
135
|
+
directShowedReceived = true;
|
|
136
|
+
console.log('AdWhaleRewardAd.ts Reward onAdShowed');
|
|
137
|
+
listeners.onShowed?.();
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
if (payload?.eventName === 'onUserRewarded' && !directUserRewardedReceived) {
|
|
141
|
+
directUserRewardedReceived = true;
|
|
142
|
+
const rewardAmount = payload?.amount ?? payload?.RewardAmount;
|
|
143
|
+
const rewardType = payload?.type ?? payload?.RewardType;
|
|
144
|
+
console.log(`AdWhaleRewardAd.ts Reward onUserRewarded: ${String(rewardAmount)}, ${String(rewardType)}`);
|
|
145
|
+
listeners.onUserRewarded?.({
|
|
146
|
+
RewardType: payload?.RewardType,
|
|
147
|
+
RewardAmount: payload?.RewardAmount,
|
|
148
|
+
type: payload?.type,
|
|
149
|
+
amount: payload?.amount
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
}));
|
|
153
|
+
return subs;
|
|
154
|
+
},
|
|
155
|
+
/** Flutter `onAdEvent` 스타일 (adId 필터링) */
|
|
156
|
+
addAdEventListenersById(adId, listeners) {
|
|
157
|
+
if (!rewardEmitter) {
|
|
158
|
+
console.warn(LINKING_ERROR);
|
|
159
|
+
return [];
|
|
57
160
|
}
|
|
161
|
+
const subs = [];
|
|
162
|
+
const handle = (eventName, cb) => {
|
|
163
|
+
if (!cb) return;
|
|
164
|
+
subs.push(rewardEmitter.addListener('onAdEvent', payload => {
|
|
165
|
+
if (!payload || payload.adId !== adId || payload.eventName !== eventName) {
|
|
166
|
+
return;
|
|
167
|
+
}
|
|
168
|
+
cb(payload);
|
|
169
|
+
}));
|
|
170
|
+
};
|
|
171
|
+
handle('onRewardAdLoaded', () => {
|
|
172
|
+
console.log('AdWhaleRewardAd.ts Reward onLoaded');
|
|
173
|
+
listeners.onLoaded?.();
|
|
174
|
+
});
|
|
175
|
+
handle('onRewardAdFailedToLoad', p => listeners.onLoadFailed?.({
|
|
176
|
+
statusCode: Number(p?.statusCode ?? -1),
|
|
177
|
+
message: String(p?.message ?? '')
|
|
178
|
+
}));
|
|
179
|
+
handle('onRewardAdShowed', () => {
|
|
180
|
+
console.log('AdWhaleRewardAd.ts Reward onAdShowed');
|
|
181
|
+
listeners.onShowed?.();
|
|
182
|
+
});
|
|
183
|
+
handle('onRewardAdFailedToShow', p => listeners.onShowFailed?.({
|
|
184
|
+
statusCode: Number(p?.statusCode ?? -1),
|
|
185
|
+
message: String(p?.message ?? '')
|
|
186
|
+
}));
|
|
187
|
+
handle('onRewardAdDismissed', () => {
|
|
188
|
+
console.log('AdWhaleRewardAd.ts Reward onDismissed');
|
|
189
|
+
listeners.onDismissed?.();
|
|
190
|
+
});
|
|
191
|
+
handle('onRewardAdClicked', () => listeners.onClicked?.());
|
|
192
|
+
handle('onUserRewarded', p => {
|
|
193
|
+
const rewardAmount = p?.amount ?? p?.RewardAmount;
|
|
194
|
+
const rewardType = p?.type ?? p?.RewardType;
|
|
195
|
+
console.log(`AdWhaleRewardAd.ts Reward onUserRewarded: ${String(rewardAmount)}, ${String(rewardType)}`);
|
|
196
|
+
listeners.onUserRewarded?.({
|
|
197
|
+
RewardType: p?.RewardType,
|
|
198
|
+
RewardAmount: p?.RewardAmount,
|
|
199
|
+
type: p?.type,
|
|
200
|
+
amount: p?.amount
|
|
201
|
+
});
|
|
202
|
+
});
|
|
58
203
|
return subs;
|
|
59
204
|
}
|
|
60
205
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeEventEmitter","NativeModules","RNAdWhaleMediationRewardAd","rewardEmitter","AdWhaleRewardAd","loadAd","placementUid","options","placementName","setPlacementName","region","setRegion","gcoder","setGcoder","showAd","addEventListeners","listeners","subs","
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","LINKING_ERROR","RNAdWhaleMediationRewardAd","rewardEmitter","AdWhaleRewardAd","loadAd","placementUid","options","console","warn","placementName","setPlacementName","region","setRegion","gcoder","setGcoder","loadRewardAd","adId","lt","lng","undefined","showAd","showAdWithoutView","destroyAd","addEventListeners","listeners","subs","directShowedReceived","directUserRewardedReceived","push","addListener","log","onLoaded","onLoadFailed","event","onShowed","onShowFailed","onDismissed","onClicked","rewardedEvent","rewardAmount","amount","RewardAmount","rewardType","type","RewardType","String","onUserRewarded","payload","eventName","addAdEventListenersById","handle","cb","p","statusCode","Number","message"],"sourceRoot":"../../src","sources":["AdWhaleRewardAd.ts"],"mappings":"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","ignoreList":[]}
|