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.
Files changed (109) hide show
  1. package/AdwhaleSdkReactNative.podspec +22 -0
  2. package/README.md +105 -39
  3. package/android/build.gradle +15 -15
  4. package/android/proguard-rules.pro +52 -107
  5. package/android/src/main/java/com/adwhalesdkreactnative/AdWhaleCustomNativeBinderFactory.java +18 -0
  6. package/android/src/main/java/com/adwhalesdkreactnative/AdwhaleSdkReactNativePackage.java +51 -6
  7. package/android/src/main/java/com/adwhalesdkreactnative/BinderFactory.java +9 -0
  8. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdSettingModule.java +149 -42
  9. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAdView.java +60 -30
  10. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationAppOpenAd.java +136 -0
  11. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationCustomNativeAdView.java +37 -46
  12. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationExitPopupAd.java +240 -0
  13. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationInterstitialAd.java +189 -0
  14. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationLoggerModule.java +2 -1
  15. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationNativeAdViewListenerBridge.java +83 -0
  16. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationRewardAd.java +255 -6
  17. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTemplateNativeAdView.java +191 -70
  18. package/android/src/main/java/com/adwhalesdkreactnative/RNAdWhaleMediationTransitionPopupAd.java +218 -0
  19. package/android/src/main/java/com/adwhalesdkreactnative/RNWrapperView.java +137 -0
  20. package/android/src/main/java/com/adwhalesdkreactnative/SimpleBinderFactory.java +1 -1
  21. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodArgConst.java +112 -0
  22. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodCallConst.java +113 -0
  23. package/android/src/main/java/com/adwhalesdkreactnative/common/RNMethodResultConst.java +28 -0
  24. package/build/generated/ios/ReactAppDependencyProvider.podspec +34 -0
  25. package/ios/AdWhaleNativeCustomViewFactoryRegistry.swift +56 -0
  26. package/ios/AdwhaleSdkReactNative.mm +96 -5
  27. package/ios/AdwhaleSdkReactNativeModule.swift +148 -0
  28. package/ios/RNAdWhaleMediationAdViewManager.m +38 -0
  29. package/ios/RNAdWhaleMediationAdViewManager.swift +14 -0
  30. package/ios/RNAdWhaleMediationAppOpenAd.m +18 -0
  31. package/ios/RNAdWhaleMediationAppOpenAd.swift +175 -0
  32. package/ios/RNAdWhaleMediationCustomNativeAdViewManager.m +22 -0
  33. package/ios/RNAdWhaleMediationCustomNativeAdViewManager.swift +239 -0
  34. package/ios/RNAdWhaleMediationInterstitialAd.m +18 -0
  35. package/ios/RNAdWhaleMediationInterstitialAd.swift +161 -0
  36. package/ios/RNAdWhaleMediationRewardAd.m +18 -0
  37. package/ios/RNAdWhaleMediationRewardAd.swift +172 -0
  38. package/ios/WhaleMediationBannerContainer.swift +182 -0
  39. package/lib/module/AdWhaleAdView.js +80 -1
  40. package/lib/module/AdWhaleAdView.js.map +1 -1
  41. package/lib/module/AdWhaleAppOpenAd.js +223 -25
  42. package/lib/module/AdWhaleAppOpenAd.js.map +1 -1
  43. package/lib/module/AdWhaleExitPopupAd.js +93 -0
  44. package/lib/module/AdWhaleExitPopupAd.js.map +1 -0
  45. package/lib/module/AdWhaleInterstitialAd.js +146 -22
  46. package/lib/module/AdWhaleInterstitialAd.js.map +1 -1
  47. package/lib/module/AdWhaleMediationAds.js +75 -4
  48. package/lib/module/AdWhaleMediationAds.js.map +1 -1
  49. package/lib/module/AdWhaleNativeCustomView.js +59 -8
  50. package/lib/module/AdWhaleNativeCustomView.js.map +1 -1
  51. package/lib/module/AdWhaleNativeTemplateView.js +37 -19
  52. package/lib/module/AdWhaleNativeTemplateView.js.map +1 -1
  53. package/lib/module/AdWhaleRewardAd.js +169 -24
  54. package/lib/module/AdWhaleRewardAd.js.map +1 -1
  55. package/lib/module/AdWhaleTransitionPopupAd.js +87 -0
  56. package/lib/module/AdWhaleTransitionPopupAd.js.map +1 -0
  57. package/lib/module/NativeAdwhaleSdkReactNative.js +16 -1
  58. package/lib/module/NativeAdwhaleSdkReactNative.js.map +1 -1
  59. package/lib/module/constants/AdWhaleMethodArgConst.js +53 -0
  60. package/lib/module/constants/AdWhaleMethodArgConst.js.map +1 -0
  61. package/lib/module/constants/AdWhaleMethodCallConst.js +56 -0
  62. package/lib/module/constants/AdWhaleMethodCallConst.js.map +1 -0
  63. package/lib/module/constants/AdWhaleMethodResultConst.js +16 -0
  64. package/lib/module/constants/AdWhaleMethodResultConst.js.map +1 -0
  65. package/lib/module/index.js +10 -1
  66. package/lib/module/index.js.map +1 -1
  67. package/lib/typescript/src/AdWhaleAdView.d.ts +46 -2
  68. package/lib/typescript/src/AdWhaleAdView.d.ts.map +1 -1
  69. package/lib/typescript/src/AdWhaleAppOpenAd.d.ts +10 -0
  70. package/lib/typescript/src/AdWhaleAppOpenAd.d.ts.map +1 -1
  71. package/lib/typescript/src/AdWhaleExitPopupAd.d.ts +36 -0
  72. package/lib/typescript/src/AdWhaleExitPopupAd.d.ts.map +1 -0
  73. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts +16 -0
  74. package/lib/typescript/src/AdWhaleInterstitialAd.d.ts.map +1 -1
  75. package/lib/typescript/src/AdWhaleMediationAds.d.ts +14 -5
  76. package/lib/typescript/src/AdWhaleMediationAds.d.ts.map +1 -1
  77. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts +7 -4
  78. package/lib/typescript/src/AdWhaleNativeCustomView.d.ts.map +1 -1
  79. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts +20 -7
  80. package/lib/typescript/src/AdWhaleNativeTemplateView.d.ts.map +1 -1
  81. package/lib/typescript/src/AdWhaleRewardAd.d.ts +18 -2
  82. package/lib/typescript/src/AdWhaleRewardAd.d.ts.map +1 -1
  83. package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts +33 -0
  84. package/lib/typescript/src/AdWhaleTransitionPopupAd.d.ts.map +1 -0
  85. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts +33 -6
  86. package/lib/typescript/src/NativeAdwhaleSdkReactNative.d.ts.map +1 -1
  87. package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts +51 -0
  88. package/lib/typescript/src/constants/AdWhaleMethodArgConst.d.ts.map +1 -0
  89. package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts +53 -0
  90. package/lib/typescript/src/constants/AdWhaleMethodCallConst.d.ts.map +1 -0
  91. package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts +14 -0
  92. package/lib/typescript/src/constants/AdWhaleMethodResultConst.d.ts.map +1 -0
  93. package/lib/typescript/src/index.d.ts +10 -2
  94. package/lib/typescript/src/index.d.ts.map +1 -1
  95. package/package.json +1 -1
  96. package/src/AdWhaleAdView.tsx +126 -9
  97. package/src/AdWhaleAppOpenAd.ts +293 -38
  98. package/src/AdWhaleExitPopupAd.ts +183 -0
  99. package/src/AdWhaleInterstitialAd.ts +206 -36
  100. package/src/AdWhaleMediationAds.ts +109 -5
  101. package/src/AdWhaleNativeCustomView.tsx +85 -23
  102. package/src/AdWhaleNativeTemplateView.tsx +79 -42
  103. package/src/AdWhaleRewardAd.ts +245 -43
  104. package/src/AdWhaleTransitionPopupAd.ts +171 -0
  105. package/src/NativeAdwhaleSdkReactNative.ts +36 -6
  106. package/src/constants/AdWhaleMethodArgConst.ts +50 -0
  107. package/src/constants/AdWhaleMethodCallConst.ts +60 -0
  108. package/src/constants/AdWhaleMethodResultConst.ts +13 -0
  109. 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":"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","ignoreList":[]}
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":";;AAAA;AACA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AACtD,OAAOC,2BAA2B,MAI3B,kCAA+B;AAEtC,MAAMC,aAAa,GACjB,oDAAoD,GACpD,cAAc,GACd,6EAA6E,GAC7E,mCAAmC,GACnC,0BAA0B,GAC1B,aAAaF,QAAQ,CAACG,EAAE,EAAE;AAE5B,MAAMC,sBAAsB,GAC1B,qGAAqG;AAOvG,MAAM;EAAEC;AAA+B,CAAC,GAAGN,aAE1C;AAED,MAAMO,qBAAqB,GAAGL,2BAA2B;AAEzD,IAAI,CAACK,qBAAqB,EAAE;EAC1BC,OAAO,CAACC,IAAI,CAACN,aAAa,CAAC;AAC7B,CAAC,MAAM;EACLK,OAAO,CAACE,GAAG,CAAC,6CAA6C,EAAE;IACzDC,aAAa,EAAE,CAAC,CAACJ,qBAAqB,CAACK,UAAU;IACjDC,qBAAqB,EAAE,CAAC,CAACN,qBAAqB,CAACO,kBAAkB;IACjEC,mBAAmB,EAAE,CAAC,CAACR,qBAAqB,CAACS,gBAAgB;IAC7DC,yBAAyB,EAAE,CAAC,CAACV,qBAAqB,CAACW,sBAAsB;IACzEC,UAAU,EAAE,CAAC,CAACZ,qBAAqB,CAACa,OAAO;IAC3CC,WAAW,EAAE,CAAC,CAACd,qBAAqB,CAACe,QAAQ;IAC7CC,6BAA6B,EAC3B,CAAC,CAAChB,qBAAqB,CAACiB,0BAA0B;IACpDC,wBAAwB,EAAE,CAAC,CAAClB,qBAAqB,CAACmB,qBAAqB;IACvEC,2BAA2B,EACzB,CAAC,CAACpB,qBAAqB,CAACqB,wBAAwB;IAClDC,kBAAkB,EAAE,CAAC,CAACtB,qBAAqB,CAACuB,eAAe;IAC3DC,cAAc,EAAE,CAAC,CAACxB,qBAAqB,CAACyB,WAAW;IACnDC,eAAe,EAAE,CAAC,CAAC1B,qBAAqB,CAAC2B;EAC3C,CAAC,CAAC;AACJ;AAEA,OAAO,MAAMC,mBAAmB,GAAG;EACjC;AACF;AACA;AACA;EACEvB,UAAUA,CAAA,EAA8B;IACtC,IAAI,CAACL,qBAAqB,EAAEK,UAAU,EAAE;MACtC,OAAOwB,OAAO,CAACC,MAAM,CAAC,IAAIC,KAAK,CAACnC,aAAa,CAAC,CAAC;IACjD;IACA,OAAOI,qBAAqB,CAACK,UAAU,CAAC,CAAC,CAAC2B,KAAK,CAAEC,CAAU,KAAM;MAC/DC,UAAU,EAAE,CAAC,CAAC;MACdC,OAAO,EAAEF,CAAC,YAAYF,KAAK,GAAGE,CAAC,CAACE,OAAO,GAAGC,MAAM,CAACH,CAAC;IACpD,CAAC,CAAC,CAAC;EACL,CAAC;EAEDI,gBAAgBA,CAACC,OAAgB,EAAE;IACjC,IAAI5C,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACzBI,OAAO,CAACC,IAAI,CAACJ,sBAAsB,CAAC;MACpC;IACF;IACAC,8BAA8B,EAAEwC,WAAW,GAAGD,OAAO,CAAC;EACxD,CAAC;EAEDE,WAAWA,CAAA,EAAoB;IAC7B,IAAI9C,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACzB,OAAOgC,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAAC,mDAAmD,CAC/D,CAAC;IACH;IACA,IAAI,CAAChC,8BAA8B,EAAEyC,WAAW,EAAE;MAChD,OAAOX,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAAC,iDAAiD,CAC7D,CAAC;IACH;IACA,OAAOhC,8BAA8B,CAACyC,WAAW,CAAC,CAAC;EACrD,CAAC;EAEDzB,QAAQA,CAACuB,OAAgB,EAAE;IACzBrC,OAAO,CAACE,GAAG,CAAC,wCAAwC,EAAEmC,OAAO,CAAC;IAC9D,IAAI,CAACtC,qBAAqB,EAAEe,QAAQ,EAAE;MACpCd,OAAO,CAACC,IAAI,CAAC,oEAAoE,CAAC;MAClF;IACF;IACAF,qBAAqB,CAACe,QAAQ,CAACuB,OAAO,CAAC;EACzC,CAAC;EAED/B,kBAAkBA,CAAA,EAA+B;IAC/CN,OAAO,CAACE,GAAG,CAAC,iDAAiD,CAAC;IAC9D,IAAI,CAACH,qBAAqB,EAAEO,kBAAkB,EAAE;MAC9C,MAAMkC,KAAK,GAAG,IAAIV,KAAK,CAAC,wDAAwD,CAAC;MACjF9B,OAAO,CAACwC,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,OAAOZ,OAAO,CAACC,MAAM,CAACW,KAAK,CAAC;IAC9B;IACA,OAAOzC,qBAAqB,CAACO,kBAAkB,CAAC,CAAC;EACnD,CAAC;EAEDE,gBAAgBA,CAAA,EAIb;IACDR,OAAO,CAACE,GAAG,CAAC,+CAA+C,CAAC;IAC5D,IAAI,CAACH,qBAAqB,EAAES,gBAAgB,EAAE;MAC5C,MAAMgC,KAAK,GAAG,IAAIV,KAAK,CAAC,sDAAsD,CAAC;MAC/E9B,OAAO,CAACwC,KAAK,CAAC,uBAAuB,EAAEA,KAAK,CAAC;MAC7C,OAAOZ,OAAO,CAACC,MAAM,CAACW,KAAK,CAAC;IAC9B;IACA,OAAOzC,qBAAqB,CAACS,gBAAgB,CAAC,CAAC;EACjD,CAAC;EAEDE,sBAAsBA,CAAA,EAAG;IACvBV,OAAO,CAACE,GAAG,CAAC,qDAAqD,CAAC;IAClE,IAAI,CAACH,qBAAqB,EAAEW,sBAAsB,EAAE;MAClDV,OAAO,CAACC,IAAI,CAAC,kFAAkF,CAAC;MAChG;IACF;IACAF,qBAAqB,CAACW,sBAAsB,CAAC,CAAC;EAChD,CAAC;EAEDE,OAAOA,CAAC6B,OAAgB,EAAE;IACxBzC,OAAO,CAACE,GAAG,CAAC,uCAAuC,EAAEuC,OAAO,CAAC;IAC7D,IAAIhD,QAAQ,CAACG,EAAE,KAAK,KAAK,EAAE;MACzBI,OAAO,CAACC,IAAI,CACV,qFACF,CAAC;MACD;IACF;IACA,IAAI,CAACF,qBAAqB,EAAEa,OAAO,EAAE;MACnCZ,OAAO,CAACC,IAAI,CAAC,mEAAmE,CAAC;MACjF;IACF;IACAF,qBAAqB,CAACa,OAAO,CAAC6B,OAAO,CAAC;EACxC,CAAC;EAEDzB,0BAA0BA,CAAC0B,GAAY,EAAE;IACvC,IAAI,CAAC3C,qBAAqB,EAAEiB,0BAA0B,EAAE;MACtDhB,OAAO,CAACC,IAAI,CACV,sFACF,CAAC;MACD;IACF;IACAF,qBAAqB,CAACiB,0BAA0B,CAAC0B,GAAG,CAAC;EACvD,CAAC;EAEDxB,qBAAqBA,CAACyB,MAAiC,EAAE;IACvD,IAAI,CAAC5C,qBAAqB,EAAEmB,qBAAqB,EAAE;MACjDlB,OAAO,CAACC,IAAI,CACV,iFACF,CAAC;MACD;IACF;IACA,IAAI0C,MAAM,KAAKC,SAAS,IAAID,MAAM,KAAK,EAAE,EAAE;MACzC5C,qBAAqB,CAACmB,qBAAqB,CAAC,IAAI,CAAC;IACnD,CAAC,MAAM;MACLnB,qBAAqB,CAACmB,qBAAqB,CAACyB,MAAM,CAAC;IACrD;EACF,CAAC;EAEDvB,wBAAwBA,CAACyB,aAA0C,EAAE;IACnE,IAAIA,aAAa,IAAI,IAAI,EAAE;MACzB;IACF;IACA,IAAI,CAAC9C,qBAAqB,EAAEqB,wBAAwB,EAAE;MACpDpB,OAAO,CAACC,IAAI,CACV,oFACF,CAAC;MACD;IACF;IACAF,qBAAqB,CAACqB,wBAAwB,CAACyB,aAAa,CAAC;EAC/D,CAAC;EAEDvB,eAAeA,CAAA,EAA+B;IAC5C,IAAI,CAACvB,qBAAqB,EAAEuB,eAAe,EAAE;MAC3C,OAAOM,OAAO,CAACC,MAAM,CACnB,IAAIC,KAAK,CAAC,qDAAqD,CACjE,CAAC;IACH;IACA,OAAO/B,qBAAqB,CAACuB,eAAe,CAAC,CAAC;EAChD,CAAC;EAEDE,WAAWA,CAACsB,OAAgB,EAAE;IAC5B,IAAI,CAAC/C,qBAAqB,EAAEyB,WAAW,EAAE;MACvCxB,OAAO,CAACC,IAAI,CACV,uEACF,CAAC;MACD;IACF;IACAF,qBAAqB,CAACyB,WAAW,CAACsB,OAAO,CAAC;EAC5C,CAAC;EAEDpB,YAAYA,CAACqB,MAAc,EAAE;IAC3B,IAAI,CAAChD,qBAAqB,EAAE2B,YAAY,EAAE;MACxC1B,OAAO,CAACC,IAAI,CACV,wEACF,CAAC;MACD;IACF;IACAF,qBAAqB,CAAC2B,YAAY,CAACqB,MAAM,CAAC;EAC5C;AACF,CAAC","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
- if (!handle) return;
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
- if (!config?.Commands?.loadAd) return;
17
- UIManager.dispatchViewManagerCommand(handle, config.Commands.loadAd, []);
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
- if (!handle) return;
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
- if (!config?.Commands?.showAd) return;
24
- UIManager.dispatchViewManagerCommand(handle, config.Commands.showAd, []);
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
- props.onAdFailedToLoad?.(e.nativeEvent);
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
- onAdFailedToLoad: props.onAdFailedToLoad ? handleFailedToLoad : undefined
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","onAdFailedToLoad","nativeEvent","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeCustomView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAyCjF,MAAMC,iBAAiB,GAAG,sCAAsC;AAEhE,MAAMC,eAAe,GACnBN,sBAAsB,CAAcK,iBAAiB,CAAC;AAExD,OAAO,MAAME,uBAAuB,gBAAGV,UAAU,CAG/C,CAACW,KAAK,EAAEC,GAAG,KAAK;EAChB,MAAMC,QAAQ,GAAGX,MAAM,CAA2C,IAAI,CAAC;EAEvED,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAC9BE,MAAMA,CAAA,EAAG;MACP,MAAMC,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEL,MAAM,EAAE;MAC/BV,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACL,MAAM,EACtB,EACF,CAAC;IACH,CAAC;IACDO,MAAMA,CAAA,EAAG;MACP,MAAMN,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEE,MAAM,EAAE;MAC/BjB,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACE,MAAM,EACtB,EACF,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,kBAAmD,GAAGC,CAAC,IAAI;IAC/DZ,KAAK,CAACa,gBAAgB,GAAGD,CAAC,CAACE,WAAW,CAAC;EACzC,CAAC;EAED,oBACElB,IAAA,CAACE,eAAe;IACdG,GAAG,EAAEC,QAAS;IAAA,GACVF,KAAK;IACTa,gBAAgB,EAAEb,KAAK,CAACa,gBAAgB,GAAGF,kBAAkB,GAAGI;EAAU,CAC3E,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
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 React, { forwardRef, useImperativeHandle, useRef } from 'react';
5
- import { requireNativeComponent, UIManager, findNodeHandle } from 'react-native';
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
- const innerRef = useRef(null);
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
- const handle = findNodeHandle(innerRef.current);
14
- if (!handle) return;
15
- const config = UIManager.getViewManagerConfig(VIEW_MANAGER_NAME);
16
- if (!config?.Commands?.loadAd) return;
17
- UIManager.dispatchViewManagerCommand(handle, config.Commands.loadAd, []);
30
+ if (useExternalLoad) {
31
+ return;
32
+ }
33
+ setInternalLoadId(v => v + 1);
18
34
  },
