@1selfworld/adchain-sdk-react-native 1.0.4 → 1.0.6
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/android/build.gradle +1 -1
- package/lib/module/index.js +22 -10
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.tsx +30 -10
package/android/build.gradle
CHANGED
|
@@ -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:
|
|
38
|
+
implementation 'com.github.1selfworld-labs:adchain-sdk-android:v1.0.28'
|
|
39
39
|
}
|
package/lib/module/index.js
CHANGED
|
@@ -2,17 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
4
4
|
|
|
5
|
+
// ===== Expo 환경 감지 =====
|
|
6
|
+
// ExpoConstants 네이티브 모듈 존재 여부로 Expo 환경 판단
|
|
7
|
+
// 이 방법은 Metro 번들러의 정적 분석을 트리거하지 않으며,
|
|
8
|
+
// 런타임에 안전하게 환경을 감지할 수 있습니다.
|
|
9
|
+
const hasExpoNative = (() => {
|
|
10
|
+
try {
|
|
11
|
+
return !!NativeModules.ExpoConstants;
|
|
12
|
+
} catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
})();
|
|
16
|
+
|
|
17
|
+
// ===== Expo Constants 조건부 로딩 =====
|
|
5
18
|
// Expo Constants는 autoInitialize() 함수에서만 사용됨 (Expo 프로젝트 전용)
|
|
6
|
-
// 순수 React Native 프로젝트에서는
|
|
19
|
+
// 순수 React Native 프로젝트에서는 네이티브 모듈이 없으므로 로딩 시도 안 함
|
|
7
20
|
let Constants = null;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
// 이는 정상적인 동작이며 경고를 발생시키지 않음
|
|
21
|
+
if (hasExpoNative) {
|
|
22
|
+
try {
|
|
23
|
+
Constants = require('expo-constants').default;
|
|
24
|
+
} catch (e) {
|
|
25
|
+
// Expo 네이티브 모듈은 있지만 JS 모듈 로드 실패
|
|
26
|
+
console.warn('[AdChain SDK] Expo environment detected, but expo-constants JS module failed to load:', e);
|
|
27
|
+
}
|
|
16
28
|
}
|
|
17
29
|
|
|
18
30
|
// Export Offerwall View Component
|
|
@@ -49,7 +61,7 @@ class AdchainSDK {
|
|
|
49
61
|
async autoInitialize() {
|
|
50
62
|
try {
|
|
51
63
|
if (!Constants) {
|
|
52
|
-
throw new Error('AdChain: autoInitialize() is only available in Expo projects. ' + 'For pure React Native projects, please use initialize() method with your credentials.');
|
|
64
|
+
throw new Error('AdChain: autoInitialize() is only available in Expo projects.\n\n' + `Environment check:\n` + `- Platform: ${Platform.OS}\n` + `- Expo native module: ${hasExpoNative ? '✓ Found' : '✗ Not found'}\n` + `- expo-constants loaded: ${Constants ? '✓ Yes' : '✗ No'}\n\n` + 'For pure React Native projects, please use initialize() method with your credentials.');
|
|
53
65
|
}
|
|
54
66
|
const expoConfig = Constants.expoConfig;
|
|
55
67
|
if (!expoConfig) {
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","Constants","require","default","e","AdchainOfferwallView","LINKING_ERROR","select","ios","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","expoConfig","adchainAndroidAppKey","adchainAndroidAppSecret","adchainIosAppKey","adchainIosAppSecret","adchainEnvironment","adchainTimeout","extra","isIOS","
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","NativeEventEmitter","hasExpoNative","ExpoConstants","Constants","require","default","e","console","warn","AdchainOfferwallView","LINKING_ERROR","select","ios","AdchainSdk","Proxy","get","Error","adchainEventEmitter","AdchainSDK","initialize","config","options","environment","timeout","appKey","appSecret","autoInitialize","OS","expoConfig","adchainAndroidAppKey","adchainAndroidAppSecret","adchainIosAppKey","adchainIosAppSecret","adchainEnvironment","adchainTimeout","extra","isIOS","log","error","login","user","userInfo","gender","birthYear","customProperties","userId","logout","isLoggedIn","getCurrentUser","loadQuizList","unitId","clickQuiz","quizId","loadMissionList","clickMission","missionId","claimReward","openOfferwall","placementId","openOfferwallWithUrl","url","openExternalBrowser","openAdjoeOfferwall","isInitialized","getUserId","getIFA","getBannerInfo","addQuizCompletedListener","callback","addListener","addMissionCompletedListener","addMissionProgressedListener","addMissionRefreshedListener","sdk"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.tsx
CHANGED
|
@@ -1,16 +1,32 @@
|
|
|
1
1
|
import { NativeModules, Platform, NativeEventEmitter } from 'react-native';
|
|
2
2
|
|
|
3
|
+
// ===== Expo 환경 감지 =====
|
|
4
|
+
// ExpoConstants 네이티브 모듈 존재 여부로 Expo 환경 판단
|
|
5
|
+
// 이 방법은 Metro 번들러의 정적 분석을 트리거하지 않으며,
|
|
6
|
+
// 런타임에 안전하게 환경을 감지할 수 있습니다.
|
|
7
|
+
const hasExpoNative = (() => {
|
|
8
|
+
try {
|
|
9
|
+
return !!NativeModules.ExpoConstants;
|
|
10
|
+
} catch {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
})();
|
|
14
|
+
|
|
15
|
+
// ===== Expo Constants 조건부 로딩 =====
|
|
3
16
|
// Expo Constants는 autoInitialize() 함수에서만 사용됨 (Expo 프로젝트 전용)
|
|
4
|
-
// 순수 React Native 프로젝트에서는
|
|
17
|
+
// 순수 React Native 프로젝트에서는 네이티브 모듈이 없으므로 로딩 시도 안 함
|
|
5
18
|
let Constants: any = null;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
19
|
+
|
|
20
|
+
if (hasExpoNative) {
|
|
21
|
+
try {
|
|
22
|
+
Constants = require('expo-constants').default;
|
|
23
|
+
} catch (e) {
|
|
24
|
+
// Expo 네이티브 모듈은 있지만 JS 모듈 로드 실패
|
|
25
|
+
console.warn(
|
|
26
|
+
'[AdChain SDK] Expo environment detected, but expo-constants JS module failed to load:',
|
|
27
|
+
e
|
|
28
|
+
);
|
|
29
|
+
}
|
|
14
30
|
}
|
|
15
31
|
|
|
16
32
|
// Export Offerwall View Component
|
|
@@ -114,7 +130,11 @@ class AdchainSDK {
|
|
|
114
130
|
try {
|
|
115
131
|
if (!Constants) {
|
|
116
132
|
throw new Error(
|
|
117
|
-
'AdChain: autoInitialize() is only available in Expo projects
|
|
133
|
+
'AdChain: autoInitialize() is only available in Expo projects.\n\n' +
|
|
134
|
+
`Environment check:\n` +
|
|
135
|
+
`- Platform: ${Platform.OS}\n` +
|
|
136
|
+
`- Expo native module: ${hasExpoNative ? '✓ Found' : '✗ Not found'}\n` +
|
|
137
|
+
`- expo-constants loaded: ${Constants ? '✓ Yes' : '✗ No'}\n\n` +
|
|
118
138
|
'For pure React Native projects, please use initialize() method with your credentials.'
|
|
119
139
|
);
|
|
120
140
|
}
|