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
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
2
|
+
const LINKING_ERROR = `The package 'react-native-marketap-sdk' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
3
|
+
ios: "- You have run 'cd ios && pod install'\n",
|
|
4
|
+
default: ''
|
|
5
|
+
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
6
|
+
const MarketapSdkModule = NativeModules.MarketapSdk;
|
|
7
|
+
if (!MarketapSdkModule) {
|
|
8
|
+
console.error(`react-native-marketap-sdk: Native module not found (MarketapSdk). ` + `Did you run pod install (iOS) / rebuild? Platform=${Platform.OS}`);
|
|
9
|
+
}
|
|
10
|
+
const MarketapSdk = MarketapSdkModule ? MarketapSdkModule : new Proxy({}, {
|
|
11
|
+
get() {
|
|
12
|
+
console.error(LINKING_ERROR);
|
|
13
|
+
return () => Promise.resolve();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const eventEmitter = new NativeEventEmitter(MarketapSdk);
|
|
17
|
+
export class MarketapCore {
|
|
18
|
+
isInitialized = false;
|
|
19
|
+
hasSetupListeners = false;
|
|
20
|
+
pendingCalls = [];
|
|
21
|
+
pendingClickEvents = [];
|
|
22
|
+
initializationPromise = null;
|
|
23
|
+
initializedProjectId = null;
|
|
24
|
+
constructor() {
|
|
25
|
+
this.setupEventListeners();
|
|
26
|
+
}
|
|
27
|
+
setInAppMessageListener(listener) {
|
|
28
|
+
this.inAppMessageListener = listener;
|
|
29
|
+
}
|
|
30
|
+
setupEventListeners() {
|
|
31
|
+
if (this.hasSetupListeners) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.hasSetupListeners = true;
|
|
35
|
+
this.clickEventListenerSubscription = eventEmitter.addListener('MarketapClickEvent', event => {
|
|
36
|
+
if (this.clickHandler) {
|
|
37
|
+
this.clickHandler(event);
|
|
38
|
+
} else {
|
|
39
|
+
this.pendingClickEvents.push(event);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
this.inAppMessageEventListenerSubscription = eventEmitter.addListener('MarketapInAppMessageEvent', event => {
|
|
43
|
+
this.inAppMessageListener?.(event);
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
cleanup() {
|
|
47
|
+
if (this.clickEventListenerSubscription) {
|
|
48
|
+
this.clickEventListenerSubscription.remove();
|
|
49
|
+
this.clickEventListenerSubscription = null;
|
|
50
|
+
}
|
|
51
|
+
if (this.inAppMessageEventListenerSubscription) {
|
|
52
|
+
this.inAppMessageEventListenerSubscription.remove();
|
|
53
|
+
this.inAppMessageEventListenerSubscription = null;
|
|
54
|
+
}
|
|
55
|
+
this.hasSetupListeners = false;
|
|
56
|
+
this.pendingCalls = [];
|
|
57
|
+
this.pendingClickEvents = [];
|
|
58
|
+
}
|
|
59
|
+
async initialize(projectId) {
|
|
60
|
+
if (this.initializationPromise) {
|
|
61
|
+
if (this.initializedProjectId === projectId) {
|
|
62
|
+
return this.initializationPromise;
|
|
63
|
+
}
|
|
64
|
+
console.warn(`MarketapSDK already initialized with projectId '${this.initializedProjectId}'. ` + `Ignoring re-initialization with '${projectId}'.`);
|
|
65
|
+
return this.initializationPromise;
|
|
66
|
+
}
|
|
67
|
+
this.initializedProjectId = projectId;
|
|
68
|
+
this.initializationPromise = this.performInitialization(projectId);
|
|
69
|
+
return this.initializationPromise;
|
|
70
|
+
}
|
|
71
|
+
async performInitialization(projectId) {
|
|
72
|
+
try {
|
|
73
|
+
await MarketapSdk.initialize({
|
|
74
|
+
projectId: projectId
|
|
75
|
+
});
|
|
76
|
+
this.isInitialized = true;
|
|
77
|
+
const callsToExecute = [...this.pendingCalls];
|
|
78
|
+
this.pendingCalls = [];
|
|
79
|
+
for (const call of callsToExecute) {
|
|
80
|
+
try {
|
|
81
|
+
await call();
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.error('Failed to execute pending SDK call:', error);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
} catch (error) {
|
|
87
|
+
this.initializationPromise = null;
|
|
88
|
+
this.initializedProjectId = null;
|
|
89
|
+
this.isInitialized = false;
|
|
90
|
+
console.error('MarketapSDK:', error);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
async executeAfterInit(fn) {
|
|
94
|
+
if (this.isInitialized) {
|
|
95
|
+
return fn().catch(error => {
|
|
96
|
+
console.error('MarketapSDK:', error);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return new Promise(resolve => {
|
|
100
|
+
this.pendingCalls.push(async () => {
|
|
101
|
+
try {
|
|
102
|
+
const result = await fn();
|
|
103
|
+
resolve(result);
|
|
104
|
+
} catch (error) {
|
|
105
|
+
console.error('MarketapSDK:', error);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
setLogLevel(logLevel) {
|
|
111
|
+
MarketapSdk.setLogLevel({
|
|
112
|
+
logLevel: logLevel
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
signup(params) {
|
|
116
|
+
return this.executeAfterInit(() => MarketapSdk.signup({
|
|
117
|
+
userId: params.userId,
|
|
118
|
+
userProperties: params.userProperties,
|
|
119
|
+
eventProperties: params.eventProperties,
|
|
120
|
+
persistUser: params.persistUser
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
login(params) {
|
|
124
|
+
return this.executeAfterInit(() => MarketapSdk.login({
|
|
125
|
+
userId: params.userId,
|
|
126
|
+
userProperties: params.userProperties,
|
|
127
|
+
eventProperties: params.eventProperties
|
|
128
|
+
}));
|
|
129
|
+
}
|
|
130
|
+
logout(eventProperties) {
|
|
131
|
+
return this.executeAfterInit(() => MarketapSdk.logout({
|
|
132
|
+
eventProperties: eventProperties
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
track(eventName, eventProperties) {
|
|
136
|
+
return this.executeAfterInit(() => MarketapSdk.track({
|
|
137
|
+
eventName: eventName,
|
|
138
|
+
eventProperties: eventProperties
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
trackPurchase(revenue, eventProperties) {
|
|
142
|
+
return this.executeAfterInit(() => MarketapSdk.trackPurchase({
|
|
143
|
+
revenue: revenue,
|
|
144
|
+
eventProperties: eventProperties
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
trackRevenue(eventName, revenue, eventProperties) {
|
|
148
|
+
return this.executeAfterInit(() => MarketapSdk.trackRevenue({
|
|
149
|
+
eventName: eventName,
|
|
150
|
+
revenue: revenue,
|
|
151
|
+
eventProperties: eventProperties
|
|
152
|
+
}));
|
|
153
|
+
}
|
|
154
|
+
trackPageView(eventProperties) {
|
|
155
|
+
return this.executeAfterInit(() => MarketapSdk.trackPageView({
|
|
156
|
+
eventProperties: eventProperties
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
identify(userId, userProperties) {
|
|
160
|
+
return this.executeAfterInit(() => MarketapSdk.identify({
|
|
161
|
+
userId: userId,
|
|
162
|
+
userProperties: userProperties
|
|
163
|
+
}));
|
|
164
|
+
}
|
|
165
|
+
resetIdentity() {
|
|
166
|
+
return this.executeAfterInit(() => MarketapSdk.resetIdentity());
|
|
167
|
+
}
|
|
168
|
+
async setClickHandler(handler) {
|
|
169
|
+
this.clickHandler = handler;
|
|
170
|
+
if (this.pendingClickEvents.length > 0) {
|
|
171
|
+
const pendingEvents = [...this.pendingClickEvents];
|
|
172
|
+
this.pendingClickEvents = [];
|
|
173
|
+
pendingEvents.forEach(event => {
|
|
174
|
+
try {
|
|
175
|
+
handler(event);
|
|
176
|
+
} catch (error) {
|
|
177
|
+
console.error('Failed to handle pending click event:', error);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return MarketapSdk.setClickHandler();
|
|
182
|
+
}
|
|
183
|
+
requestAuthorizationForPushNotifications() {
|
|
184
|
+
return MarketapSdk.requestAuthorizationForPushNotifications();
|
|
185
|
+
}
|
|
186
|
+
setDeviceOptIn(optIn) {
|
|
187
|
+
return this.executeAfterInit(() => MarketapSdk.setDeviceOptIn({
|
|
188
|
+
optIn
|
|
189
|
+
}));
|
|
190
|
+
}
|
|
191
|
+
trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties) {
|
|
192
|
+
return this.executeAfterInit(() => MarketapSdk.trackFromWebBridge({
|
|
193
|
+
eventName: eventName,
|
|
194
|
+
eventProperties: eventProperties,
|
|
195
|
+
handleInAppInReactNative: handleInAppInReactNative
|
|
196
|
+
}));
|
|
197
|
+
}
|
|
198
|
+
setUserProperties(userProperties) {
|
|
199
|
+
return this.executeAfterInit(() => MarketapSdk.setUserProperties({
|
|
200
|
+
userProperties: userProperties
|
|
201
|
+
}));
|
|
202
|
+
}
|
|
203
|
+
trackInAppImpression(campaignId, messageId, layoutSubType) {
|
|
204
|
+
return this.executeAfterInit(() => MarketapSdk.trackInAppImpression({
|
|
205
|
+
campaignId: campaignId,
|
|
206
|
+
messageId: messageId,
|
|
207
|
+
layoutSubType: layoutSubType
|
|
208
|
+
}));
|
|
209
|
+
}
|
|
210
|
+
trackInAppClick(campaignId, messageId, locationId, url, layoutSubType) {
|
|
211
|
+
return this.executeAfterInit(() => MarketapSdk.trackInAppClick({
|
|
212
|
+
campaignId: campaignId,
|
|
213
|
+
messageId: messageId,
|
|
214
|
+
locationId: locationId,
|
|
215
|
+
url: url,
|
|
216
|
+
layoutSubType: layoutSubType
|
|
217
|
+
}));
|
|
218
|
+
}
|
|
219
|
+
hideCampaign(campaignId, hideType) {
|
|
220
|
+
return this.executeAfterInit(() => MarketapSdk.hideCampaign({
|
|
221
|
+
campaignId: campaignId,
|
|
222
|
+
hideType: hideType
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=MarketapCore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeEventEmitter","NativeModules","Platform","LINKING_ERROR","select","ios","default","MarketapSdkModule","MarketapSdk","console","error","OS","Proxy","get","Promise","resolve","eventEmitter","MarketapCore","isInitialized","hasSetupListeners","pendingCalls","pendingClickEvents","initializationPromise","initializedProjectId","constructor","setupEventListeners","setInAppMessageListener","listener","inAppMessageListener","clickEventListenerSubscription","addListener","event","clickHandler","push","inAppMessageEventListenerSubscription","cleanup","remove","initialize","projectId","warn","performInitialization","callsToExecute","call","executeAfterInit","fn","catch","result","setLogLevel","logLevel","signup","params","userId","userProperties","eventProperties","persistUser","login","logout","track","eventName","trackPurchase","revenue","trackRevenue","trackPageView","identify","resetIdentity","setClickHandler","handler","length","pendingEvents","forEach","requestAuthorizationForPushNotifications","setDeviceOptIn","optIn","trackFromWebBridge","handleInAppInReactNative","setUserProperties","trackInAppImpression","campaignId","messageId","layoutSubType","trackInAppClick","locationId","url","hideCampaign","hideType"],"sourceRoot":"../../../src","sources":["core/MarketapCore.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,168 +1,24 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
6
|
-
|
|
7
|
-
// Force use legacy bridge for now - TurboModule implementation incomplete
|
|
8
|
-
const MarketapSdkModule = NativeModules.MarketapSdk;
|
|
9
|
-
if (!MarketapSdkModule) {
|
|
10
|
-
throw new Error(`react-native-marketap-sdk: Native module not found (MarketapSdk). ` + `Did you run pod install (iOS) / rebuild? Platform=${Platform.OS}`);
|
|
11
|
-
}
|
|
12
|
-
const MarketapSdk = MarketapSdkModule ? MarketapSdkModule : new Proxy({}, {
|
|
13
|
-
get() {
|
|
14
|
-
throw new Error(LINKING_ERROR);
|
|
15
|
-
}
|
|
1
|
+
import MarketapWebBridge from './MarketapWebBridge';
|
|
2
|
+
import { marketapCore } from './internal/marketapCore';
|
|
3
|
+
marketapCore.setInAppMessageListener(event => {
|
|
4
|
+
MarketapWebBridge.sendToActiveWebBridge(event.campaign, event.messageId, event.hasCustomClickHandler);
|
|
16
5
|
});
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
this.eventListenerSubscription = eventEmitter.addListener('MarketapClickEvent', event => {
|
|
34
|
-
if (this.clickHandler) {
|
|
35
|
-
this.clickHandler(event);
|
|
36
|
-
} else {
|
|
37
|
-
this.pendingClickEvents.push(event);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
cleanup() {
|
|
42
|
-
if (this.eventListenerSubscription) {
|
|
43
|
-
this.eventListenerSubscription.remove();
|
|
44
|
-
this.eventListenerSubscription = null;
|
|
45
|
-
}
|
|
46
|
-
this.hasSetupListeners = false;
|
|
47
|
-
this.pendingCalls = [];
|
|
48
|
-
this.pendingClickEvents = [];
|
|
49
|
-
}
|
|
50
|
-
async initialize(projectId) {
|
|
51
|
-
if (this.initializationPromise) {
|
|
52
|
-
if (this.initializedProjectId === projectId) {
|
|
53
|
-
return this.initializationPromise;
|
|
54
|
-
} else {
|
|
55
|
-
console.warn(`MarketapSDK already initialized with projectId '${this.initializedProjectId}'. ` + `Ignoring re-initialization with '${projectId}'.`);
|
|
56
|
-
return this.initializationPromise;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
this.initializedProjectId = projectId;
|
|
60
|
-
this.initializationPromise = this.performInitialization(projectId);
|
|
61
|
-
return this.initializationPromise;
|
|
62
|
-
}
|
|
63
|
-
async performInitialization(projectId) {
|
|
64
|
-
try {
|
|
65
|
-
await MarketapSdk.initialize(projectId);
|
|
66
|
-
this.isInitialized = true;
|
|
67
|
-
const callsToExecute = [...this.pendingCalls];
|
|
68
|
-
this.pendingCalls = [];
|
|
69
|
-
for (const call of callsToExecute) {
|
|
70
|
-
try {
|
|
71
|
-
await call();
|
|
72
|
-
} catch (error) {
|
|
73
|
-
console.error('Failed to execute pending SDK call:', error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
} catch (error) {
|
|
77
|
-
this.initializationPromise = null;
|
|
78
|
-
this.initializedProjectId = null;
|
|
79
|
-
this.isInitialized = false;
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
async executeAfterInit(fn) {
|
|
84
|
-
if (this.isInitialized) {
|
|
85
|
-
return fn();
|
|
86
|
-
}
|
|
87
|
-
return new Promise((resolve, reject) => {
|
|
88
|
-
this.pendingCalls.push(async () => {
|
|
89
|
-
try {
|
|
90
|
-
const result = await fn();
|
|
91
|
-
resolve(result);
|
|
92
|
-
} catch (error) {
|
|
93
|
-
reject(error);
|
|
94
|
-
}
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
setLogLevel(logLevel) {
|
|
99
|
-
MarketapSdk.setLogLevel(logLevel);
|
|
100
|
-
}
|
|
101
|
-
async signup(params) {
|
|
102
|
-
return this.executeAfterInit(() => MarketapSdk.signup(params.userId, params.userProperties, params.eventProperties, params.persistUser));
|
|
103
|
-
}
|
|
104
|
-
async login(params) {
|
|
105
|
-
return this.executeAfterInit(() => MarketapSdk.login(params.userId, params.userProperties, params.eventProperties));
|
|
106
|
-
}
|
|
107
|
-
async logout(eventProperties) {
|
|
108
|
-
return this.executeAfterInit(() => MarketapSdk.logout(eventProperties));
|
|
109
|
-
}
|
|
110
|
-
async track(eventName, eventProperties) {
|
|
111
|
-
return this.executeAfterInit(() => MarketapSdk.track(eventName, eventProperties));
|
|
112
|
-
}
|
|
113
|
-
async trackPurchase(revenue, eventProperties) {
|
|
114
|
-
return this.executeAfterInit(() => MarketapSdk.trackPurchase(revenue, eventProperties));
|
|
115
|
-
}
|
|
116
|
-
async trackRevenue(eventName, revenue, eventProperties) {
|
|
117
|
-
return this.executeAfterInit(() => MarketapSdk.trackRevenue(eventName, revenue, eventProperties));
|
|
118
|
-
}
|
|
119
|
-
async trackPageView(eventProperties) {
|
|
120
|
-
return this.executeAfterInit(() => MarketapSdk.trackPageView(eventProperties));
|
|
121
|
-
}
|
|
122
|
-
async identify(userId, userProperties) {
|
|
123
|
-
return this.executeAfterInit(() => MarketapSdk.identify(userId, userProperties));
|
|
124
|
-
}
|
|
125
|
-
async resetIdentity() {
|
|
126
|
-
return this.executeAfterInit(() => MarketapSdk.resetIdentity());
|
|
127
|
-
}
|
|
128
|
-
async setClickHandler(handler) {
|
|
129
|
-
this.clickHandler = handler;
|
|
130
|
-
if (this.pendingClickEvents.length > 0) {
|
|
131
|
-
const pendingEvents = [...this.pendingClickEvents];
|
|
132
|
-
this.pendingClickEvents = [];
|
|
133
|
-
pendingEvents.forEach(event => {
|
|
134
|
-
try {
|
|
135
|
-
handler(event);
|
|
136
|
-
} catch (error) {
|
|
137
|
-
console.error('Failed to handle pending click event:', error);
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
return MarketapSdk.setClickHandler();
|
|
142
|
-
}
|
|
143
|
-
async requestAuthorizationForPushNotifications() {
|
|
144
|
-
return MarketapSdk.requestAuthorizationForPushNotifications();
|
|
145
|
-
}
|
|
146
|
-
async setPushToken(token) {
|
|
147
|
-
// Fix Blocker: checkInitialized() 전면 제거 - 안전한 executeAfterInit 사용
|
|
148
|
-
return this.executeAfterInit(async () => {
|
|
149
|
-
if (Platform.OS === 'android') {
|
|
150
|
-
console.warn('setPushToken is not needed on Android - MarketapFirebaseMessagingService handles push notifications automatically');
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
return MarketapSdk.setPushToken(token);
|
|
154
|
-
});
|
|
155
|
-
}
|
|
156
|
-
async getInitialNotification() {
|
|
157
|
-
try {
|
|
158
|
-
return await MarketapSdk.getInitialNotification();
|
|
159
|
-
} catch (error) {
|
|
160
|
-
console.error('Failed to get initial notification:', error);
|
|
161
|
-
return null;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
const Marketap = new MarketapSDK();
|
|
6
|
+
const Marketap = {
|
|
7
|
+
initialize: projectId => marketapCore.initialize(projectId),
|
|
8
|
+
setLogLevel: logLevel => marketapCore.setLogLevel(logLevel),
|
|
9
|
+
signup: params => marketapCore.signup(params),
|
|
10
|
+
login: params => marketapCore.login(params),
|
|
11
|
+
logout: eventProperties => marketapCore.logout(eventProperties),
|
|
12
|
+
track: (eventName, eventProperties) => marketapCore.track(eventName, eventProperties),
|
|
13
|
+
trackPurchase: (revenue, eventProperties) => marketapCore.trackPurchase(revenue, eventProperties),
|
|
14
|
+
trackRevenue: (eventName, revenue, eventProperties) => marketapCore.trackRevenue(eventName, revenue, eventProperties),
|
|
15
|
+
trackPageView: eventProperties => marketapCore.trackPageView(eventProperties),
|
|
16
|
+
identify: (userId, userProperties) => marketapCore.identify(userId, userProperties),
|
|
17
|
+
resetIdentity: () => marketapCore.resetIdentity(),
|
|
18
|
+
setClickHandler: handler => marketapCore.setClickHandler(handler),
|
|
19
|
+
requestAuthorizationForPushNotifications: () => marketapCore.requestAuthorizationForPushNotifications(),
|
|
20
|
+
setDeviceOptIn: optIn => marketapCore.setDeviceOptIn(optIn)
|
|
21
|
+
};
|
|
166
22
|
export default Marketap;
|
|
167
23
|
export * from './types';
|
|
168
24
|
export { default as MarketapWebBridge } from './MarketapWebBridge';
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["MarketapWebBridge","marketapCore","setInAppMessageListener","event","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,OAAOA,iBAAiB,MAAM,qBAAqB;AACnD,SAASC,YAAY,QAAQ,yBAAyB;AAEtDA,YAAY,CAACC,uBAAuB,CAAEC,KAAK,IAAK;EAC9CH,iBAAiB,CAACI,qBAAqB,CACrCD,KAAK,CAACE,QAAQ,EACdF,KAAK,CAACG,SAAS,EACfH,KAAK,CAACI,qBACR,CAAC;AACH,CAAC,CAAC;AAEF,MAAMC,QAA8B,GAAG;EACrCC,UAAU,EAAGC,SAAS,IAAKT,YAAY,CAACQ,UAAU,CAACC,SAAS,CAAC;EAC7DC,WAAW,EAAGC,QAAQ,IAAKX,YAAY,CAACU,WAAW,CAACC,QAAQ,CAAC;EAC7DC,MAAM,EAAGC,MAAM,IAAKb,YAAY,CAACY,MAAM,CAACC,MAAM,CAAC;EAC/CC,KAAK,EAAGD,MAAM,IAAKb,YAAY,CAACc,KAAK,CAACD,MAAM,CAAC;EAC7CE,MAAM,EAAGC,eAAe,IAAKhB,YAAY,CAACe,MAAM,CAACC,eAAe,CAAC;EACjEC,KAAK,EAAEA,CAACC,SAAS,EAAEF,eAAe,KAChChB,YAAY,CAACiB,KAAK,CAACC,SAAS,EAAEF,eAAe,CAAC;EAChDG,aAAa,EAAEA,CAACC,OAAO,EAAEJ,eAAe,KACtChB,YAAY,CAACmB,aAAa,CAACC,OAAO,EAAEJ,eAAe,CAAC;EACtDK,YAAY,EAAEA,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,KAChDhB,YAAY,CAACqB,YAAY,CAACH,SAAS,EAAEE,OAAO,EAAEJ,eAAe,CAAC;EAChEM,aAAa,EAAGN,eAAe,IAAKhB,YAAY,CAACsB,aAAa,CAACN,eAAe,CAAC;EAC/EO,QAAQ,EAAEA,CAACC,MAAM,EAAEC,cAAc,KAAKzB,YAAY,CAACuB,QAAQ,CAACC,MAAM,EAAEC,cAAc,CAAC;EACnFC,aAAa,EAAEA,CAAA,KAAM1B,YAAY,CAAC0B,aAAa,CAAC,CAAC;EACjDC,eAAe,EAAGC,OAAO,IAAK5B,YAAY,CAAC2B,eAAe,CAACC,OAAO,CAAC;EACnEC,wCAAwC,EAAEA,CAAA,KACxC7B,YAAY,CAAC6B,wCAAwC,CAAC,CAAC;EACzDC,cAAc,EAAGC,KAAK,IAAK/B,YAAY,CAAC8B,cAAc,CAACC,KAAK;AAC9D,CAAC;AAED,eAAexB,QAAQ;AACvB,cAAc,SAAS;AACvB,SAASyB,OAAO,IAAIjC,iBAAiB,QAAQ,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MarketapCore","marketapCore"],"sourceRoot":"../../../src","sources":["internal/marketapCore.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,sBAAsB;AAEnD,OAAO,MAAMC,YAAY,GAAG,IAAID,YAAY,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { marketapCore } from './marketapCore';
|
|
2
|
+
|
|
3
|
+
/// MarketapPlugin - 웹브릿지 및 내부 전용 API
|
|
4
|
+
class MarketapPlugin {
|
|
5
|
+
/// 웹브릿지에서 넘어온 이벤트임을 표시하여 트래킹
|
|
6
|
+
/// 네이티브 SDK가 이벤트가 웹브릿지에서 온 것임을 인지하고,
|
|
7
|
+
/// 인앱 메시지를 RN으로 다시 전달할 수 있도록 함
|
|
8
|
+
/// [handleInAppInReactNative] - true면 인앱 메시지를 RN으로 전달
|
|
9
|
+
trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties) {
|
|
10
|
+
return marketapCore.trackFromWebBridge(eventName, handleInAppInReactNative, eventProperties);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// 유저 속성 설정 (userId 없이)
|
|
14
|
+
setUserProperties(userProperties) {
|
|
15
|
+
return marketapCore.setUserProperties(userProperties);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// 인앱 메시지 노출 이벤트 트래킹
|
|
19
|
+
trackInAppImpression(campaignId, messageId, layoutSubType) {
|
|
20
|
+
return marketapCore.trackInAppImpression(campaignId, messageId, layoutSubType);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// 인앱 메시지 클릭 이벤트 트래킹
|
|
24
|
+
trackInAppClick(campaignId, messageId, locationId, url, layoutSubType) {
|
|
25
|
+
return marketapCore.trackInAppClick(campaignId, messageId, locationId, url, layoutSubType);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// 캠페인 숨김 처리
|
|
29
|
+
hideCampaign(campaignId, hideType) {
|
|
30
|
+
return marketapCore.hideCampaign(campaignId, hideType);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const marketapPlugin = new MarketapPlugin();
|
|
34
|
+
export default marketapPlugin;
|
|
35
|
+
//# sourceMappingURL=marketapPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["marketapCore","MarketapPlugin","trackFromWebBridge","eventName","handleInAppInReactNative","eventProperties","setUserProperties","userProperties","trackInAppImpression","campaignId","messageId","layoutSubType","trackInAppClick","locationId","url","hideCampaign","hideType","marketapPlugin"],"sourceRoot":"../../../src","sources":["internal/marketapPlugin.ts"],"mappings":"AAAA,SAASA,YAAY,QAAQ,gBAAgB;;AAE7C;AACA,MAAMC,cAAc,CAAC;EACnB;EACA;EACA;EACA;EACAC,kBAAkBA,CAChBC,SAAiB,EACjBC,wBAAiC,EACjCC,eAAqC,EACtB;IACf,OAAOL,YAAY,CAACE,kBAAkB,CACpCC,SAAS,EACTC,wBAAwB,EACxBC,eACF,CAAC;EACH;;EAEA;EACAC,iBAAiBA,CAACC,cAAmC,EAAiB;IACpE,OAAOP,YAAY,CAACM,iBAAiB,CAACC,cAAc,CAAC;EACvD;;EAEA;EACAC,oBAAoBA,CAClBC,UAAkB,EAClBC,SAAiB,EACjBC,aAAsB,EACP;IACf,OAAOX,YAAY,CAACQ,oBAAoB,CACtCC,UAAU,EACVC,SAAS,EACTC,aACF,CAAC;EACH;;EAEA;EACAC,eAAeA,CACbH,UAAkB,EAClBC,SAAiB,EACjBG,UAAkB,EAClBC,GAAY,EACZH,aAAsB,EACP;IACf,OAAOX,YAAY,CAACY,eAAe,CACjCH,UAAU,EACVC,SAAS,EACTG,UAAU,EACVC,GAAG,EACHH,aACF,CAAC;EACH;;EAEA;EACAI,YAAYA,CAACN,UAAkB,EAAEO,QAAiB,EAAiB;IACjE,OAAOhB,YAAY,CAACe,YAAY,CAACN,UAAU,EAAEO,QAAQ,CAAC;EACxD;AACF;AAEA,MAAMC,cAAc,GAAG,IAAIhB,cAAc,CAAC,CAAC;AAE3C,eAAegB,cAAc","ignoreList":[]}
|
package/lib/module/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["SDK_VERSION"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":"AAAA;AACA,OAAO,MAAMA,WAAW,GAAG,
|
|
1
|
+
{"version":3,"names":["SDK_VERSION"],"sourceRoot":"../../src","sources":["version.ts"],"mappings":"AAAA;AACA,OAAO,MAAMA,WAAW,GAAG,OAAO","ignoreList":[]}
|
|
@@ -1,13 +1,40 @@
|
|
|
1
|
-
type
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
type EvaluateJavaScriptFunction = (script: string) => void;
|
|
2
|
+
/**
|
|
3
|
+
* WebView와 네이티브 SDK를 연결하는 브릿지.
|
|
4
|
+
*
|
|
5
|
+
* 사용 예시:
|
|
6
|
+
* const bridge = new MarketapWebBridge(
|
|
7
|
+
* (script) => webViewRef.current?.injectJavaScript(script),
|
|
8
|
+
* true
|
|
9
|
+
* );
|
|
10
|
+
*
|
|
11
|
+
* // WebView 메시지 수신 시
|
|
12
|
+
* bridge.handleMessage(event.nativeEvent.data);
|
|
13
|
+
*
|
|
14
|
+
* // unmount 시
|
|
15
|
+
* bridge.dispose();
|
|
16
|
+
*/
|
|
17
|
+
declare class MarketapWebBridge {
|
|
18
|
+
private static activeInstance;
|
|
19
|
+
private evaluateJavaScriptFunction;
|
|
20
|
+
private currentCampaign;
|
|
21
|
+
private isDisposed;
|
|
22
|
+
private handleInAppInWebView;
|
|
23
|
+
constructor(injectJavaScriptFunction: EvaluateJavaScriptFunction, handleInAppInWebView?: boolean);
|
|
24
|
+
dispose(): void;
|
|
6
25
|
handleMessage(message: string): void;
|
|
26
|
+
showInAppMessage(campaignJson: Record<string, any>, messageId: string, hasCustomClickHandler: boolean): void;
|
|
27
|
+
private sendCampaignToWeb;
|
|
7
28
|
private handleTrack;
|
|
29
|
+
private static setActiveInstance;
|
|
8
30
|
private handleIdentify;
|
|
9
31
|
private handleBridgeCheck;
|
|
32
|
+
private handleInAppImpression;
|
|
33
|
+
private handleInAppClick;
|
|
34
|
+
private handleInAppHide;
|
|
35
|
+
private handleInAppTrack;
|
|
36
|
+
private handleInAppSetUserProperties;
|
|
37
|
+
static sendToActiveWebBridge(campaign: Record<string, any>, messageId: string, hasCustomClickHandler: boolean): void;
|
|
10
38
|
}
|
|
11
|
-
declare const MarketapWebBridge: MarketapWebBridgeClass;
|
|
12
39
|
export default MarketapWebBridge;
|
|
13
40
|
//# sourceMappingURL=MarketapWebBridge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketapWebBridge.d.ts","sourceRoot":"","sources":["../../src/MarketapWebBridge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MarketapWebBridge.d.ts","sourceRoot":"","sources":["../../src/MarketapWebBridge.ts"],"names":[],"mappings":"AAqBA,KAAK,0BAA0B,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;AAiF3D;;;;;;;;;;;;;;GAcG;AACH,cAAM,iBAAiB;IACrB,OAAO,CAAC,MAAM,CAAC,cAAc,CAAkC;IAC/D,OAAO,CAAC,0BAA0B,CAA6B;IAC/D,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAAQ;gBAGlC,wBAAwB,EAAE,0BAA0B,EACpD,oBAAoB,GAAE,OAAc;IAMtC,OAAO,IAAI,IAAI;IAQf,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAoEpC,gBAAgB,CACd,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjC,SAAS,EAAE,MAAM,EACjB,qBAAqB,EAAE,OAAO,GAC7B,IAAI;IAeP,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAIhC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,iBAAiB;IAezB,OAAO,CAAC,qBAAqB;IAoB7B,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,4BAA4B;IAepC,MAAM,CAAC,qBAAqB,CAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,SAAS,EAAE,MAAM,EACjB,qBAAqB,EAAE,OAAO,GAC7B,IAAI;CAcR;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { MarketapClickHandler, MarketapLogLevel } from '../types';
|
|
2
|
+
type InAppMessageEvent = {
|
|
3
|
+
campaign: Record<string, any>;
|
|
4
|
+
messageId: string;
|
|
5
|
+
hasCustomClickHandler: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare class MarketapCore {
|
|
8
|
+
private clickHandler?;
|
|
9
|
+
private isInitialized;
|
|
10
|
+
private hasSetupListeners;
|
|
11
|
+
private pendingCalls;
|
|
12
|
+
private pendingClickEvents;
|
|
13
|
+
private initializationPromise;
|
|
14
|
+
private initializedProjectId;
|
|
15
|
+
private clickEventListenerSubscription?;
|
|
16
|
+
private inAppMessageEventListenerSubscription?;
|
|
17
|
+
private inAppMessageListener?;
|
|
18
|
+
constructor();
|
|
19
|
+
setInAppMessageListener(listener: (event: InAppMessageEvent) => void): void;
|
|
20
|
+
private setupEventListeners;
|
|
21
|
+
cleanup(): void;
|
|
22
|
+
initialize(projectId: string): Promise<void>;
|
|
23
|
+
private performInitialization;
|
|
24
|
+
private executeAfterInit;
|
|
25
|
+
setLogLevel(logLevel: MarketapLogLevel): void;
|
|
26
|
+
signup(params: {
|
|
27
|
+
userId: string;
|
|
28
|
+
userProperties?: Record<string, any>;
|
|
29
|
+
eventProperties?: Record<string, any>;
|
|
30
|
+
persistUser?: boolean;
|
|
31
|
+
}): Promise<void>;
|
|
32
|
+
login(params: {
|
|
33
|
+
userId: string;
|
|
34
|
+
userProperties?: Record<string, any>;
|
|
35
|
+
eventProperties?: Record<string, any>;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
logout(eventProperties?: Record<string, any>): Promise<void>;
|
|
38
|
+
track(eventName: string, eventProperties?: Record<string, any>): Promise<void>;
|
|
39
|
+
trackPurchase(revenue: number, eventProperties?: Record<string, any>): Promise<void>;
|
|
40
|
+
trackRevenue(eventName: string, revenue: number, eventProperties?: Record<string, any>): Promise<void>;
|
|
41
|
+
trackPageView(eventProperties?: Record<string, any>): Promise<void>;
|
|
42
|
+
identify(userId: string, userProperties?: Record<string, any>): Promise<void>;
|
|
43
|
+
resetIdentity(): Promise<void>;
|
|
44
|
+
setClickHandler(handler: MarketapClickHandler): Promise<void>;
|
|
45
|
+
requestAuthorizationForPushNotifications(): Promise<void>;
|
|
46
|
+
setDeviceOptIn(optIn: boolean | null): Promise<void>;
|
|
47
|
+
trackFromWebBridge(eventName: string, handleInAppInReactNative: boolean, eventProperties?: Record<string, any>): Promise<void>;
|
|
48
|
+
setUserProperties(userProperties: Record<string, any>): Promise<void>;
|
|
49
|
+
trackInAppImpression(campaignId: string, messageId: string, layoutSubType?: string): Promise<void>;
|
|
50
|
+
trackInAppClick(campaignId: string, messageId: string, locationId: string, url?: string, layoutSubType?: string): Promise<void>;
|
|
51
|
+
hideCampaign(campaignId: string, hideType?: string): Promise<void>;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=MarketapCore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MarketapCore.d.ts","sourceRoot":"","sources":["../../../src/core/MarketapCore.ts"],"names":[],"mappings":"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"}
|