react-native-marketap-sdk 0.1.0-beta.9 → 1.0.0
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/android/src/main/AndroidManifest.xml +1 -10
- package/android/src/main/java/com/marketapsdk/MarketapSdkModule.kt +284 -77
- package/android/src/main/java/com/marketapsdk/ReactNativeBridgeRegistry.kt +110 -0
- package/ios/MarketapSdk.m +30 -23
- package/ios/MarketapSdk.swift +232 -162
- package/lib/commonjs/MarketapWebBridge.js +205 -15
- package/lib/commonjs/MarketapWebBridge.js.map +1 -1
- package/lib/commonjs/core/MarketapCore.js +233 -0
- package/lib/commonjs/core/MarketapCore.js.map +1 -0
- package/lib/commonjs/index.js +20 -165
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/marketapCore.js +9 -0
- package/lib/commonjs/internal/marketapCore.js.map +1 -0
- package/lib/commonjs/internal/marketapPlugin.js +40 -0
- package/lib/commonjs/internal/marketapPlugin.js.map +1 -0
- package/lib/commonjs/version.js +1 -1
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/MarketapWebBridge.js +204 -15
- package/lib/module/MarketapWebBridge.js.map +1 -1
- package/lib/module/core/MarketapCore.js +226 -0
- package/lib/module/core/MarketapCore.js.map +1 -0
- package/lib/module/index.js +20 -164
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/marketapCore.js +3 -0
- package/lib/module/internal/marketapCore.js.map +1 -0
- package/lib/module/internal/marketapPlugin.js +35 -0
- package/lib/module/internal/marketapPlugin.js.map +1 -0
- package/lib/module/version.js +1 -1
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/MarketapWebBridge.d.ts +33 -6
- package/lib/typescript/MarketapWebBridge.d.ts.map +1 -1
- package/lib/typescript/core/MarketapCore.d.ts +54 -0
- package/lib/typescript/core/MarketapCore.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +2 -41
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/internal/marketapCore.d.ts +3 -0
- package/lib/typescript/internal/marketapCore.d.ts.map +1 -0
- package/lib/typescript/internal/marketapPlugin.d.ts +10 -0
- package/lib/typescript/internal/marketapPlugin.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +1 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/version.d.ts +1 -1
- package/lib/typescript/version.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-marketap-sdk.podspec +1 -1
package/lib/commonjs/index.js
CHANGED
|
@@ -13,7 +13,8 @@ Object.defineProperty(exports, "MarketapWebBridge", {
|
|
|
13
13
|
}
|
|
14
14
|
});
|
|
15
15
|
exports.default = void 0;
|
|
16
|
-
var
|
|
16
|
+
var _MarketapWebBridge = _interopRequireDefault(require("./MarketapWebBridge"));
|
|
17
|
+
var _marketapCore = require("./internal/marketapCore");
|
|
17
18
|
var _types = require("./types");
|
|
18
19
|
Object.keys(_types).forEach(function (key) {
|
|
19
20
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -26,171 +27,25 @@ Object.keys(_types).forEach(function (key) {
|
|
|
26
27
|
}
|
|
27
28
|
});
|
|
28
29
|
});
|
|
29
|
-
var _MarketapWebBridge = _interopRequireDefault(require("./MarketapWebBridge"));
|
|
30
30
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
default: ''
|
|
34
|
-
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
35
|
-
|
|
36
|
-
// Force use legacy bridge for now - TurboModule implementation incomplete
|
|
37
|
-
const MarketapSdkModule = _reactNative.NativeModules.MarketapSdk;
|
|
38
|
-
if (!MarketapSdkModule) {
|
|
39
|
-
throw new Error(`react-native-marketap-sdk: Native module not found (MarketapSdk). ` + `Did you run pod install (iOS) / rebuild? Platform=${_reactNative.Platform.OS}`);
|
|
40
|
-
}
|
|
41
|
-
const MarketapSdk = MarketapSdkModule ? MarketapSdkModule : new Proxy({}, {
|
|
42
|
-
get() {
|
|
43
|
-
throw new Error(LINKING_ERROR);
|
|
44
|
-
}
|
|
31
|
+
_marketapCore.marketapCore.setInAppMessageListener(event => {
|
|
32
|
+
_MarketapWebBridge.default.sendToActiveWebBridge(event.campaign, event.messageId, event.hasCustomClickHandler);
|
|
45
33
|
});
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.eventListenerSubscription = eventEmitter.addListener('MarketapClickEvent', event => {
|
|
63
|
-
if (this.clickHandler) {
|
|
64
|
-
this.clickHandler(event);
|
|
65
|
-
} else {
|
|
66
|
-
this.pendingClickEvents.push(event);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
cleanup() {
|
|
71
|
-
if (this.eventListenerSubscription) {
|
|
72
|
-
this.eventListenerSubscription.remove();
|
|
73
|
-
this.eventListenerSubscription = null;
|
|
74
|
-
}
|
|
75
|
-
this.hasSetupListeners = false;
|
|
76
|
-
this.pendingCalls = [];
|
|
77
|
-
this.pendingClickEvents = [];
|
|
78
|
-
}
|
|
79
|
-
async initialize(projectId) {
|
|
80
|
-
if (this.initializationPromise) {
|
|
81
|
-
if (this.initializedProjectId === projectId) {
|
|
82
|
-
return this.initializationPromise;
|
|
83
|
-
} else {
|
|
84
|
-
console.warn(`MarketapSDK already initialized with projectId '${this.initializedProjectId}'. ` + `Ignoring re-initialization with '${projectId}'.`);
|
|
85
|
-
return this.initializationPromise;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
this.initializedProjectId = projectId;
|
|
89
|
-
this.initializationPromise = this.performInitialization(projectId);
|
|
90
|
-
return this.initializationPromise;
|
|
91
|
-
}
|
|
92
|
-
async performInitialization(projectId) {
|
|
93
|
-
try {
|
|
94
|
-
await MarketapSdk.initialize(projectId);
|
|
95
|
-
this.isInitialized = true;
|
|
96
|
-
const callsToExecute = [...this.pendingCalls];
|
|
97
|
-
this.pendingCalls = [];
|
|
98
|
-
for (const call of callsToExecute) {
|
|
99
|
-
try {
|
|
100
|
-
await call();
|
|
101
|
-
} catch (error) {
|
|
102
|
-
console.error('Failed to execute pending SDK call:', error);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
} catch (error) {
|
|
106
|
-
this.initializationPromise = null;
|
|
107
|
-
this.initializedProjectId = null;
|
|
108
|
-
this.isInitialized = false;
|
|
109
|
-
throw error;
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
async executeAfterInit(fn) {
|
|
113
|
-
if (this.isInitialized) {
|
|
114
|
-
return fn();
|
|
115
|
-
}
|
|
116
|
-
return new Promise((resolve, reject) => {
|
|
117
|
-
this.pendingCalls.push(async () => {
|
|
118
|
-
try {
|
|
119
|
-
const result = await fn();
|
|
120
|
-
resolve(result);
|
|
121
|
-
} catch (error) {
|
|
122
|
-
reject(error);
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
setLogLevel(logLevel) {
|
|
128
|
-
MarketapSdk.setLogLevel(logLevel);
|
|
129
|
-
}
|
|
130
|
-
async signup(params) {
|
|
131
|
-
return this.executeAfterInit(() => MarketapSdk.signup(params.userId, params.userProperties, params.eventProperties, params.persistUser));
|
|
132
|
-
}
|
|
133
|
-
async login(params) {
|
|
134
|
-
return this.executeAfterInit(() => MarketapSdk.login(params.userId, params.userProperties, params.eventProperties));
|
|
135
|
-
}
|
|
136
|
-
async logout(eventProperties) {
|
|
137
|
-
return this.executeAfterInit(() => MarketapSdk.logout(eventProperties));
|
|
138
|
-
}
|
|
139
|
-
async track(eventName, eventProperties) {
|
|
140
|
-
return this.executeAfterInit(() => MarketapSdk.track(eventName, eventProperties));
|
|
141
|
-
}
|
|
142
|
-
async trackPurchase(revenue, eventProperties) {
|
|
143
|
-
return this.executeAfterInit(() => MarketapSdk.trackPurchase(revenue, eventProperties));
|
|
144
|
-
}
|
|
145
|
-
async trackRevenue(eventName, revenue, eventProperties) {
|
|
146
|
-
return this.executeAfterInit(() => MarketapSdk.trackRevenue(eventName, revenue, eventProperties));
|
|
147
|
-
}
|
|
148
|
-
async trackPageView(eventProperties) {
|
|
149
|
-
return this.executeAfterInit(() => MarketapSdk.trackPageView(eventProperties));
|
|
150
|
-
}
|
|
151
|
-
async identify(userId, userProperties) {
|
|
152
|
-
return this.executeAfterInit(() => MarketapSdk.identify(userId, userProperties));
|
|
153
|
-
}
|
|
154
|
-
async resetIdentity() {
|
|
155
|
-
return this.executeAfterInit(() => MarketapSdk.resetIdentity());
|
|
156
|
-
}
|
|
157
|
-
async setClickHandler(handler) {
|
|
158
|
-
this.clickHandler = handler;
|
|
159
|
-
if (this.pendingClickEvents.length > 0) {
|
|
160
|
-
const pendingEvents = [...this.pendingClickEvents];
|
|
161
|
-
this.pendingClickEvents = [];
|
|
162
|
-
pendingEvents.forEach(event => {
|
|
163
|
-
try {
|
|
164
|
-
handler(event);
|
|
165
|
-
} catch (error) {
|
|
166
|
-
console.error('Failed to handle pending click event:', error);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
return MarketapSdk.setClickHandler();
|
|
171
|
-
}
|
|
172
|
-
async requestAuthorizationForPushNotifications() {
|
|
173
|
-
return MarketapSdk.requestAuthorizationForPushNotifications();
|
|
174
|
-
}
|
|
175
|
-
async setPushToken(token) {
|
|
176
|
-
// Fix Blocker: checkInitialized() 전면 제거 - 안전한 executeAfterInit 사용
|
|
177
|
-
return this.executeAfterInit(async () => {
|
|
178
|
-
if (_reactNative.Platform.OS === 'android') {
|
|
179
|
-
console.warn('setPushToken is not needed on Android - MarketapFirebaseMessagingService handles push notifications automatically');
|
|
180
|
-
return;
|
|
181
|
-
}
|
|
182
|
-
return MarketapSdk.setPushToken(token);
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
async getInitialNotification() {
|
|
186
|
-
try {
|
|
187
|
-
return await MarketapSdk.getInitialNotification();
|
|
188
|
-
} catch (error) {
|
|
189
|
-
console.error('Failed to get initial notification:', error);
|
|
190
|
-
return null;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
const Marketap = new MarketapSDK();
|
|
34
|
+
const Marketap = {
|
|
35
|
+
initialize: projectId => _marketapCore.marketapCore.initialize(projectId),
|
|
36
|
+
setLogLevel: logLevel => _marketapCore.marketapCore.setLogLevel(logLevel),
|
|
37
|
+
signup: params => _marketapCore.marketapCore.signup(params),
|
|
38
|
+
login: params => _marketapCore.marketapCore.login(params),
|
|
39
|
+
logout: eventProperties => _marketapCore.marketapCore.logout(eventProperties),
|
|
40
|
+
track: (eventName, eventProperties) => _marketapCore.marketapCore.track(eventName, eventProperties),
|
|
41
|
+
trackPurchase: (revenue, eventProperties) => _marketapCore.marketapCore.trackPurchase(revenue, eventProperties),
|
|
42
|
+
trackRevenue: (eventName, revenue, eventProperties) => _marketapCore.marketapCore.trackRevenue(eventName, revenue, eventProperties),
|
|
43
|
+
trackPageView: eventProperties => _marketapCore.marketapCore.trackPageView(eventProperties),
|
|
44
|
+
identify: (userId, userProperties) => _marketapCore.marketapCore.identify(userId, userProperties),
|
|
45
|
+
resetIdentity: () => _marketapCore.marketapCore.resetIdentity(),
|
|
46
|
+
setClickHandler: handler => _marketapCore.marketapCore.setClickHandler(handler),
|
|
47
|
+
requestAuthorizationForPushNotifications: () => _marketapCore.marketapCore.requestAuthorizationForPushNotifications(),
|
|
48
|
+
setDeviceOptIn: optIn => _marketapCore.marketapCore.setDeviceOptIn(optIn)
|
|
49
|
+
};
|
|
195
50
|
var _default = exports.default = Marketap;
|
|
196
51
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_MarketapWebBridge","_interopRequireDefault","require","_marketapCore","_types","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","e","__esModule","default","marketapCore","setInAppMessageListener","event","MarketapWebBridge","sendToActiveWebBridge","campaign","messageId","hasCustomClickHandler","Marketap","initialize","projectId","setLogLevel","logLevel","signup","params","login","logout","eventProperties","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","userId","userProperties","resetIdentity","setClickHandler","handler","requestAuthorizationForPushNotifications","setDeviceOptIn","optIn","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AACA,IAAAA,kBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AAgCA,IAAAE,MAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,MAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,MAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,MAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AAAwB,SAAAP,uBAAAgB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA9BxBG,0BAAY,CAACC,uBAAuB,CAAEC,KAAK,IAAK;EAC9CC,0BAAiB,CAACC,qBAAqB,CACrCF,KAAK,CAACG,QAAQ,EACdH,KAAK,CAACI,SAAS,EACfJ,KAAK,CAACK,qBACR,CAAC;AACH,CAAC,CAAC;AAEF,MAAMC,QAA8B,GAAG;EACrCC,UAAU,EAAGC,SAAS,IAAKV,0BAAY,CAACS,UAAU,CAACC,SAAS,CAAC;EAC7DC,WAAW,EAAGC,QAAQ,IAAKZ,0BAAY,CAACW,WAAW,CAACC,QAAQ,CAAC;EAC7DC,MAAM,EAAGC,MAAM,IAAKd,0BAAY,CAACa,MAAM,CAACC,MAAM,CAAC;EAC/CC,KAAK,EAAGD,MAAM,IAAKd,0BAAY,CAACe,KAAK,CAACD,MAAM,CAAC;EAC7CE,MAAM,EAAGC,eAAe,IAAKjB,0BAAY,CAACgB,MAAM,CAACC,eAAe,CAAC;EACjEC,KAAK,EAAEA,CAACC,SAAS,EAAEF,eAAe,KAChCjB,0BAAY,CAACkB,KAAK,CAACC,SAAS,EAAEF,eAAe,CAAC;EAChDG,aAAa,EAAEA,CAACC,OAAO,EAAEJ,eAAe,KACtCjB,0BAAY,CAACoB,aAAa,CAACC,OAAO,EAAEJ,eAAe,CAAC;EACtDK,YAAY,EAAEA,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,KAChDjB,0BAAY,CAACsB,YAAY,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,CAAC;EAChEM,aAAa,EAAGN,eAAe,IAAKjB,0BAAY,CAACuB,aAAa,CAACN,eAAe,CAAC;EAC/EO,QAAQ,EAAEA,CAACC,MAAM,EAAEC,cAAc,KAAK1B,0BAAY,CAACwB,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;EACnFC,aAAa,EAAEA,CAAA,KAAM3B,0BAAY,CAAC2B,aAAa,CAAC,CAAC;EACjDC,eAAe,EAAGC,OAAO,IAAK7B,0BAAY,CAAC4B,eAAe,CAACC,OAAO,CAAC;EACnEC,wCAAwC,EAAEA,CAAA,KACxC9B,0BAAY,CAAC8B,wCAAwC,CAAC,CAAC;EACzDC,cAAc,EAAGC,KAAK,IAAKhC,0BAAY,CAAC+B,cAAc,CAACC,KAAK;AAC9D,CAAC;AAAC,IAAAC,QAAA,GAAAxC,OAAA,CAAAM,OAAA,GAEaS,QAAQ","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.marketapCore = void 0;
|
|
7
|
+
var _MarketapCore = require("../core/MarketapCore");
|
|
8
|
+
const marketapCore = exports.marketapCore = new _MarketapCore.MarketapCore();
|
|
9
|
+
//# sourceMappingURL=marketapCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_MarketapCore","require","marketapCore","exports","MarketapCore"],"sourceRoot":"../../../src","sources":["internal/marketapCore.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAIE,0BAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _marketapCore = require("./marketapCore");
|
|
8
|
+
/// MarketapPlugin - 웹브릿지 및 내부 전용 API
|
|
9
|
+
class MarketapPlugin {
|
|
10
|
+
/// 웹브릿지에서 넘어온 이벤트임을 표시하여 트래킹
|
|
11
|
+
/// 네이티브 SDK가 이벤트가 웹브릿지에서 온 것임을 인지하고,
|
|
12
|
+
/// 인앱 메시지를 RN으로 다시 전달할 수 있도록 함
|
|
13
|
+
/// [handleInAppInReactNative] - true면 인앱 메시지를 RN으로 전달
|
|
14
|
+
trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties) {
|
|
15
|
+
return _marketapCore.marketapCore.trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// 유저 속성 설정 (userId 없이)
|
|
19
|
+
setUserProperties(userProperties) {
|
|
20
|
+
return _marketapCore.marketapCore.setUserProperties(userProperties);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// 인앱 메시지 노출 이벤트 트래킹
|
|
24
|
+
trackInAppImpression(campaignId, messageId, layoutSubType) {
|
|
25
|
+
return _marketapCore.marketapCore.trackInAppImpression(campaignId, messageId, layoutSubType);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// 인앱 메시지 클릭 이벤트 트래킹
|
|
29
|
+
trackInAppClick(campaignId, messageId, locationId, url, layoutSubType) {
|
|
30
|
+
return _marketapCore.marketapCore.trackInAppClick(campaignId, messageId, locationId, url, layoutSubType);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/// 캠페인 숨김 처리
|
|
34
|
+
hideCampaign(campaignId, hideType) {
|
|
35
|
+
return _marketapCore.marketapCore.hideCampaign(campaignId, hideType);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const marketapPlugin = new MarketapPlugin();
|
|
39
|
+
var _default = exports.default = marketapPlugin;
|
|
40
|
+
//# sourceMappingURL=marketapPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_marketapCore","require","MarketapPlugin","trackFromWebBridge","eventName","handleInAppInReactNative","eventProperties","marketapCore","setUserProperties","userProperties","trackInAppImpression","campaignId","messageId","layoutSubType","trackInAppClick","locationId","url","hideCampaign","hideType","marketapPlugin","_default","exports","default"],"sourceRoot":"../../../src","sources":["internal/marketapPlugin.ts"],"mappings":";;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA;AACA,MAAMC,cAAc,CAAC;EACnB;EACA;EACA;EACA;EACAC,kBAAkBA,CAChBC,SAAiB,EACjBC,wBAAiC,EACjCC,eAAqC,EACtB;IACf,OAAOC,0BAAY,CAACJ,kBAAkB,CACpCC,SAAS,EACTC,wBAAwB,EACxBC,eACF,CAAC;EACH;;EAEA;EACAE,iBAAiBA,CAACC,cAAmC,EAAiB;IACpE,OAAOF,0BAAY,CAACC,iBAAiB,CAACC,cAAc,CAAC;EACvD;;EAEA;EACAC,oBAAoBA,CAClBC,UAAkB,EAClBC,SAAiB,EACjBC,aAAsB,EACP;IACf,OAAON,0BAAY,CAACG,oBAAoB,CACtCC,UAAU,EACVC,SAAS,EACTC,aACF,CAAC;EACH;;EAEA;EACAC,eAAeA,CACbH,UAAkB,EAClBC,SAAiB,EACjBG,UAAkB,EAClBC,GAAY,EACZH,aAAsB,EACP;IACf,OAAON,0BAAY,CAACO,eAAe,CACjCH,UAAU,EACVC,SAAS,EACTG,UAAU,EACVC,GAAG,EACHH,aACF,CAAC;EACH;;EAEA;EACAI,YAAYA,CAACN,UAAkB,EAAEO,QAAiB,EAAiB;IACjE,OAAOX,0BAAY,CAACU,YAAY,CAACN,UAAU,EAAEO,QAAQ,CAAC;EACxD;AACF;AAEA,MAAMC,cAAc,GAAG,IAAIjB,cAAc,CAAC,CAAC;AAAC,IAAAkB,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE7BH,cAAc","ignoreList":[]}
|
package/lib/commonjs/version.js
CHANGED
|
@@ -5,5 +5,5 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.SDK_VERSION = void 0;
|
|
7
7
|
// This file is auto-generated by scripts/generate-version.js
|
|
8
|
-
const SDK_VERSION = exports.SDK_VERSION = '
|
|
8
|
+
const SDK_VERSION = exports.SDK_VERSION = '1.0.0';
|
|
9
9
|
//# sourceMappingURL=version.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDK_VERSION","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,
|
|
1
|
+
{"version":3,"names":["SDK_VERSION","exports"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":";;;;;;AAAA;AACO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG,OAAO","ignoreList":[]}
|
|
@@ -1,17 +1,101 @@
|
|
|
1
1
|
import { Platform } from 'react-native';
|
|
2
2
|
import { SDK_VERSION } from './version';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
this.
|
|
3
|
+
import marketapPlugin from './internal/marketapPlugin';
|
|
4
|
+
class InAppCampaign {
|
|
5
|
+
constructor(params) {
|
|
6
|
+
this.id = params.id;
|
|
7
|
+
this.layout = params.layout;
|
|
8
|
+
this.html = params.html;
|
|
9
|
+
this.triggerEventCondition = params.triggerEventCondition;
|
|
10
|
+
this.priority = params.priority;
|
|
11
|
+
this.updatedAt = params.updatedAt;
|
|
7
12
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
static fromJson(json) {
|
|
14
|
+
return new InAppCampaign({
|
|
15
|
+
id: String(json.id ?? ''),
|
|
16
|
+
layout: InAppCampaign.convertToStringDynamicMap(json.layout),
|
|
17
|
+
html: json.html,
|
|
18
|
+
triggerEventCondition: json.triggerEventCondition ? InAppCampaign.convertToStringDynamicMap(json.triggerEventCondition) : undefined,
|
|
19
|
+
priority: json.priority != null ? String(json.priority) : undefined,
|
|
20
|
+
updatedAt: json.updatedAt
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
toJson() {
|
|
24
|
+
return {
|
|
25
|
+
id: this.id,
|
|
26
|
+
layout: this.layout,
|
|
27
|
+
html: this.html,
|
|
28
|
+
triggerEventCondition: this.triggerEventCondition,
|
|
29
|
+
priority: this.priority,
|
|
30
|
+
updatedAt: this.updatedAt
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
static convertToStringDynamicMap(value) {
|
|
34
|
+
if (value && typeof value === 'object' && !Array.isArray(value)) {
|
|
35
|
+
const result = {};
|
|
36
|
+
Object.keys(value).forEach(key => {
|
|
37
|
+
const v = value[key];
|
|
38
|
+
if (Array.isArray(v)) {
|
|
39
|
+
result[String(key)] = InAppCampaign.convertList(v);
|
|
40
|
+
} else if (v && typeof v === 'object') {
|
|
41
|
+
result[String(key)] = InAppCampaign.convertToStringDynamicMap(v);
|
|
42
|
+
} else {
|
|
43
|
+
result[String(key)] = v;
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return result;
|
|
11
47
|
}
|
|
12
|
-
return
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
static convertList(list) {
|
|
51
|
+
return list.map(item => {
|
|
52
|
+
if (Array.isArray(item)) {
|
|
53
|
+
return InAppCampaign.convertList(item);
|
|
54
|
+
}
|
|
55
|
+
if (item && typeof item === 'object') {
|
|
56
|
+
return InAppCampaign.convertToStringDynamicMap(item);
|
|
57
|
+
}
|
|
58
|
+
return item;
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* WebView와 네이티브 SDK를 연결하는 브릿지.
|
|
65
|
+
*
|
|
66
|
+
* 사용 예시:
|
|
67
|
+
* const bridge = new MarketapWebBridge(
|
|
68
|
+
* (script) => webViewRef.current?.injectJavaScript(script),
|
|
69
|
+
* true
|
|
70
|
+
* );
|
|
71
|
+
*
|
|
72
|
+
* // WebView 메시지 수신 시
|
|
73
|
+
* bridge.handleMessage(event.nativeEvent.data);
|
|
74
|
+
*
|
|
75
|
+
* // unmount 시
|
|
76
|
+
* bridge.dispose();
|
|
77
|
+
*/
|
|
78
|
+
class MarketapWebBridge {
|
|
79
|
+
static activeInstance = null;
|
|
80
|
+
currentCampaign = null;
|
|
81
|
+
isDisposed = false;
|
|
82
|
+
handleInAppInWebView = true;
|
|
83
|
+
constructor(injectJavaScriptFunction, handleInAppInWebView = true) {
|
|
84
|
+
this.evaluateJavaScriptFunction = injectJavaScriptFunction;
|
|
85
|
+
this.handleInAppInWebView = handleInAppInWebView;
|
|
86
|
+
}
|
|
87
|
+
dispose() {
|
|
88
|
+
if (MarketapWebBridge.activeInstance === this) {
|
|
89
|
+
MarketapWebBridge.activeInstance = null;
|
|
90
|
+
}
|
|
91
|
+
this.currentCampaign = null;
|
|
92
|
+
this.isDisposed = true;
|
|
13
93
|
}
|
|
14
94
|
handleMessage(message) {
|
|
95
|
+
if (this.isDisposed) {
|
|
96
|
+
console.warn('[MarketapWebBridge] ignoring message - bridge is disposed');
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
15
99
|
let data;
|
|
16
100
|
try {
|
|
17
101
|
data = JSON.parse(message);
|
|
@@ -24,10 +108,10 @@ class MarketapWebBridgeClass {
|
|
|
24
108
|
}
|
|
25
109
|
const params = data.params || {};
|
|
26
110
|
const Marketap = require('./index').default;
|
|
27
|
-
console.log(`[
|
|
111
|
+
console.log(`[MarketapWebBridge] ${type}: ${JSON.stringify(params)}`);
|
|
28
112
|
switch (type) {
|
|
29
113
|
case 'track':
|
|
30
|
-
this.handleTrack(
|
|
114
|
+
this.handleTrack(params);
|
|
31
115
|
break;
|
|
32
116
|
case 'identify':
|
|
33
117
|
this.handleIdentify(Marketap, params);
|
|
@@ -38,17 +122,63 @@ class MarketapWebBridgeClass {
|
|
|
38
122
|
case 'marketapBridgeCheck':
|
|
39
123
|
this.handleBridgeCheck();
|
|
40
124
|
break;
|
|
125
|
+
case 'inAppMessageImpression':
|
|
126
|
+
this.handleInAppImpression(params);
|
|
127
|
+
break;
|
|
128
|
+
case 'inAppMessageClick':
|
|
129
|
+
this.handleInAppClick(params);
|
|
130
|
+
break;
|
|
131
|
+
case 'inAppMessageHide':
|
|
132
|
+
this.handleInAppHide(params);
|
|
133
|
+
break;
|
|
134
|
+
case 'inAppMessageTrack':
|
|
135
|
+
this.handleInAppTrack(Marketap, params);
|
|
136
|
+
break;
|
|
137
|
+
case 'inAppMessageSetUserProperties':
|
|
138
|
+
this.handleInAppSetUserProperties(params);
|
|
139
|
+
break;
|
|
41
140
|
default:
|
|
42
141
|
console.warn(`[MarketapWebBridge] Unknown event type: '${String(type)}'`);
|
|
43
142
|
}
|
|
44
143
|
}
|
|
45
|
-
|
|
144
|
+
showInAppMessage(campaignJson, messageId, hasCustomClickHandler) {
|
|
145
|
+
if (this.isDisposed) {
|
|
146
|
+
console.warn('[MarketapWebBridge] ignoring message - bridge is disposed');
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
const campaign = InAppCampaign.fromJson(campaignJson);
|
|
151
|
+
this.currentCampaign = campaign;
|
|
152
|
+
this.sendCampaignToWeb(campaign, messageId, hasCustomClickHandler);
|
|
153
|
+
} catch (error) {
|
|
154
|
+
console.error('[MarketapWebBridge] failed to show in-app message', error);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
sendCampaignToWeb(campaign, messageId, hasCustomClickHandler) {
|
|
158
|
+
const campaignJson = JSON.stringify(campaign.toJson());
|
|
159
|
+
const script = `
|
|
160
|
+
window.postMessage({
|
|
161
|
+
type: 'marketapShowInAppMessage',
|
|
162
|
+
campaign: ${campaignJson},
|
|
163
|
+
messageId: '${messageId}',
|
|
164
|
+
hasCustomClickHandler: ${hasCustomClickHandler}
|
|
165
|
+
}, '*');
|
|
166
|
+
`;
|
|
167
|
+
this.evaluateJavaScriptFunction(script);
|
|
168
|
+
}
|
|
169
|
+
handleTrack(params) {
|
|
46
170
|
const eventName = params.eventName;
|
|
47
171
|
const eventProperties = params.eventProperties;
|
|
48
172
|
if (eventName) {
|
|
49
|
-
|
|
173
|
+
if (this.handleInAppInWebView) {
|
|
174
|
+
MarketapWebBridge.setActiveInstance(this);
|
|
175
|
+
}
|
|
176
|
+
marketapPlugin.trackFromWebBridge(eventName, this.handleInAppInWebView, eventProperties);
|
|
50
177
|
}
|
|
51
178
|
}
|
|
179
|
+
static setActiveInstance(instance) {
|
|
180
|
+
MarketapWebBridge.activeInstance = instance;
|
|
181
|
+
}
|
|
52
182
|
handleIdentify(Marketap, params) {
|
|
53
183
|
const userId = params.userId;
|
|
54
184
|
const userProperties = params.userProperties;
|
|
@@ -57,7 +187,6 @@ class MarketapWebBridgeClass {
|
|
|
57
187
|
}
|
|
58
188
|
}
|
|
59
189
|
handleBridgeCheck() {
|
|
60
|
-
const injectJavaScriptFunction = this.getInjectJavaScriptFunction();
|
|
61
190
|
const script = `
|
|
62
191
|
window.postMessage({
|
|
63
192
|
type: 'marketapBridgeAck',
|
|
@@ -68,9 +197,69 @@ class MarketapWebBridgeClass {
|
|
|
68
197
|
}
|
|
69
198
|
}, '*');
|
|
70
199
|
`;
|
|
71
|
-
|
|
200
|
+
this.evaluateJavaScriptFunction(script);
|
|
201
|
+
}
|
|
202
|
+
handleInAppImpression(params) {
|
|
203
|
+
const campaignId = params.campaignId;
|
|
204
|
+
const messageId = params.messageId;
|
|
205
|
+
if (!campaignId || !messageId) {
|
|
206
|
+
console.warn('[MarketapWebBridge] inAppMessageImpression missing required params');
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
if (this.currentCampaign && this.currentCampaign.id === campaignId) {
|
|
210
|
+
marketapPlugin.trackInAppImpression(campaignId, messageId, this.currentCampaign.layout?.layoutSubType);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
handleInAppClick(params) {
|
|
214
|
+
const campaignId = params.campaignId;
|
|
215
|
+
const messageId = params.messageId;
|
|
216
|
+
const locationId = params.locationId;
|
|
217
|
+
const url = params.url;
|
|
218
|
+
if (!campaignId || !messageId || !locationId) {
|
|
219
|
+
console.warn('[MarketapWebBridge] inAppMessageClick missing required params');
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
if (this.currentCampaign && this.currentCampaign.id === campaignId) {
|
|
223
|
+
marketapPlugin.trackInAppClick(campaignId, messageId, locationId, url, this.currentCampaign.layout?.layoutSubType);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
handleInAppHide(params) {
|
|
227
|
+
const campaignId = params.campaignId;
|
|
228
|
+
const hideType = params.hideType;
|
|
229
|
+
if (!campaignId) {
|
|
230
|
+
console.warn('[MarketapWebBridge] inAppMessageHide missing campaignId');
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
marketapPlugin.hideCampaign(campaignId, hideType);
|
|
234
|
+
if (this.currentCampaign && this.currentCampaign.id === campaignId) {
|
|
235
|
+
this.currentCampaign = null;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
handleInAppTrack(Marketap, params) {
|
|
239
|
+
const eventName = params.eventName;
|
|
240
|
+
const eventProperties = params.eventProperties;
|
|
241
|
+
if (!eventName) {
|
|
242
|
+
console.warn('[MarketapWebBridge] inAppMessageTrack missing eventName');
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
Marketap.track(eventName, eventProperties);
|
|
246
|
+
}
|
|
247
|
+
handleInAppSetUserProperties(params) {
|
|
248
|
+
const userProperties = params.userProperties;
|
|
249
|
+
if (!userProperties) {
|
|
250
|
+
console.warn('[MarketapWebBridge] inAppMessageSetUserProperties missing userProperties');
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
253
|
+
marketapPlugin.setUserProperties(userProperties);
|
|
254
|
+
}
|
|
255
|
+
static sendToActiveWebBridge(campaign, messageId, hasCustomClickHandler) {
|
|
256
|
+
const activeInstance = MarketapWebBridge.activeInstance;
|
|
257
|
+
if (activeInstance !== null) {
|
|
258
|
+
activeInstance.showInAppMessage(campaign, messageId, hasCustomClickHandler);
|
|
259
|
+
} else {
|
|
260
|
+
console.warn('[MarketapWebBridge] no active web bridge instance available');
|
|
261
|
+
}
|
|
72
262
|
}
|
|
73
263
|
}
|
|
74
|
-
const MarketapWebBridge = new MarketapWebBridgeClass();
|
|
75
264
|
export default MarketapWebBridge;
|
|
76
265
|
//# sourceMappingURL=MarketapWebBridge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","SDK_VERSION","
|
|
1
|
+
{"version":3,"names":["Platform","SDK_VERSION","marketapPlugin","InAppCampaign","constructor","params","id","layout","html","triggerEventCondition","priority","updatedAt","fromJson","json","String","convertToStringDynamicMap","undefined","toJson","value","Array","isArray","result","Object","keys","forEach","key","v","convertList","list","map","item","MarketapWebBridge","activeInstance","currentCampaign","isDisposed","handleInAppInWebView","injectJavaScriptFunction","evaluateJavaScriptFunction","dispose","handleMessage","message","console","warn","data","JSON","parse","error","type","Marketap","require","default","log","stringify","handleTrack","handleIdentify","resetIdentity","handleBridgeCheck","handleInAppImpression","handleInAppClick","handleInAppHide","handleInAppTrack","handleInAppSetUserProperties","showInAppMessage","campaignJson","messageId","hasCustomClickHandler","campaign","sendCampaignToWeb","script","eventName","eventProperties","setActiveInstance","trackFromWebBridge","instance","userId","userProperties","identify","OS","campaignId","trackInAppImpression","layoutSubType","locationId","url","trackInAppClick","hideType","hideCampaign","track","setUserProperties","sendToActiveWebBridge"],"sourceRoot":"../../src","sources":["MarketapWebBridge.ts"],"mappings":"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","ignoreList":[]}
|