@1selfworld/adchain-sdk-react-native 1.0.13 → 1.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -96,6 +96,33 @@ export default function App() {
96
96
  - `openAdjoeOfferwall(placementId?)` - ADJOE 오퍼월 열기
97
97
  - `openOfferwallNestAds(placementId)` - NestAds 오퍼월 열기
98
98
 
99
+ ### 임베디드 오퍼월 컴포넌트
100
+ `AdchainOfferwallView`는 탭이나 화면에 직접 임베드할 수 있는 React Native 컴포넌트입니다.
101
+
102
+ ```typescript
103
+ import { AdchainOfferwallView } from '@1selfworld/adchain-sdk-react-native';
104
+
105
+ <AdchainOfferwallView
106
+ placementId="tab_embedded_offerwall"
107
+ style={{ flex: 1 }}
108
+ onOfferwallOpened={() => console.log('Opened')}
109
+ onOfferwallClosed={() => console.log('Closed')}
110
+ onBackPressOnFirstPage={() => {
111
+ // Android: WebView가 첫 페이지일 때 백버튼 처리
112
+ // 앱 종료, 다른 탭 이동 등의 로직 구현
113
+ }}
114
+ onBackNavigated={() => {
115
+ // Android: WebView 내부에서 뒤로가기 성공
116
+ }}
117
+ />
118
+ ```
119
+
120
+ **백버튼 이벤트 (Android, v1.0.15+)**:
121
+ - `onBackPressOnFirstPage`: WebView 스택에 페이지가 1개만 있을 때 (더 이상 뒤로갈 수 없음)
122
+ - `onBackNavigated`: WebView 스택에서 성공적으로 뒤로 이동했을 때
123
+
124
+ 앱 개발자는 이 이벤트를 받아서 앱 종료, 탭 전환 등의 동작을 직접 구현할 수 있습니다.
125
+
99
126
  ### 퀴즈 & 미션
100
127
  - `loadQuizList(unitId)` - 퀴즈 목록 로드
101
128
  - `clickQuiz(unitId, quizId)` - 퀴즈 클릭
@@ -180,14 +207,16 @@ npx expo run:ios
180
207
 
181
208
  ### Pod install 실패 (iOS)
182
209
  - Git URL이 올바른지 확인
183
- - 태그 v1.0.42가 존재하는지 확인
210
+ - 태그 v1.0.45가 존재하는지 확인
184
211
  - 시도: `cd ios && rm -rf Pods Podfile.lock && pod install`
185
212
 
186
213
  ## 버전 호환성
187
214
 
188
- | 패키지 버전 | Android SDK | iOS SDK | Swift | Expo SDK |
189
- |------------|-------------|---------|-------|----------|
190
- | 1.0.0 | v1.0.28 | v1.0.42 | 5.5 | 50-53 |
215
+ | 패키지 버전 | Android SDK | iOS SDK | Swift | Expo SDK | 주요 변경사항 |
216
+ |------------|-------------|---------|-------|----------|--------------|
217
+ | 1.0.15 | v1.0.29 | v1.0.45 | 5.5 | 50-53 | 백버튼 이벤트, NestAds 지원 |
218
+ | 1.0.13 | v1.0.28 | v1.0.45 | 5.5 | 50-53 | NestAds 오퍼월 추가 |
219
+ | 1.0.0 | v1.0.28 | v1.0.45 | 5.5 | 50-53 | 초기 릴리즈 |
191
220
 
192
221
  ## 알려진 제한사항
193
222
 
@@ -35,5 +35,5 @@ dependencies {
35
35
  implementation 'com.facebook.react:react-native:+'
36
36
  implementation "org.jetbrains.kotlin:kotlin-stdlib:1.9.21"
37
37
  // AdChain Android SDK via JitPack
38
- implementation 'com.github.1selfworld-labs:adchain-sdk-android:v1.0.28'
38
+ implementation 'com.github.1selfworld-labs:adchain-sdk-android:v1.0.29'
39
39
  }
@@ -58,6 +58,17 @@ class AdchainOfferwallViewManager : SimpleViewManager<AdchainOfferwallView>() {
58
58
  Log.d(TAG, "handleBackPress command")
59
59
  val handled = root.handleBackPress()
60
60
  Log.d(TAG, "handleBackPress result: $handled")
61
+
62
+ // Send event to React Native based on result
63
+ if (!handled) {
64
+ // WebView stack has only 1 item (first page)
65
+ Log.d(TAG, "Sending onBackPressOnFirstPage event")
66
+ sendEvent(root, "onBackPressOnFirstPage", Arguments.createMap())
67
+ } else {
68
+ // WebView stack has 2+ items (navigated back)
69
+ Log.d(TAG, "Sending onBackNavigated event")
70
+ sendEvent(root, "onBackNavigated", Arguments.createMap())
71
+ }
61
72
  }
62
73
  "sendDataResponse" -> { // NEW
63
74
  val requestId = args?.getString(0) ?: ""
@@ -236,8 +247,10 @@ class AdchainOfferwallViewManager : SimpleViewManager<AdchainOfferwallView>() {
236
247
  "onOfferwallError" to mapOf("registrationName" to "onOfferwallError"),
237
248
  "onRewardEarned" to mapOf("registrationName" to "onRewardEarned"),
238
249
  "onHeightChange" to mapOf("registrationName" to "onHeightChange"),
239
- "onCustomEvent" to mapOf("registrationName" to "onCustomEvent"), // NEW
240
- "onDataRequest" to mapOf("registrationName" to "onDataRequest") // NEW
250
+ "onCustomEvent" to mapOf("registrationName" to "onCustomEvent"),
251
+ "onDataRequest" to mapOf("registrationName" to "onDataRequest"),
252
+ "onBackPressOnFirstPage" to mapOf("registrationName" to "onBackPressOnFirstPage"),
253
+ "onBackNavigated" to mapOf("registrationName" to "onBackNavigated")
241
254
  )
242
255
  }
243
256
 
@@ -53,7 +53,9 @@ export const AdchainOfferwallView = /*#__PURE__*/React.forwardRef(({
53
53
  onOfferwallError,
54
54
  onRewardEarned,
55
55
  onCustomEvent,
56
- onDataRequest
56
+ onDataRequest,
57
+ onBackPressOnFirstPage,
58
+ onBackNavigated
57
59
  }, ref) => {
58
60
  const viewRef = useRef(null);
59
61
 
@@ -132,9 +134,11 @@ export const AdchainOfferwallView = /*#__PURE__*/React.forwardRef(({
132
134
  onOfferwallClosed: onOfferwallClosed,
133
135
  onOfferwallError: handleOfferwallError,
134
136
  onRewardEarned: handleRewardEarned,
135
- onCustomEvent: handleCustomEvent // NEW
137
+ onCustomEvent: handleCustomEvent,
138
+ onDataRequest: handleDataRequest,
139
+ onBackPressOnFirstPage: onBackPressOnFirstPage // NEW (v1.0.42)
136
140
  ,
137
- onDataRequest: handleDataRequest // NEW
141
+ onBackNavigated: onBackNavigated // NEW (v1.0.42)
138
142
  });
139
143
  });
140
144
  export default AdchainOfferwallView;
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","requireNativeComponent","UIManager","findNodeHandle","Platform","jsx","_jsx","NativeOfferwallView","AdchainOfferwallView","forwardRef","placementId","style","onOfferwallOpened","onOfferwallClosed","onOfferwallError","onRewardEarned","onCustomEvent","onDataRequest","ref","viewRef","useImperativeHandle","current","viewId","OS","dispatchViewManagerCommand","error","console","handleOfferwallError","event","nativeEvent","handleRewardEarned","amount","handleCustomEvent","eventType","payload","handleDataRequest","requestId","requestType","params","responseData","undefined"],"sourceRoot":"../../src","sources":["AdchainOfferwallView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useEffect","useRef","requireNativeComponent","UIManager","findNodeHandle","Platform","jsx","_jsx","NativeOfferwallView","AdchainOfferwallView","forwardRef","placementId","style","onOfferwallOpened","onOfferwallClosed","onOfferwallError","onRewardEarned","onCustomEvent","onDataRequest","onBackPressOnFirstPage","onBackNavigated","ref","viewRef","useImperativeHandle","current","viewId","OS","dispatchViewManagerCommand","error","console","handleOfferwallError","event","nativeEvent","handleRewardEarned","amount","handleCustomEvent","eventType","payload","handleDataRequest","requestId","requestType","params","responseData","undefined"],"sourceRoot":"../../src","sources":["AdchainOfferwallView.tsx"],"mappings":"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","ignoreList":[]}
@@ -31,6 +31,18 @@ export interface AdchainOfferwallViewProps {
31
31
  * @since 1.0.41
32
32
  */
33
33
  onDataRequest?: (requestType: string, params: any) => any;
34
+ /**
35
+ * Callback when back button is pressed on the first page (WebView stack has only 1 item)
36
+ * This means the WebView cannot go back further, so the app should handle it (e.g., exit app or navigate to another tab)
37
+ * @since 1.0.45
38
+ */
39
+ onBackPressOnFirstPage?: () => void;
40
+ /**
41
+ * Callback when back button successfully navigated back in WebView (WebView stack has 2+ items)
42
+ * This means the WebView went back in its history
43
+ * @since 1.0.45
44
+ */
45
+ onBackNavigated?: () => void;
34
46
  }
35
47
  /**
36
48
  * AdChain Offerwall View Component
@@ -1 +1 @@
1
- {"version":3,"file":"AdchainOfferwallView.d.ts","sourceRoot":"","sources":["../../../src/AdchainOfferwallView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8C9C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAI1C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;CAC3D;AAsBD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,uFAmHhC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"AdchainOfferwallView.d.ts","sourceRoot":"","sources":["../../../src/AdchainOfferwallView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAOjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AA8C9C;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAI1C;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAI1D;;;;OAIG;IACH,sBAAsB,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAwBD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,oBAAoB,uFAuHhC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1selfworld/adchain-sdk-react-native",
3
- "version": "1.0.13",
3
+ "version": "1.0.16",
4
4
  "description": "AdChain SDK for React Native with Expo support",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -28,10 +28,10 @@ function withAdchainIOS(config) {
28
28
  if (targetMatch) {
29
29
  const targetName = targetMatch[1];
30
30
  const podDeclaration = `
31
- # AdChain SDK (Git Pod) - v1.0.42
31
+ # AdChain SDK (Git Pod) - v1.0.45
32
32
  # CocoaPods Trunk에 없으므로 Git 방식 사용
33
33
  # Swift 5.5 (5.9 optional 파라미터 버그 회피)
34
- pod 'AdChainSDK', :git => 'https://github.com/1selfworld-labs/adchain-sdk-ios-release.git', :tag => 'v1.0.42'
34
+ pod 'AdChainSDK', :git => 'https://github.com/1selfworld-labs/adchain-sdk-ios-release.git', :tag => 'v1.0.45'
35
35
  `;
36
36
 
37
37
  podfile = podfile.replace(
@@ -41,8 +41,8 @@ function withAdchainIOS(config) {
41
41
  } else {
42
42
  // Fallback
43
43
  const podDeclaration = `
44
- # AdChain SDK (Git Pod) - v1.0.42
45
- pod 'AdChainSDK', :git => 'https://github.com/1selfworld-labs/adchain-sdk-ios-release.git', :tag => 'v1.0.42'
44
+ # AdChain SDK (Git Pod) - v1.0.45
45
+ pod 'AdChainSDK', :git => 'https://github.com/1selfworld-labs/adchain-sdk-ios-release.git', :tag => 'v1.0.45'
46
46
  `;
47
47
 
48
48
  podfile = podfile.replace(
@@ -86,6 +86,22 @@ export interface AdchainOfferwallViewProps {
86
86
  * @since 1.0.41
87
87
  */
88
88
  onDataRequest?: (requestType: string, params: any) => any;
89
+
90
+ // ===== NEW: Back Button Handling (v1.0.45+) =====
91
+
92
+ /**
93
+ * Callback when back button is pressed on the first page (WebView stack has only 1 item)
94
+ * This means the WebView cannot go back further, so the app should handle it (e.g., exit app or navigate to another tab)
95
+ * @since 1.0.45
96
+ */
97
+ onBackPressOnFirstPage?: () => void;
98
+
99
+ /**
100
+ * Callback when back button successfully navigated back in WebView (WebView stack has 2+ items)
101
+ * This means the WebView went back in its history
102
+ * @since 1.0.45
103
+ */
104
+ onBackNavigated?: () => void;
89
105
  }
90
106
 
91
107
  /**
@@ -99,8 +115,10 @@ interface NativeOfferwallViewProps {
99
115
  onOfferwallError?: (event: OfferwallErrorEvent) => void;
100
116
  onRewardEarned?: (event: OfferwallRewardEvent) => void;
101
117
  onHeightChange?: (event: OfferwallHeightChangeEvent) => void;
102
- onCustomEvent?: (event: OfferwallCustomEvent) => void; // NEW
103
- onDataRequest?: (event: OfferwallDataRequestEvent) => void; // NEW
118
+ onCustomEvent?: (event: OfferwallCustomEvent) => void;
119
+ onDataRequest?: (event: OfferwallDataRequestEvent) => void;
120
+ onBackPressOnFirstPage?: () => void; // NEW (v1.0.45)
121
+ onBackNavigated?: () => void; // NEW (v1.0.45)
104
122
  }
105
123
 
106
124
  // Require native component
@@ -139,6 +157,8 @@ export const AdchainOfferwallView = React.forwardRef<
139
157
  onRewardEarned,
140
158
  onCustomEvent,
141
159
  onDataRequest,
160
+ onBackPressOnFirstPage,
161
+ onBackNavigated,
142
162
  },
143
163
  ref
144
164
  ) => {
@@ -235,8 +255,10 @@ export const AdchainOfferwallView = React.forwardRef<
235
255
  onOfferwallClosed={onOfferwallClosed}
236
256
  onOfferwallError={handleOfferwallError}
237
257
  onRewardEarned={handleRewardEarned}
238
- onCustomEvent={handleCustomEvent} // NEW
239
- onDataRequest={handleDataRequest} // NEW
258
+ onCustomEvent={handleCustomEvent}
259
+ onDataRequest={handleDataRequest}
260
+ onBackPressOnFirstPage={onBackPressOnFirstPage} // NEW (v1.0.42)
261
+ onBackNavigated={onBackNavigated} // NEW (v1.0.42)
240
262
  />
241
263
  );
242
264
  }