tagworks-sdk-v1-react 1.1.20 → 1.1.22
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/LICENSE +3 -1
- package/README.md +35 -552
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/tagworkssdkv1/DataBundleModule.kt +340 -366
- package/android/src/main/java/com/tagworkssdkv1/OnCmsBannerViewManager.kt +15 -4
- package/android/src/main/java/com/tagworkssdkv1/TagWorksDeeplinkModule.kt +117 -0
- package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +417 -376
- package/android/src/main/java/com/tagworkssdkv1/TagWorksPopupModule.kt +22 -26
- package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Package.kt +3 -2
- package/ios/DataBundleModule.swift +8 -8
- package/ios/OnCmsBannerViewManager.swift +6 -5
- package/ios/TagWorksDeeplinkModule.swift +64 -0
- package/ios/TagWorksDeeplinkModuleBridge.m +19 -0
- package/ios/TagWorksModule.swift +113 -27
- package/ios/TagWorksModuleBridge.m +20 -2
- package/ios/TagWorksPopupModule.swift +41 -18
- package/ios/TagWorksPopupModuleBridge.m +2 -0
- package/lib/commonjs/RegisterOnCmsBannerView.js +10 -0
- package/lib/commonjs/RegisterOnCmsBannerView.js.map +1 -0
- package/lib/commonjs/TagWorksDeeplink.js +48 -0
- package/lib/commonjs/TagWorksDeeplink.js.map +1 -0
- package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js +135 -0
- package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
- package/lib/commonjs/index.js +36 -10
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/RegisterOnCmsBannerView.js +6 -0
- package/lib/module/RegisterOnCmsBannerView.js.map +1 -0
- package/lib/module/TagWorksDeeplink.js +44 -0
- package/lib/module/TagWorksDeeplink.js.map +1 -0
- package/lib/module/autoTrackers/ReactNavigationPageTracker.js +131 -0
- package/lib/module/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
- package/lib/module/index.js +15 -11
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/babel.config.d.ts +2 -0
- package/lib/typescript/commonjs/babel.config.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts +3 -0
- package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TagWorksDeeplink.d.ts +23 -0
- package/lib/typescript/commonjs/src/TagWorksDeeplink.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
- package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +9 -3
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/babel.config.d.ts +2 -0
- package/lib/typescript/module/babel.config.d.ts.map +1 -0
- package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts +3 -0
- package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts.map +1 -0
- package/lib/typescript/module/src/TagWorksDeeplink.d.ts +23 -0
- package/lib/typescript/module/src/TagWorksDeeplink.d.ts.map +1 -0
- package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
- package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +9 -3
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +28 -8
- package/src/RegisterOnCmsBannerView.js +5 -0
- package/src/TagWorksDeeplink.js +45 -0
- package/src/autoTrackers/ReactNavigationPageTracker.js +137 -0
- package/src/index.js +48 -0
- package/tagworks-sdk-v1-react.podspec +9 -2
- package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Module.kt +0 -25
- package/android/src/main/res/drawable/default_img.png +0 -0
- package/src/index.tsx +0 -27
|
@@ -5,446 +5,487 @@ import com.facebook.react.bridge.Callback
|
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
7
7
|
import com.facebook.react.bridge.ReactMethod
|
|
8
|
+
import com.facebook.react.bridge.ReadableArray
|
|
8
9
|
import com.facebook.react.bridge.ReadableMap
|
|
10
|
+
import com.facebook.react.bridge.UiThreadUtil
|
|
9
11
|
import com.obzen.tagworks.TagWorks
|
|
10
12
|
import com.obzen.tagworks.TagWorksConfig
|
|
11
|
-
import com.obzen.tagworks.
|
|
12
|
-
import com.obzen.tagworks.data.
|
|
13
|
-
import com.obzen.tagworks.data.
|
|
14
|
-
import com.obzen.tagworks.
|
|
15
|
-
import com.obzen.tagworks.
|
|
16
|
-
import com.obzen.tagworks.
|
|
13
|
+
import com.obzen.tagworks.common.Logger
|
|
14
|
+
import com.obzen.tagworks.event.data.DataBundle
|
|
15
|
+
import com.obzen.tagworks.event.data.Dimension
|
|
16
|
+
import com.obzen.tagworks.event.data.DimensionType
|
|
17
|
+
import com.obzen.tagworks.web.WebAppInterface
|
|
18
|
+
import com.obzen.tagworks.web.WebAppInterface.Companion.MessageHandlerName
|
|
19
|
+
import com.obzen.tagworks.web.WebAppOnCmsInterface
|
|
17
20
|
import org.json.JSONArray
|
|
18
21
|
import org.json.JSONObject
|
|
19
22
|
|
|
20
23
|
class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJavaModule(reactContext) {
|
|
21
24
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* config SDK 초기화 함수
|
|
31
|
-
*/
|
|
32
|
-
@ReactMethod
|
|
33
|
-
fun initializeTagWorks(
|
|
34
|
-
siteId:String,
|
|
35
|
-
baseUrl:String,
|
|
36
|
-
isUseIntervals:Boolean,
|
|
37
|
-
dispatchInterval:Double,
|
|
38
|
-
sessionTimeout:Double,
|
|
39
|
-
isManualDispatch:Boolean,
|
|
40
|
-
appVersion:String?,
|
|
41
|
-
appName:String?,
|
|
42
|
-
isUseDynamicParameter:Boolean
|
|
43
|
-
) {
|
|
44
|
-
val config = TagWorksConfig.Builder()
|
|
45
|
-
.setSiteId(siteId)
|
|
46
|
-
.setBaseUrl(baseUrl)
|
|
47
|
-
.setDispatchInterval(dispatchInterval.toLong())
|
|
48
|
-
.setSessionTimeOut(sessionTimeout.toLong()*1000)
|
|
49
|
-
.setAppVersion(appVersion)
|
|
50
|
-
.setAppName(appName)
|
|
51
|
-
.setManualDispatch(isManualDispatch)
|
|
52
|
-
.setIsUseIntervals(isUseIntervals)
|
|
53
|
-
.setIsUseDynamicParameter(isUseDynamicParameter)
|
|
54
|
-
.build()
|
|
55
|
-
|
|
56
|
-
TagWorks.initializeSdk(reactApplicationContext, config)
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* siteId, baseUrl SDK 초기화 함수
|
|
63
|
-
*/
|
|
64
|
-
@ReactMethod
|
|
65
|
-
fun initTagWorksWithSiteIdAndBaseUrl(siteId: String,baseUrl: String) {
|
|
66
|
-
TagWorks.initializeSdk(reactApplicationContext,siteId,baseUrl)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
@ReactMethod
|
|
71
|
-
fun setLogLevel(level:Int) {
|
|
72
|
-
TagWorks.getInstance().setLogLevel(level)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
@ReactMethod
|
|
76
|
-
fun setOptOut(isOptOut:Boolean) {
|
|
77
|
-
TagWorks.getInstance().optOut = isOptOut
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
@ReactMethod
|
|
81
|
-
fun setUserId(userId:String) {
|
|
82
|
-
TagWorks.getInstance().userId = userId
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
@ReactMethod
|
|
86
|
-
fun setVisitorId(visitorId:String) {
|
|
87
|
-
TagWorks.getInstance().visitorId =visitorId
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
@ReactMethod
|
|
91
|
-
fun setAdId(adId:String) {
|
|
92
|
-
TagWorks.getInstance().adId = adId
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
@ReactMethod
|
|
96
|
-
fun getAdId(callback: Callback) {
|
|
97
|
-
try {
|
|
98
|
-
callback.invoke(TagWorks.getInstance().adId)
|
|
99
|
-
}catch (e:Exception) {
|
|
100
|
-
callback.invoke("error :",e.message)
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
@ReactMethod
|
|
105
|
-
fun getVisitorId(callback: Callback) {
|
|
106
|
-
try {
|
|
107
|
-
callback.invoke(TagWorks.getInstance().visitorId)
|
|
108
|
-
}catch (e:Exception) {
|
|
109
|
-
callback.invoke("error :",e.message)
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
@ReactMethod
|
|
114
|
-
fun getSiteId(callback: Callback) {
|
|
115
|
-
try {
|
|
116
|
-
callback.invoke(TagWorks.getInstance().siteId)
|
|
117
|
-
} catch (e:Exception) {
|
|
118
|
-
callback.invoke("error :",e.message)
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
/**
|
|
124
|
-
* 공용 dimension 설정
|
|
125
|
-
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
@ReactMethod
|
|
129
|
-
fun setCommonDimensionWithDouble(index: Int,numValue:Double) {
|
|
130
|
-
TagWorks.getInstance().setCommonDimension(index,numValue)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
@ReactMethod
|
|
134
|
-
fun setCommonDimensionWithString(index: Int,value:String) {
|
|
135
|
-
TagWorks.getInstance().setCommonDimension(index,value)
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
@ReactMethod
|
|
139
|
-
fun setDynamicCommonDimensionWithDouble(key:String, numValue: Double) {
|
|
140
|
-
TagWorks.getInstance().setDynamicCommonDimension(key,numValue)
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
@ReactMethod
|
|
144
|
-
fun setDynamicCommonDimensionWithString(key: String, value:String) {
|
|
145
|
-
TagWorks.getInstance().setDynamicCommonDimension(key,value)
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
@ReactMethod
|
|
150
|
-
fun getCommonDimensions(callback: Callback) {
|
|
151
|
-
|
|
152
|
-
try {
|
|
153
|
-
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
154
|
-
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
25
|
+
/**
|
|
26
|
+
* js에서 호출하는 TagWorksModule 네이밍
|
|
27
|
+
*/
|
|
28
|
+
override fun getName(): String {
|
|
29
|
+
return "TagWorksModule"
|
|
30
|
+
}
|
|
155
31
|
|
|
156
|
-
|
|
157
|
-
|
|
32
|
+
/**
|
|
33
|
+
* config SDK 초기화 함수
|
|
34
|
+
*/
|
|
35
|
+
@ReactMethod
|
|
36
|
+
fun initializeTagWorks(
|
|
37
|
+
siteId:String,
|
|
38
|
+
baseUrl:String,
|
|
39
|
+
isUseIntervals:Boolean,
|
|
40
|
+
dispatchInterval:Double,
|
|
41
|
+
sessionTimeout:Double,
|
|
42
|
+
isManualDispatch:Boolean,
|
|
43
|
+
appVersion:String?,
|
|
44
|
+
appName:String?,
|
|
45
|
+
isUseDynamicParameter:Boolean,
|
|
46
|
+
deeplinkServerUrl: String
|
|
47
|
+
) {
|
|
48
|
+
val config = TagWorksConfig.Builder()
|
|
49
|
+
.setSiteId(siteId)
|
|
50
|
+
.setBaseUrl(baseUrl)
|
|
51
|
+
.setDispatchInterval(dispatchInterval.toLong())
|
|
52
|
+
.setSessionTimeOut(sessionTimeout.toLong()*1000)
|
|
53
|
+
.setAppVersion(appVersion)
|
|
54
|
+
.setAppName(appName)
|
|
55
|
+
.setManualDispatch(isManualDispatch)
|
|
56
|
+
.setIsUseIntervals(isUseIntervals)
|
|
57
|
+
.setIsUseDynamicParameter(isUseDynamicParameter)
|
|
58
|
+
.setDeeplinkServerUrl(deeplinkServerUrl)
|
|
59
|
+
.build()
|
|
60
|
+
|
|
61
|
+
TagWorks.initializeSdk(reactApplicationContext, config)
|
|
158
62
|
|
|
159
|
-
|
|
160
|
-
when (dimension.type) {
|
|
161
|
-
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
162
|
-
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
163
|
-
}
|
|
164
|
-
}
|
|
63
|
+
}
|
|
165
64
|
|
|
166
|
-
cDynamicDimensions.forEach { dimension ->
|
|
167
|
-
when (dimension.type) {
|
|
168
|
-
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.key,dimension.value)
|
|
169
|
-
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
65
|
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
66
|
+
/**
|
|
67
|
+
* siteId, baseUrl SDK 초기화 함수
|
|
68
|
+
*/
|
|
69
|
+
@ReactMethod
|
|
70
|
+
fun initTagWorksWithSiteIdAndBaseUrl(siteId: String,baseUrl: String) {
|
|
71
|
+
TagWorks.initializeSdk(reactApplicationContext,siteId,baseUrl)
|
|
72
|
+
}
|
|
176
73
|
|
|
177
|
-
val factWrapper = JSONObject().apply {
|
|
178
|
-
put("Fact", factDimensions)
|
|
179
|
-
}
|
|
180
74
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
75
|
+
@ReactMethod
|
|
76
|
+
fun setLogLevel(level:Int) {
|
|
77
|
+
TagWorks.getInstance().setLogLevel(level)
|
|
78
|
+
}
|
|
185
79
|
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
80
|
+
@ReactMethod
|
|
81
|
+
fun setOptOut(isOptOut:Boolean) {
|
|
82
|
+
TagWorks.getInstance().optOut = isOptOut
|
|
83
|
+
}
|
|
189
84
|
|
|
190
|
-
|
|
85
|
+
@ReactMethod
|
|
86
|
+
fun setUserId(userId:String) {
|
|
87
|
+
TagWorks.getInstance().userId = userId
|
|
88
|
+
}
|
|
191
89
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
e.printStackTrace()
|
|
196
|
-
callback.invoke(null)
|
|
90
|
+
@ReactMethod
|
|
91
|
+
fun setVisitorId(visitorId:String) {
|
|
92
|
+
TagWorks.getInstance().visitorId =visitorId
|
|
197
93
|
}
|
|
198
94
|
|
|
95
|
+
@ReactMethod
|
|
96
|
+
fun setAutoTrackingPage(autoTrackingPage: Boolean) {
|
|
97
|
+
TagWorks.getInstance().autoTrackingPage = autoTrackingPage
|
|
98
|
+
}
|
|
199
99
|
|
|
200
|
-
|
|
100
|
+
@ReactMethod
|
|
101
|
+
fun setAdId(adId:String) {
|
|
102
|
+
TagWorks.getInstance().adId = adId
|
|
103
|
+
}
|
|
201
104
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
105
|
+
@ReactMethod
|
|
106
|
+
fun getAdId(callback: Callback) {
|
|
107
|
+
try {
|
|
108
|
+
callback.invoke(TagWorks.getInstance().adId)
|
|
109
|
+
}catch (e:Exception) {
|
|
110
|
+
callback.invoke("error :",e.message)
|
|
111
|
+
}
|
|
112
|
+
}
|
|
207
113
|
|
|
208
|
-
|
|
209
|
-
|
|
114
|
+
@ReactMethod
|
|
115
|
+
fun getVisitorId(callback: Callback) {
|
|
116
|
+
try {
|
|
117
|
+
callback.invoke(TagWorks.getInstance().visitorId)
|
|
118
|
+
}catch (e:Exception) {
|
|
119
|
+
callback.invoke("error :",e.message)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
210
122
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
123
|
+
@ReactMethod
|
|
124
|
+
fun getSiteId(callback: Callback) {
|
|
125
|
+
try {
|
|
126
|
+
callback.invoke(TagWorks.getInstance().siteId)
|
|
127
|
+
} catch (e:Exception) {
|
|
128
|
+
callback.invoke("error :",e.message)
|
|
215
129
|
}
|
|
216
|
-
|
|
130
|
+
}
|
|
217
131
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
132
|
+
@ReactMethod
|
|
133
|
+
fun getDeeplinkServerUrl(callback: Callback) {
|
|
134
|
+
try {
|
|
135
|
+
callback.invoke(TagWorks.getInstance().deeplinkServerUrl)
|
|
136
|
+
} catch (e:Exception) {
|
|
137
|
+
callback.invoke("error :",e.message)
|
|
222
138
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
// 오류 처리
|
|
247
|
-
e.printStackTrace()
|
|
248
|
-
callback.invoke(null)
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
@ReactMethod
|
|
253
|
-
fun getCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
254
|
-
try {
|
|
255
|
-
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
256
|
-
val dimensions = JSONArray()
|
|
257
|
-
|
|
258
|
-
cDimensions.forEach { dimension ->
|
|
259
|
-
val dimensionObject = JSONObject()
|
|
260
|
-
if (dimension.type == DimensionType.FACT_TYPE) {
|
|
261
|
-
dimensionObject.put("Fact_${dimension.index}", dimension.numValue)
|
|
262
|
-
} else if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
263
|
-
dimensionObject.put("General_${dimension.index}", dimension.value)
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
@ReactMethod
|
|
142
|
+
fun enableTestTool(isTestMode: Boolean) {
|
|
143
|
+
val currentActivity = reactApplicationContext.currentActivity ?: return
|
|
144
|
+
if (isTestMode) TagWorks.getInstance().enableTestTool(currentActivity)
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@ReactMethod
|
|
148
|
+
fun excludeAutoTrackingPages(pageNames: ReadableArray?) {
|
|
149
|
+
if (pageNames == null) return
|
|
150
|
+
|
|
151
|
+
val classList = mutableListOf<Class<*>>()
|
|
152
|
+
|
|
153
|
+
for (i in 0 until pageNames.size()) {
|
|
154
|
+
val name = pageNames.getString(i)
|
|
155
|
+
|
|
156
|
+
try {
|
|
157
|
+
val clazz = Class.forName(name)
|
|
158
|
+
classList.add(clazz)
|
|
159
|
+
} catch (e: ClassNotFoundException) {
|
|
160
|
+
e.printStackTrace()
|
|
161
|
+
}
|
|
264
162
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
callback.invoke(jsonString)
|
|
269
|
-
}catch (e:Exception) {
|
|
270
|
-
callback.invoke(null)
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
@ReactMethod
|
|
275
|
-
fun getCommonDimensionWithString(index: Int,callback: Callback) {
|
|
276
|
-
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.GENERAL_TYPE,index)
|
|
277
|
-
if (mCommonDimension != null) callback.invoke(mCommonDimension.value)
|
|
278
|
-
else callback.invoke(null)
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
@ReactMethod
|
|
282
|
-
fun getCommonDimensionWithDouble(index: Int,callback: Callback) {
|
|
283
|
-
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.FACT_TYPE,index)
|
|
284
|
-
if (mCommonDimension != null) callback.invoke(mCommonDimension.numValue)
|
|
285
|
-
else callback.invoke(null)
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
@ReactMethod
|
|
289
|
-
fun getDynamicCommonDimension(key: String, callback: Callback) {
|
|
290
|
-
val mCommonDimension = TagWorks.getInstance().getDynamicCommonDimension(key)
|
|
291
|
-
if(mCommonDimension != null) callback.invoke(if(mCommonDimension.type==DimensionType.GENERAL_TYPE) mCommonDimension.value else mCommonDimension.numValue)
|
|
292
|
-
else callback.invoke(null)
|
|
293
|
-
}
|
|
294
|
-
|
|
295
|
-
@ReactMethod
|
|
296
|
-
fun getDynamicCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
297
|
-
try {
|
|
298
|
-
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
299
|
-
val dimensions = JSONArray()
|
|
300
|
-
|
|
301
|
-
cDynamicDimensions.forEach { dimension ->
|
|
302
|
-
val dimensionObject = JSONObject()
|
|
303
|
-
if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
304
|
-
dimensionObject.put(dimension.key,dimension.value)
|
|
305
|
-
}else{
|
|
306
|
-
dimensionObject.put(dimension.key,dimension.numValue)
|
|
163
|
+
|
|
164
|
+
if (classList.isNotEmpty()) {
|
|
165
|
+
TagWorks.getInstance().excludeAutoTrackingPages(classList)
|
|
307
166
|
}
|
|
308
|
-
dimensions.put(dimensionObject)
|
|
309
|
-
}
|
|
310
|
-
val jsonString = dimensions.toString(4)
|
|
311
|
-
callback.invoke(jsonString)
|
|
312
|
-
}catch (e:Exception) {
|
|
313
|
-
callback.invoke(null)
|
|
314
167
|
}
|
|
315
|
-
}
|
|
316
168
|
|
|
317
169
|
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
}
|
|
170
|
+
/**
|
|
171
|
+
* 공용 dimension 설정
|
|
172
|
+
*/
|
|
322
173
|
|
|
323
|
-
@ReactMethod
|
|
324
|
-
fun removeCommonDimensionInFactType(index: Int) {
|
|
325
|
-
TagWorks.getInstance().removeCommonDimension(DimensionType.FACT_TYPE,index)
|
|
326
|
-
}
|
|
327
174
|
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
175
|
+
@ReactMethod
|
|
176
|
+
fun setCommonDimensionWithDouble(index: Int,numValue:Double) {
|
|
177
|
+
TagWorks.getInstance().setCommonDimension(index,numValue)
|
|
178
|
+
}
|
|
332
179
|
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
180
|
+
@ReactMethod
|
|
181
|
+
fun setCommonDimensionWithString(index: Int,value:String) {
|
|
182
|
+
TagWorks.getInstance().setCommonDimension(index,value)
|
|
183
|
+
}
|
|
337
184
|
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
185
|
+
@ReactMethod
|
|
186
|
+
fun setDynamicCommonDimensionWithDouble(key:String, numValue: Double) {
|
|
187
|
+
TagWorks.getInstance().setDynamicCommonDimension(key,numValue)
|
|
188
|
+
}
|
|
342
189
|
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
190
|
+
@ReactMethod
|
|
191
|
+
fun setDynamicCommonDimensionWithString(key: String, value:String) {
|
|
192
|
+
TagWorks.getInstance().setDynamicCommonDimension(key,value)
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
@ReactMethod
|
|
197
|
+
fun getCommonDimensions(callback: Callback) {
|
|
347
198
|
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
}
|
|
199
|
+
try {
|
|
200
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
201
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
352
202
|
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
val result = TagWorks.getInstance().dispatch()
|
|
356
|
-
callback.invoke(result)
|
|
357
|
-
}
|
|
203
|
+
val generalDimensions = JSONObject()
|
|
204
|
+
val factDimensions = JSONObject()
|
|
358
205
|
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
206
|
+
cDimensions.forEach { dimension ->
|
|
207
|
+
when (dimension.type) {
|
|
208
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
209
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
210
|
+
}
|
|
211
|
+
}
|
|
363
212
|
|
|
213
|
+
cDynamicDimensions.forEach { dimension ->
|
|
214
|
+
when (dimension.type) {
|
|
215
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.key,dimension.value)
|
|
216
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
217
|
+
}
|
|
218
|
+
}
|
|
364
219
|
|
|
365
|
-
|
|
366
|
-
|
|
220
|
+
val result = JSONObject().apply {
|
|
221
|
+
put("General", generalDimensions)
|
|
222
|
+
put("Fact", factDimensions)
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
val jsonString = result.toString(4)
|
|
226
|
+
|
|
227
|
+
callback.invoke(jsonString)
|
|
228
|
+
} catch (e: Exception) {
|
|
229
|
+
// 오류 처리
|
|
230
|
+
e.printStackTrace()
|
|
231
|
+
callback.invoke(null)
|
|
232
|
+
}
|
|
367
233
|
|
|
368
|
-
val bundle = DataBundle()
|
|
369
234
|
|
|
370
|
-
val dataBundleMap = data.getMap("dataBundle")
|
|
371
|
-
dataBundleMap?.let {
|
|
372
|
-
val keySetIterator = it.keySetIterator()
|
|
373
|
-
while (keySetIterator.hasNextKey()) {
|
|
374
|
-
val key = keySetIterator.nextKey()
|
|
375
|
-
bundle.putString(key,it.getString(key))
|
|
376
|
-
}
|
|
377
235
|
}
|
|
378
236
|
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
237
|
+
@ReactMethod
|
|
238
|
+
fun getDynamicCommonDimensions(callback: Callback) {
|
|
239
|
+
try {
|
|
240
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
241
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
242
|
+
|
|
243
|
+
val generalDimensions = JSONObject()
|
|
244
|
+
val factDimensions = JSONObject()
|
|
245
|
+
|
|
246
|
+
cDimensions.forEach { dimension ->
|
|
247
|
+
when (dimension.type) {
|
|
248
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
249
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
cDynamicDimensions.forEach { dimension ->
|
|
254
|
+
when (dimension.type) {
|
|
255
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.key,dimension.value)
|
|
256
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
val result = JSONObject().apply {
|
|
261
|
+
put("General", generalDimensions)
|
|
262
|
+
put("Fact", factDimensions)
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
val jsonString = result.toString(4)
|
|
266
|
+
callback.invoke(jsonString)
|
|
267
|
+
} catch (e: Exception) {
|
|
268
|
+
// 오류 처리
|
|
269
|
+
e.printStackTrace()
|
|
270
|
+
callback.invoke(null)
|
|
271
|
+
}
|
|
272
|
+
}
|
|
383
273
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
274
|
+
@ReactMethod
|
|
275
|
+
fun getCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
276
|
+
try {
|
|
277
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
278
|
+
val dimensions = JSONArray()
|
|
279
|
+
|
|
280
|
+
cDimensions.forEach { dimension ->
|
|
281
|
+
val dimensionObject = JSONObject()
|
|
282
|
+
if (dimension.type == DimensionType.FACT_TYPE) {
|
|
283
|
+
dimensionObject.put("Fact_${dimension.index}", dimension.numValue)
|
|
284
|
+
} else if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
285
|
+
dimensionObject.put("General_${dimension.index}", dimension.value)
|
|
286
|
+
}
|
|
287
|
+
dimensions.put(dimensionObject)
|
|
288
|
+
}
|
|
289
|
+
val jsonString = dimensions.toString(4)
|
|
290
|
+
callback.invoke(jsonString)
|
|
291
|
+
}catch (e:Exception) {
|
|
292
|
+
callback.invoke(null)
|
|
293
|
+
}
|
|
294
|
+
}
|
|
389
295
|
|
|
390
|
-
|
|
391
|
-
|
|
296
|
+
@ReactMethod
|
|
297
|
+
fun getCommonDimensionWithString(index: Int,callback: Callback) {
|
|
298
|
+
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.GENERAL_TYPE,index)
|
|
299
|
+
if (mCommonDimension != null) callback.invoke(mCommonDimension.value)
|
|
300
|
+
else callback.invoke(null)
|
|
392
301
|
}
|
|
393
302
|
|
|
394
|
-
|
|
395
|
-
|
|
303
|
+
@ReactMethod
|
|
304
|
+
fun getCommonDimensionWithDouble(index: Int,callback: Callback) {
|
|
305
|
+
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.FACT_TYPE,index)
|
|
306
|
+
if (mCommonDimension != null) callback.invoke(mCommonDimension.numValue)
|
|
307
|
+
else callback.invoke(null)
|
|
308
|
+
}
|
|
396
309
|
|
|
397
|
-
|
|
398
|
-
|
|
310
|
+
@ReactMethod
|
|
311
|
+
fun getDynamicCommonDimension(key: String, callback: Callback) {
|
|
312
|
+
val mCommonDimension = TagWorks.getInstance().getDynamicCommonDimension(key)
|
|
313
|
+
if(mCommonDimension != null) callback.invoke(if(mCommonDimension.type== DimensionType.GENERAL_TYPE) mCommonDimension.value else mCommonDimension.numValue)
|
|
314
|
+
else callback.invoke(null)
|
|
315
|
+
}
|
|
399
316
|
|
|
400
|
-
|
|
401
|
-
|
|
317
|
+
@ReactMethod
|
|
318
|
+
fun getDynamicCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
319
|
+
try {
|
|
320
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
321
|
+
val dimensions = JSONArray()
|
|
322
|
+
|
|
323
|
+
cDynamicDimensions.forEach { dimension ->
|
|
324
|
+
val dimensionObject = JSONObject()
|
|
325
|
+
if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
326
|
+
dimensionObject.put(dimension.key,dimension.value)
|
|
327
|
+
}else{
|
|
328
|
+
dimensionObject.put(dimension.key,dimension.numValue)
|
|
329
|
+
}
|
|
330
|
+
dimensions.put(dimensionObject)
|
|
331
|
+
}
|
|
332
|
+
val jsonString = dimensions.toString(4)
|
|
333
|
+
callback.invoke(jsonString)
|
|
334
|
+
}catch (e:Exception) {
|
|
335
|
+
callback.invoke(null)
|
|
336
|
+
}
|
|
402
337
|
}
|
|
403
338
|
|
|
404
339
|
|
|
405
|
-
|
|
340
|
+
@ReactMethod
|
|
341
|
+
fun removeCommonDimensionInGeneralType(index: Int) {
|
|
342
|
+
TagWorks.getInstance().removeCommonDimension(DimensionType.GENERAL_TYPE,index)
|
|
343
|
+
}
|
|
406
344
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
val jsonObj = JSONObject(jsonEventString)
|
|
345
|
+
@ReactMethod
|
|
346
|
+
fun removeCommonDimensionInFactType(index: Int) {
|
|
347
|
+
TagWorks.getInstance().removeCommonDimension(DimensionType.FACT_TYPE,index)
|
|
348
|
+
}
|
|
412
349
|
|
|
413
|
-
|
|
414
|
-
|
|
350
|
+
@ReactMethod
|
|
351
|
+
fun removeDynamicCommonDimension(key: String) {
|
|
352
|
+
TagWorks.getInstance().removeDynamicCommonDimension(key)
|
|
353
|
+
}
|
|
354
|
+
|
|
355
|
+
@ReactMethod
|
|
356
|
+
fun removeCommonDimensionWithArrayIndex(index:Int) {
|
|
357
|
+
TagWorks.getInstance().removeCommonDimensionWithArrayIndex(index)
|
|
358
|
+
}
|
|
415
359
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
360
|
+
@ReactMethod
|
|
361
|
+
fun removeDynamicCommonDimensionWithArrayIndex(index: Int) {
|
|
362
|
+
TagWorks.getInstance().removeDynamicCommonDimensionWithArrayIndex(index)
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
@ReactMethod
|
|
366
|
+
fun removeAllCommonDimension() {
|
|
367
|
+
TagWorks.getInstance().removeAllCommonDimension()
|
|
368
|
+
}
|
|
420
369
|
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
370
|
+
@ReactMethod
|
|
371
|
+
fun removeAllDynamicCommonDimension() {
|
|
372
|
+
TagWorks.getInstance().removeAllCommonDimension()
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
@ReactMethod
|
|
376
|
+
fun dispatch(callback: Callback) {
|
|
377
|
+
val result = TagWorks.getInstance().dispatch()
|
|
378
|
+
callback.invoke(result)
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
@ReactMethod
|
|
382
|
+
fun sendReferrerEventWithOpenUrlString(openUrl: String) {
|
|
383
|
+
TagWorks.getInstance().sendReferrerEvent(openUrl)
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
@ReactMethod
|
|
388
|
+
fun logEvent(eventType:String,data:ReadableMap,callback: Callback) {
|
|
389
|
+
|
|
390
|
+
val bundle = DataBundle()
|
|
391
|
+
|
|
392
|
+
val dataBundleMap = data.getMap("dataBundle")
|
|
393
|
+
dataBundleMap?.let {
|
|
394
|
+
val keySetIterator = it.keySetIterator()
|
|
395
|
+
while (keySetIterator.hasNextKey()) {
|
|
396
|
+
val key = keySetIterator.nextKey()
|
|
397
|
+
bundle.putString(key,it.getString(key))
|
|
398
|
+
}
|
|
424
399
|
}
|
|
425
400
|
|
|
426
|
-
|
|
427
|
-
|
|
401
|
+
val dimensionsArray = data.getArray("dimensions")
|
|
402
|
+
dimensionsArray?.let {
|
|
403
|
+
for (i in 0 until it.size()) {
|
|
404
|
+
val dimensionMap = it.getMap(i)
|
|
405
|
+
|
|
406
|
+
val type = dimensionMap?.getString("type")
|
|
407
|
+
val index = if (dimensionMap?.hasKey("index") == true) dimensionMap?.getInt("index") else -1
|
|
408
|
+
val key = if(dimensionMap?.hasKey("key") == true) dimensionMap?.getString("key") else index.toString()
|
|
409
|
+
val value = if(dimensionMap?.hasKey("value") == true) dimensionMap?.getString("value") else ""
|
|
410
|
+
val numValue = if(dimensionMap?.hasKey("numValue") == true) dimensionMap?.getDouble("numValue") else 0.0
|
|
411
|
+
|
|
412
|
+
bundle.setDimension(Dimension(DimensionType.valueOf(type!!),index!!,key!!,value!!,numValue!!))
|
|
413
|
+
}
|
|
428
414
|
}
|
|
429
415
|
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
416
|
+
Log.d(TAG, "logEvent: ${bundle.dataBundle} + ${bundle.dimensions}")
|
|
417
|
+
try {
|
|
418
|
+
|
|
419
|
+
val result = TagWorks.getInstance().logEvent(eventType, bundle)
|
|
420
|
+
callback.invoke(result)
|
|
421
|
+
|
|
422
|
+
}catch (e:Exception) {
|
|
423
|
+
Log.d(TAG, "log event error: ${e.message}")
|
|
424
|
+
}
|
|
434
425
|
|
|
435
|
-
|
|
436
|
-
|
|
426
|
+
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
@ReactMethod
|
|
430
|
+
fun isInitialize(callback: Callback) {
|
|
431
|
+
try {
|
|
432
|
+
callback.invoke(TagWorks.getInstance().isInitialize.toString())
|
|
433
|
+
} catch (e:Exception) {
|
|
434
|
+
callback.invoke("error :",e.message)
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
@ReactMethod
|
|
439
|
+
fun saveErrorReport(errorType: String, errorMessage: String) {
|
|
440
|
+
TagWorks.getInstance().saveErrorReport(errorType, errorMessage)
|
|
437
441
|
}
|
|
438
|
-
}
|
|
439
442
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
443
|
+
@ReactMethod
|
|
444
|
+
fun webInterfaceDidReceive(jsonEventString: String) {
|
|
445
|
+
Logger.d(TagWorks.getInstance().tag,jsonEventString)
|
|
446
|
+
try {
|
|
447
|
+
|
|
448
|
+
val jsonObj = JSONObject(jsonEventString)
|
|
449
|
+
val sender = if (jsonObj.isNull("e_a")) null else jsonObj.getString("e_a")
|
|
450
|
+
|
|
451
|
+
if ( sender == "obzen") {
|
|
452
|
+
|
|
453
|
+
WebAppInterface().TagWorksWebEvent(jsonEventString)
|
|
454
|
+
|
|
455
|
+
} else if ( sender == "obzenoncms") {
|
|
456
|
+
|
|
457
|
+
val currentActivity = reactApplicationContext.currentActivity ?: return
|
|
446
458
|
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
459
|
+
if (currentActivity == null) {
|
|
460
|
+
Logger.d(TagWorks.getInstance().tag, "currentActivity is null; cannot show popup yet")
|
|
461
|
+
return
|
|
462
|
+
}
|
|
463
|
+
val hasCommand = jsonObj.has("command")
|
|
464
|
+
|
|
465
|
+
UiThreadUtil.runOnUiThread {
|
|
466
|
+
val onCms = WebAppOnCmsInterface(currentActivity)
|
|
467
|
+
if (hasCommand) {
|
|
468
|
+
onCms.commandPopup(jsonEventString)
|
|
469
|
+
} else {
|
|
470
|
+
onCms.showPopup(jsonEventString)
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
} catch (t: Throwable) {
|
|
477
|
+
Logger.e(MessageHandlerName, "Could not parse malformed JSON: \"$jsonEventString\"");
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
override fun getConstants(): MutableMap<String, Any> {
|
|
482
|
+
return mutableMapOf(
|
|
483
|
+
"EVENT_TYPE_PAGE" to TagWorks.EVENT_TYPE_PAGE,
|
|
484
|
+
"EVENT_TYPE_USER_EVENT" to TagWorks.EVENT_TYPE_USER_EVENT,
|
|
485
|
+
)
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
companion object {
|
|
489
|
+
const val TAG = "TagWorksModule"
|
|
490
|
+
}
|
|
450
491
|
}
|