19
35
  showAd() {
20
- const handle = findNodeHandle(innerRef.current);
21
- if (!handle) return;
22
- const config = UIManager.getViewManagerConfig(VIEW_MANAGER_NAME);
23
- if (!config?.Commands?.showAd) return;
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
- props.onAdFailedToLoad?.(e.nativeEvent);
43
+ onNativeAdFailedToLoad?.(e.nativeEvent);
29
44
  };
30
45
  const handleShowFailed = e => {
31
- props.onAdShowFailed?.(e.nativeEvent);
46
+ onNativeAdShowFailed?.(e.nativeEvent);
32
47
  };
33
48
  return /*#__PURE__*/_jsx(NativeComponent, {
34
- ref: innerRef,
35
- ...props,
36
- onAdFailedToLoad: props.onAdFailedToLoad ? handleFailedToLoad : undefined,
37
- onAdShowFailed: props.onAdShowFailed ? handleShowFailed : undefined
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":["React","forwardRef","useImperativeHandle","useRef","requireNativeComponent","UIManager","findNodeHandle","jsx","_jsx","VIEW_MANAGER_NAME","NativeComponent","AdWhaleNativeTemplateView","props","ref","innerRef","loadAd","handle","current","config","getViewManagerConfig","Commands","dispatchViewManagerCommand","showAd","handleFailedToLoad","e","onAdFailedToLoad","nativeEvent","handleShowFailed","onAdShowFailed","undefined"],"sourceRoot":"../../src","sources":["AdWhaleNativeTemplateView.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,UAAU,EAAEC,mBAAmB,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAASC,sBAAsB,EAAEC,SAAS,EAAEC,cAAc,QAAQ,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAoEjF,MAAMC,iBAAiB,GAAG,wCAAwC;AAElE,MAAMC,eAAe,GACnBN,sBAAsB,CAAcK,iBAAiB,CAAC;AAExD,OAAO,MAAME,yBAAyB,gBAAGV,UAAU,CAGjD,CAACW,KAAK,EAAEC,GAAG,KAAK;EAChB,MAAMC,QAAQ,GAAGX,MAAM,CAA2C,IAAI,CAAC;EAEvED,mBAAmB,CAACW,GAAG,EAAE,OAAO;IAC9BE,MAAMA,CAAA,EAAG;MACP,MAAMC,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEL,MAAM,EAAE;MAC/BV,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACL,MAAM,EACtB,EACF,CAAC;IACH,CAAC;IACDO,MAAMA,CAAA,EAAG;MACP,MAAMN,MAAM,GAAGV,cAAc,CAACQ,QAAQ,CAACG,OAAO,CAAC;MAC/C,IAAI,CAACD,MAAM,EAAE;MACb,MAAME,MAAM,GAAGb,SAAS,CAACc,oBAAoB,CAACV,iBAAiB,CAElD;MACb,IAAI,CAACS,MAAM,EAAEE,QAAQ,EAAEE,MAAM,EAAE;MAC/BjB,SAAS,CAACgB,0BAA0B,CAClCL,MAAM,EACNE,MAAM,CAACE,QAAQ,CAACE,MAAM,EACtB,EACF,CAAC;IACH;EACF,CAAC,CAAC,CAAC;EAEH,MAAMC,kBAAmD,GAAGC,CAAC,IAAI;IAC/DZ,KAAK,CAACa,gBAAgB,GAAGD,CAAC,CAACE,WAAW,CAAC;EACzC,CAAC;EAED,MAAMC,gBAA+C,GAAGH,CAAC,IAAI;IAC3DZ,KAAK,CAACgB,cAAc,GAAGJ,CAAC,CAACE,WAAW,CAAC;EACvC,CAAC;EAED,oBACElB,IAAA,CAACE,eAAe;IACdG,GAAG,EAAEC,QAAS;IAAA,GACVF,KAAK;IACTa,gBAAgB,EAAEb,KAAK,CAACa,gBAAgB,GAAGF,kBAAkB,GAAGM,SAAU;IAC1ED,cAAc,EAAEhB,KAAK,CAACgB,cAAc,GAAGD,gBAAgB,GAAGE;EAAU,CACrE,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
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
- // 다음 loadAd 호출
22
- RNAdWhaleMediationRewardAd.loadAd(placementUid);
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.showAd();
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
- const subs = [];
29
- if (listeners.onLoaded) {
30
- subs.push(rewardEmitter.addListener('onRewardAdLoaded', () => {
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
- if (listeners.onShowed) {
38
- subs.push(rewardEmitter.addListener('onRewardAdShowed', () => {
39
- listeners.onShowed?.();
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
- if (listeners.onDismissed) {
46
- subs.push(rewardEmitter.addListener('onRewardAdDismissed', () => {
47
- listeners.onDismissed?.();
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
- if (listeners.onUserRewarded) {
56
- subs.push(rewardEmitter.addListener('onUserRewarded', event => listeners.onUserRewarded?.(event)));
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","onLoaded","push","addListener","onLoadFailed","event","onShowed","onShowFailed","onDismissed","onClicked","onUserRewarded"],"sourceRoot":"../../src","sources":["AdWhaleRewardAd.ts"],"mappings":";;AAAA;AACA,SAASA,kBAAkB,EAAEC,aAAa,QAAQ,cAAc;AAsChE,MAAM;EAAEC;AAA2B,CAAC,GAAGD,aAEtC;AAED,MAAME,aAAa,GAAG,IAAIH,kBAAkB,CAACE,0BAA0B,CAAC;AAExE,OAAO,MAAME,eAAe,GAAG;EAC7BC,MAAMA,CACJC,YAAoB,EACpBC,OAIC,EACD;IACA;IACA,IAAIA,OAAO,EAAEC,aAAa,EAAE;MAC1BN,0BAA0B,CAACO,gBAAgB,CAACF,OAAO,CAACC,aAAa,CAAC;IACpE;IACA,IAAID,OAAO,EAAEG,MAAM,EAAE;MACnBR,0BAA0B,CAACS,SAAS,CAACJ,OAAO,CAACG,MAAM,CAAC;IACtD;IACA,IAAIH,OAAO,EAAEK,MAAM,EAAE;MACnBV,0BAA0B,CAACW,SAAS,CAACN,OAAO,CAACK,MAAM,CAAC;IACtD;IACA;IACAV,0BAA0B,CAACG,MAAM,CAACC,YAAY,CAAC;EACjD,CAAC;EAEDQ,MAAMA,CAAA,EAAG;IACPZ,0BAA0B,CAACY,MAAM,CAAC,CAAC;EACrC,CAAC;EAEDC,iBAAiBA,CAACC,SAA8B,EAAyB;IACvE,MAAMC,IAA2B,GAAG,EAAE;IAEtC,IAAID,SAAS,CAACE,QAAQ,EAAE;MACtBD,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,kBAAkB,EAAE,MAAM;QAClDJ,SAAS,CAACE,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIF,SAAS,CAACK,YAAY,EAAE;MAC1BJ,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,wBAAwB,EACxBE,KAAK,IAAIN,SAAS,CAACK,YAAY,GAAGC,KAAgC,CACpE,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACO,QAAQ,EAAE;MACtBN,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,kBAAkB,EAAE,MAAM;QAClDJ,SAAS,CAACO,QAAQ,GAAG,CAAC;MACxB,CAAC,CACH,CAAC;IACH;IACA,IAAIP,SAAS,CAACQ,YAAY,EAAE;MAC1BP,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,wBAAwB,EACxBE,KAAK,IAAIN,SAAS,CAACQ,YAAY,GAAGF,KAAgC,CACpE,CACF,CAAC;IACH;IACA,IAAIN,SAAS,CAACS,WAAW,EAAE;MACzBR,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,qBAAqB,EAAE,MAAM;QACrDJ,SAAS,CAACS,WAAW,GAAG,CAAC;MAC3B,CAAC,CACH,CAAC;IACH;IACA,IAAIT,SAAS,CAACU,SAAS,EAAE;MACvBT,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CAAC,mBAAmB,EAAE,MAAM;QACnDJ,SAAS,CAACU,SAAS,GAAG,CAAC;MACzB,CAAC,CACH,CAAC;IACH;IACA,IAAIV,SAAS,CAACW,cAAc,EAAE;MAC5BV,IAAI,CAACE,IAAI,CACPhB,aAAa,CAACiB,WAAW,CACvB,gBAAgB,EAChBE,KAAK,IACHN,SAAS,CAACW,cAAc,GAAGL,KAAuC,CACtE,CACF,CAAC;IACH;IAEA,OAAOL,IAAI;EACb;AACF,CAAC","ignoreList":[]}
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":[]}