tagworks-sdk-v1-react 1.1.13 → 1.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +188 -55
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/tagworkssdkv1/DataBundleModule.kt +371 -281
- package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +402 -323
- package/ios/DataBundleModule.swift +176 -12
- package/ios/DataBundleModuleBridge.m +15 -0
- package/ios/StandardEventModule.swift +2 -23
- package/ios/StandardEventModuleBridge.m +0 -4
- package/ios/TagWorksModule.swift +181 -9
- package/ios/TagWorksModuleBridge.m +17 -1
- package/package.json +1 -1
- package/tagworks-sdk-v1-react.podspec +2 -2
|
@@ -1,323 +1,402 @@
|
|
|
1
|
-
package com.
|
|
2
|
-
|
|
3
|
-
import android.util.Log
|
|
4
|
-
import com.facebook.react.bridge.
|
|
5
|
-
import com.facebook.react.bridge.
|
|
6
|
-
import com.facebook.react.bridge.
|
|
7
|
-
import com.facebook.react.bridge.
|
|
8
|
-
import com.facebook.react.bridge.
|
|
9
|
-
import com.
|
|
10
|
-
import com.obzen.tagworks.
|
|
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.util.Logger
|
|
16
|
-
import com.obzen.tagworks.util.
|
|
17
|
-
import
|
|
18
|
-
import org.json.
|
|
19
|
-
import
|
|
20
|
-
|
|
21
|
-
class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJavaModule(reactContext) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
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
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
val
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
1
|
+
package com.tagworkssdkv1
|
|
2
|
+
|
|
3
|
+
import android.util.Log
|
|
4
|
+
import com.facebook.react.bridge.Callback
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
7
|
+
import com.facebook.react.bridge.ReactMethod
|
|
8
|
+
import com.facebook.react.bridge.ReadableMap
|
|
9
|
+
import com.obzen.tagworks.TagWorks
|
|
10
|
+
import com.obzen.tagworks.TagWorksConfig
|
|
11
|
+
import com.obzen.tagworks.data.DataBundle
|
|
12
|
+
import com.obzen.tagworks.data.Dimension
|
|
13
|
+
import com.obzen.tagworks.data.DimensionType
|
|
14
|
+
import com.obzen.tagworks.util.Logger
|
|
15
|
+
import com.obzen.tagworks.util.Logger.Companion.d
|
|
16
|
+
import com.obzen.tagworks.util.WebAppInterface.Companion.MessageHandlerName
|
|
17
|
+
import org.json.JSONArray
|
|
18
|
+
import org.json.JSONObject
|
|
19
|
+
import javax.security.auth.callback.Callback
|
|
20
|
+
|
|
21
|
+
class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJavaModule(reactContext) {
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* js에서 호출하는 TagWorksModule 네이밍
|
|
25
|
+
*/
|
|
26
|
+
override fun getName(): String {
|
|
27
|
+
return "TagWorksModule"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* config SDK 초기화 함수
|
|
32
|
+
*/
|
|
33
|
+
@ReactMethod
|
|
34
|
+
fun initializeTagWorks(
|
|
35
|
+
siteId:String,
|
|
36
|
+
baseUrl:String,
|
|
37
|
+
isUseIntervals:Boolean,
|
|
38
|
+
dispatchInterval:Double,
|
|
39
|
+
sessionTimeout:Double,
|
|
40
|
+
isManualDispatch:Boolean,
|
|
41
|
+
appVersion:String?,
|
|
42
|
+
appName:String?,
|
|
43
|
+
isUseDynamicParameter:Boolean
|
|
44
|
+
) {
|
|
45
|
+
val config = TagWorksConfig.Builder()
|
|
46
|
+
.setSiteId(siteId)
|
|
47
|
+
.setBaseUrl(baseUrl)
|
|
48
|
+
.setDispatchInterval(dispatchInterval.toLong())
|
|
49
|
+
.setSessionTimeOut(sessionTimeout.toLong()*1000)
|
|
50
|
+
.setAppVersion(appVersion)
|
|
51
|
+
.setAppName(appName)
|
|
52
|
+
.setManualDispatch(isManualDispatch)
|
|
53
|
+
.setIsUseIntervals(isUseIntervals)
|
|
54
|
+
.setIsUseDynamicParameter(isUseDynamicParameter)
|
|
55
|
+
.build()
|
|
56
|
+
|
|
57
|
+
TagWorks.initializeSdk(reactApplicationContext, config)
|
|
58
|
+
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* siteId, baseUrl SDK 초기화 함수
|
|
64
|
+
*/
|
|
65
|
+
@ReactMethod
|
|
66
|
+
fun initTagWorksWithSiteIdAndBaseUrl(siteId: String,baseUrl: String) {
|
|
67
|
+
TagWorks.initializeSdk(reactApplicationContext,siteId,baseUrl)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@ReactMethod
|
|
72
|
+
fun setLogLevel(level:Int) {
|
|
73
|
+
TagWorks.getInstance().setLogLevel(level)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@ReactMethod
|
|
77
|
+
fun setOptOut(isOptOut:Boolean) {
|
|
78
|
+
TagWorks.getInstance().optOut = isOptOut
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@ReactMethod
|
|
82
|
+
fun setUserId(userId:String) {
|
|
83
|
+
TagWorks.getInstance().userId = userId
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@ReactMethod
|
|
87
|
+
fun setVisitorId(visitorId:String) {
|
|
88
|
+
TagWorks.getInstance().visitorId =visitorId
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@ReactMethod
|
|
92
|
+
fun setAdId(adId:String) {
|
|
93
|
+
TagWorks.getInstance().adId = adId
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@ReactMethod
|
|
97
|
+
fun getAdId(callback: Callback) {
|
|
98
|
+
try {
|
|
99
|
+
callback.invoke(TagWorks.getInstance().adId)
|
|
100
|
+
}catch (e:Exception) {
|
|
101
|
+
callback.invoke("error :",e.message)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@ReactMethod
|
|
106
|
+
fun getVisitorId(callback: Callback) {
|
|
107
|
+
try {
|
|
108
|
+
callback.invoke(TagWorks.getInstance().visitorId)
|
|
109
|
+
}catch (e:Exception) {
|
|
110
|
+
callback.invoke("error :",e.message)
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
@ReactMethod
|
|
115
|
+
fun getSiteId(callback: Callback) {
|
|
116
|
+
try {
|
|
117
|
+
callback.invoke(TagWorks.getInstance().siteId)
|
|
118
|
+
} catch (e:Exception) {
|
|
119
|
+
callback.invoke("error :",e.message)
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 공용 dimension 설정
|
|
126
|
+
*/
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
@ReactMethod
|
|
130
|
+
fun setCommonDimensionWithDouble(index: Int,numValue:Double) {
|
|
131
|
+
TagWorks.getInstance().setCommonDimension(index,numValue)
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
@ReactMethod
|
|
135
|
+
fun setCommonDimensionWithString(index: Int,value:String) {
|
|
136
|
+
TagWorks.getInstance().setCommonDimension(index,value)
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@ReactMethod
|
|
140
|
+
fun setDynamicCommonDimensionWithDouble(key:String, numValue: Double) {
|
|
141
|
+
TagWorks.getInstance().setDynamicCommonDimension(key,numValue)
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@ReactMethod
|
|
145
|
+
fun setDynamicCommonDimensionWithString(key: String, value:String) {
|
|
146
|
+
TagWorks.getInstance().setDynamicCommonDimension(key,value)
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
@ReactMethod
|
|
151
|
+
fun getCommonDimensions(callback: Callback) {
|
|
152
|
+
|
|
153
|
+
try {
|
|
154
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
155
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
156
|
+
|
|
157
|
+
val generalDimensions = JSONObject()
|
|
158
|
+
val factDimensions = JSONObject()
|
|
159
|
+
|
|
160
|
+
cDimensions.forEach { dimension ->
|
|
161
|
+
when (dimension.type) {
|
|
162
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
163
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
cDynamicDimensions.forEach { dimension ->
|
|
168
|
+
when (dimension.type) {
|
|
169
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.key,dimension.value)
|
|
170
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
val generalWrapper = JSONObject().apply {
|
|
175
|
+
put("General", generalDimensions)
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
val factWrapper = JSONObject().apply {
|
|
179
|
+
put("Fact", factDimensions)
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
val dimensionsArray = JSONArray().apply {
|
|
183
|
+
put(generalWrapper)
|
|
184
|
+
put(factWrapper)
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
val result = JSONObject().apply {
|
|
188
|
+
put("Dimensions", dimensionsArray)
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
val jsonString = result.toString(4)
|
|
192
|
+
|
|
193
|
+
callback.invoke(jsonString)
|
|
194
|
+
} catch (e: Exception) {
|
|
195
|
+
// 오류 처리
|
|
196
|
+
e.printStackTrace()
|
|
197
|
+
callback.invoke(null)
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
@ReactMethod
|
|
205
|
+
fun getCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
206
|
+
try {
|
|
207
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
208
|
+
val dimensions = JSONArray()
|
|
209
|
+
|
|
210
|
+
cDimensions.forEach { dimension ->
|
|
211
|
+
val dimensionObject = JSONObject()
|
|
212
|
+
if (dimension.type == DimensionType.FACT_TYPE) {
|
|
213
|
+
dimensionObject.put("Fact_${dimension.index}", dimension.numValue)
|
|
214
|
+
} else if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
215
|
+
dimensionObject.put("General_${dimension.index}", dimension.value)
|
|
216
|
+
}
|
|
217
|
+
dimensions.put(dimensionObject)
|
|
218
|
+
}
|
|
219
|
+
val jsonString = dimensions.toString(4)
|
|
220
|
+
callback.invoke(jsonString)
|
|
221
|
+
}catch (e:Exception) {
|
|
222
|
+
callback.invoke(null)
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
@ReactMethod
|
|
227
|
+
fun getCommonDimensionWithString(index: Int,callback: Callback) {
|
|
228
|
+
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.GENERAL_TYPE,index)
|
|
229
|
+
if (mCommonDimension != null) callback.invoke(mCommonDimension.value)
|
|
230
|
+
else callback.invoke(null)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
@ReactMethod
|
|
234
|
+
fun getCommonDimensionWithDouble(index: Int,callback: Callback) {
|
|
235
|
+
val mCommonDimension = TagWorks.getInstance().getCommonDimension(DimensionType.FACT_TYPE,index)
|
|
236
|
+
if (mCommonDimension != null) callback.invoke(mCommonDimension.numValue)
|
|
237
|
+
else callback.invoke(null)
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
@ReactMethod
|
|
241
|
+
fun getDynamicCommonDimension(key: String, callback: Callback) {
|
|
242
|
+
val mCommonDimension = TagWorks.getInstance().getDynamicCommonDimension(key)
|
|
243
|
+
if(mCommonDimension != null) callback.invoke(if(mCommonDimension.type==DimensionType.GENERAL_TYPE) mCommonDimension.value else mCommonDimension.numValue)
|
|
244
|
+
else callback.invoke(null)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
@ReactMethod
|
|
248
|
+
fun getDynamicCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
249
|
+
try {
|
|
250
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
251
|
+
val dimensions = JSONArray()
|
|
252
|
+
|
|
253
|
+
cDynamicDimensions.forEach { dimension ->
|
|
254
|
+
val dimensionObject = JSONObject()
|
|
255
|
+
if (dimension.type == DimensionType.GENERAL_TYPE) {
|
|
256
|
+
dimensionObject.put(dimension.key,dimension.value)
|
|
257
|
+
}else{
|
|
258
|
+
dimensionObject.put(dimension.key,dimension.numValue)
|
|
259
|
+
}
|
|
260
|
+
dimensions.put(dimensionObject)
|
|
261
|
+
}
|
|
262
|
+
val jsonString = dimensions.toString(4)
|
|
263
|
+
callback.invoke(jsonString)
|
|
264
|
+
}catch (e:Exception) {
|
|
265
|
+
callback.invoke(null)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
|
|
270
|
+
@ReactMethod
|
|
271
|
+
fun removeCommonDimensionInGeneralType(index: Int) {
|
|
272
|
+
TagWorks.getInstance().removeCommonDimension(DimensionType.GENERAL_TYPE,index)
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
@ReactMethod
|
|
276
|
+
fun removeCommonDimensionInFactType(index: Int) {
|
|
277
|
+
TagWorks.getInstance().removeCommonDimension(DimensionType.FACT_TYPE,index)
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@ReactMethod
|
|
281
|
+
fun removeDynamicCommonDimension(key: String) {
|
|
282
|
+
TagWorks.getInstance().removeDynamicCommonDimension(key)
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
@ReactMethod
|
|
286
|
+
fun removeCommonDimensionWithArrayIndex(index:Int) {
|
|
287
|
+
TagWorks.getInstance().removeCommonDimensionWithArrayIndex(index)
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
@ReactMethod
|
|
291
|
+
fun removeDynamicCommonDimensionWithArrayIndex(index: Int) {
|
|
292
|
+
TagWorks.getInstance().removeDynamicCommonDimensionWithArrayIndex(index)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
@ReactMethod
|
|
296
|
+
fun removeAllCommonDimension() {
|
|
297
|
+
TagWorks.getInstance().removeAllCommonDimension()
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
@ReactMethod
|
|
301
|
+
fun removeAllDynamicCommonDimension() {
|
|
302
|
+
TagWorks.getInstance().removeAllCommonDimension()
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
@ReactMethod
|
|
306
|
+
fun dispatch(callback: Callback) {
|
|
307
|
+
val result = TagWorks.getInstance().dispatch()
|
|
308
|
+
callback.invoke(result)
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
@ReactMethod
|
|
312
|
+
fun sendReferrerEventWithOpenUrlString(openUrl: String) {
|
|
313
|
+
TagWorks.getInstance().sendReferrerEvent(openUrl)
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
@ReactMethod
|
|
318
|
+
fun logEvent(eventType:String,data:ReadableMap,callback: Callback) {
|
|
319
|
+
|
|
320
|
+
val bundle = DataBundle()
|
|
321
|
+
|
|
322
|
+
val dataBundleMap = data.getMap("dataBundle")
|
|
323
|
+
dataBundleMap?.let {
|
|
324
|
+
val keySetIterator = it.keySetIterator()
|
|
325
|
+
while (keySetIterator.hasNextKey()) {
|
|
326
|
+
val key = keySetIterator.nextKey()
|
|
327
|
+
bundle.putString(key,it.getString(key))
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
val dimensionsArray = data.getArray("dimensions")
|
|
332
|
+
dimensionsArray?.let {
|
|
333
|
+
for (i in 0 until it.size()) {
|
|
334
|
+
val dimensionMap = it.getMap(i)
|
|
335
|
+
|
|
336
|
+
val type = dimensionMap.getString("type")
|
|
337
|
+
val index = if (dimensionMap.hasKey("index")) dimensionMap.getInt("index") else -1
|
|
338
|
+
val key = if(dimensionMap.hasKey("key")) dimensionMap.getString("key") else index.toString()
|
|
339
|
+
val value = if(dimensionMap.hasKey("value")) dimensionMap.getString("value") else ""
|
|
340
|
+
val numValue = if(dimensionMap.hasKey("numValue")) dimensionMap.getDouble("numValue") else 0.0
|
|
341
|
+
|
|
342
|
+
bundle.setDimension(Dimension(DimensionType.valueOf(type!!),index,key!!,value!!,numValue))
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
Log.d(TAG, "logEvent: ${bundle.dataBundle} + ${bundle.dimensions}")
|
|
347
|
+
try {
|
|
348
|
+
|
|
349
|
+
val result = TagWorks.getInstance().logEvent(eventType, bundle)
|
|
350
|
+
callback.invoke(result)
|
|
351
|
+
|
|
352
|
+
}catch (e:Exception) {
|
|
353
|
+
Log.d(TAG, "log event error: ${e.message}")
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
@ReactMethod
|
|
360
|
+
fun webInterfaceDidReceive(jsonEventString: String) {
|
|
361
|
+
d(MessageHandlerName,jsonEventString)
|
|
362
|
+
try {
|
|
363
|
+
val jsonObj = JSONObject(jsonEventString)
|
|
364
|
+
|
|
365
|
+
val sender = if (jsonObj.isNull("e_a")) null else jsonObj.getString("e_a")
|
|
366
|
+
if ( sender == "obzen") {
|
|
367
|
+
|
|
368
|
+
val idSite = if (jsonObj.isNull("idsite")) null else jsonObj.getString("idsite")
|
|
369
|
+
val url = if (jsonObj.isNull("url")) null else jsonObj.getString("url")
|
|
370
|
+
val urlref = if (jsonObj.isNull("urlref")) null else jsonObj.getString("urlref")
|
|
371
|
+
var eventCategory = if (jsonObj.isNull("e_c")) null else jsonObj.getString("e_c")
|
|
372
|
+
|
|
373
|
+
if (eventCategory != null) {
|
|
374
|
+
eventCategory =
|
|
375
|
+
eventCategory.replace("{{vstor_id}}", TagWorks.getInstance().visitorId)
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
if (idSite != null && idSite != TagWorks.getInstance().siteId) {
|
|
379
|
+
Logger.i(MessageHandlerName, "WebView siteid is not equal App siteid!!")
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
TagWorks.getInstance().webInterfaceLogEventPush(
|
|
383
|
+
idSite, url, urlref, eventCategory
|
|
384
|
+
)
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
} catch (t: Throwable) {
|
|
388
|
+
Logger.e(MessageHandlerName, "Could not parse malformed JSON: \"$jsonEventString\"");
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
override fun getConstants(): MutableMap<String, Any> {
|
|
393
|
+
return mutableMapOf(
|
|
394
|
+
"EVENT_TYPE_PAGE" to TagWorks.EVENT_TYPE_PAGE,
|
|
395
|
+
"EVENT_TYPE_USER_EVENT" to TagWorks.EVENT_TYPE_USER_EVENT,
|
|
396
|
+
)
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
companion object {
|
|
400
|
+
const val TAG = "TagWorksModule"
|
|
401
|
+
}
|
|
402
|
+
}
|