tagworks-sdk-v1-react 1.1.18 → 1.1.19
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/java/com/tagworkssdkv1/DataBundleModule.kt +58 -3
- package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +49 -1
- package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Package.kt +0 -2
- package/ios/DataBundleModule.swift +40 -54
- package/ios/DataBundleModuleBridge.m +5 -0
- package/ios/TagWorksModule.swift +5 -24
- package/package.json +1 -1
package/android/build.gradle
CHANGED
|
@@ -100,6 +100,6 @@ dependencies {
|
|
|
100
100
|
implementation "com.facebook.react:react-native:+"
|
|
101
101
|
// implementation "com.facebook.react:react-android:0.71.0"
|
|
102
102
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
|
103
|
-
implementation "com.obzen.tagworks:tagworks-v1-kotlin:1.1.
|
|
103
|
+
implementation "com.obzen.tagworks:tagworks-v1-kotlin:1.1.26"
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -5,13 +5,13 @@ 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.obzen.tagworks.TagWorks
|
|
8
9
|
import com.obzen.tagworks.data.DataBundle
|
|
9
10
|
import com.obzen.tagworks.data.DimensionType
|
|
10
11
|
import com.obzen.tagworks.util.Logger
|
|
11
12
|
import org.json.JSONArray
|
|
12
13
|
import org.json.JSONObject
|
|
13
14
|
|
|
14
|
-
|
|
15
15
|
class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaModule(context) {
|
|
16
16
|
|
|
17
17
|
private var eventData= DataBundle()
|
|
@@ -28,6 +28,7 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
|
|
|
28
28
|
super.initialize()
|
|
29
29
|
eventData.dataBundle.clear()
|
|
30
30
|
eventData.dimensions.clear()
|
|
31
|
+
eventData.dynamicDimensions.clear()
|
|
31
32
|
}
|
|
32
33
|
|
|
33
34
|
@ReactMethod
|
|
@@ -59,7 +60,11 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
|
|
|
59
60
|
while (keys.hasNext()) {
|
|
60
61
|
val key = keys.next()
|
|
61
62
|
val value = general.getString(key)
|
|
62
|
-
|
|
63
|
+
if(TagWorks.getInstance().isUseDynamicParameter) {
|
|
64
|
+
eventData.setDynamicDimension(key,value)
|
|
65
|
+
} else {
|
|
66
|
+
eventData.setDimension(key.toInt(),value)
|
|
67
|
+
}
|
|
63
68
|
}
|
|
64
69
|
}
|
|
65
70
|
|
|
@@ -69,7 +74,11 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
|
|
|
69
74
|
while (keys.hasNext()) {
|
|
70
75
|
val key = keys.next()
|
|
71
76
|
val value = fact.getString(key)
|
|
72
|
-
|
|
77
|
+
if(TagWorks.getInstance().isUseDynamicParameter) {
|
|
78
|
+
eventData.setDynamicDimension(key,value.toDouble())
|
|
79
|
+
} else {
|
|
80
|
+
eventData.setDimension(key.toInt(),value.toDouble())
|
|
81
|
+
}
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
|
|
@@ -197,6 +206,52 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
|
|
|
197
206
|
}
|
|
198
207
|
}
|
|
199
208
|
|
|
209
|
+
@ReactMethod
|
|
210
|
+
fun getDynamicDimensions(callback: Callback){
|
|
211
|
+
try {
|
|
212
|
+
|
|
213
|
+
val generalDimensions = JSONObject()
|
|
214
|
+
val factDimensions = JSONObject()
|
|
215
|
+
|
|
216
|
+
eventData.dimensions.forEach { dimension ->
|
|
217
|
+
when (dimension.type) {
|
|
218
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
219
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
eventData.dynamicDimensions.forEach { dimension ->
|
|
224
|
+
when(dimension.type) {
|
|
225
|
+
DimensionType.GENERAL_TYPE ->generalDimensions.put(dimension.key,dimension.value)
|
|
226
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
val generalWrapper = JSONObject().apply {
|
|
231
|
+
put("General", generalDimensions)
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
val factWrapper = JSONObject().apply {
|
|
235
|
+
put("Fact", factDimensions)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
val dimensionsArray = JSONArray().apply {
|
|
239
|
+
put(generalWrapper)
|
|
240
|
+
put(factWrapper)
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
val result = JSONObject().apply {
|
|
244
|
+
put("Dimensions", dimensionsArray)
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
val jsonString = result.toString(4)
|
|
248
|
+
callback.invoke(jsonString)
|
|
249
|
+
} catch (e: Exception) {
|
|
250
|
+
e.printStackTrace()
|
|
251
|
+
callback.invoke(null)
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
|
|
200
255
|
@ReactMethod
|
|
201
256
|
fun getDimensionsOfArrayIndex(callback: Callback) {
|
|
202
257
|
try {
|
|
@@ -16,7 +16,6 @@ import com.obzen.tagworks.util.Logger.Companion.d
|
|
|
16
16
|
import com.obzen.tagworks.util.WebAppInterface.Companion.MessageHandlerName
|
|
17
17
|
import org.json.JSONArray
|
|
18
18
|
import org.json.JSONObject
|
|
19
|
-
import javax.security.auth.callback.Callback
|
|
20
19
|
|
|
21
20
|
class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJavaModule(reactContext) {
|
|
22
21
|
|
|
@@ -200,6 +199,55 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
|
|
|
200
199
|
|
|
201
200
|
}
|
|
202
201
|
|
|
202
|
+
@ReactMethod
|
|
203
|
+
fun getDynamicCommonDimensions(callback: Callback) {
|
|
204
|
+
try {
|
|
205
|
+
val cDimensions = TagWorks.getInstance().getCommonDimensions()
|
|
206
|
+
val cDynamicDimensions = TagWorks.getInstance().getDynamicCommonDimensions()
|
|
207
|
+
|
|
208
|
+
val generalDimensions = JSONObject()
|
|
209
|
+
val factDimensions = JSONObject()
|
|
210
|
+
|
|
211
|
+
cDimensions.forEach { dimension ->
|
|
212
|
+
when (dimension.type) {
|
|
213
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.index.toString(),dimension.value)
|
|
214
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.index.toString(),dimension.numValue)
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
cDynamicDimensions.forEach { dimension ->
|
|
219
|
+
when (dimension.type) {
|
|
220
|
+
DimensionType.GENERAL_TYPE -> generalDimensions.put(dimension.key,dimension.value)
|
|
221
|
+
DimensionType.FACT_TYPE -> factDimensions.put(dimension.key,dimension.numValue)
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
val generalWrapper = JSONObject().apply {
|
|
226
|
+
put("General", generalDimensions)
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
val factWrapper = JSONObject().apply {
|
|
230
|
+
put("Fact", factDimensions)
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
val dimensionsArray = JSONArray().apply {
|
|
234
|
+
put(generalWrapper)
|
|
235
|
+
put(factWrapper)
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
val result = JSONObject().apply {
|
|
239
|
+
put("Dimensions", dimensionsArray)
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
val jsonString = result.toString(4)
|
|
243
|
+
|
|
244
|
+
callback.invoke(jsonString)
|
|
245
|
+
} catch (e: Exception) {
|
|
246
|
+
// 오류 처리
|
|
247
|
+
e.printStackTrace()
|
|
248
|
+
callback.invoke(null)
|
|
249
|
+
}
|
|
250
|
+
}
|
|
203
251
|
|
|
204
252
|
@ReactMethod
|
|
205
253
|
fun getCommonDimensionsOfArrayIndex(callback: Callback) {
|
|
@@ -4,8 +4,6 @@ import com.facebook.react.ReactPackage
|
|
|
4
4
|
import com.facebook.react.bridge.NativeModule
|
|
5
5
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
6
|
import com.facebook.react.uimanager.ViewManager
|
|
7
|
-
import com.tagworks_sdk_react.DataBundleModule
|
|
8
|
-
import com.tagworks_sdk_react.TagWorksModule
|
|
9
7
|
|
|
10
8
|
|
|
11
9
|
class TagworksSdkV1Package : ReactPackage {
|
|
@@ -75,14 +75,24 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
75
75
|
genericDimensions = dimension["General"] as! [String: String]
|
|
76
76
|
|
|
77
77
|
for (key, value) in genericDimensions {
|
|
78
|
-
|
|
78
|
+
// if TagWorks_SDK_iOS.TagWorks.sharedInstance.isUseDynamicParameter == false {
|
|
79
|
+
if Int(key) != nil {
|
|
80
|
+
self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, stringValue: value))
|
|
81
|
+
} else {
|
|
82
|
+
self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, value: value))
|
|
83
|
+
}
|
|
79
84
|
}
|
|
80
85
|
}
|
|
81
86
|
if dimension["Fact"] != nil {
|
|
82
87
|
factDimensions = dimension["Fact"] as! [String: Any]
|
|
83
88
|
|
|
84
89
|
for (key, value) in factDimensions {
|
|
85
|
-
|
|
90
|
+
// if TagWorks_SDK_iOS.TagWorks.sharedInstance.isUseDynamicParameter == false {
|
|
91
|
+
if Int(key) != nil {
|
|
92
|
+
self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue: Double(value as! String) ?? 0.0))
|
|
93
|
+
} else {
|
|
94
|
+
self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: Double(value as! String) ?? 0.0))
|
|
95
|
+
}
|
|
86
96
|
}
|
|
87
97
|
}
|
|
88
98
|
}
|
|
@@ -101,13 +111,7 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
101
111
|
|
|
102
112
|
var generalDimensions: [String: String] = [:]
|
|
103
113
|
var factDimensions: [String: Any] = [:]
|
|
104
|
-
|
|
105
|
-
// if dimension.type == Dimension.generalType {
|
|
106
|
-
// generalDimensions[String(dimension.index)] = dimension.value
|
|
107
|
-
// } else if dimension.type == Dimension.factType {
|
|
108
|
-
// factDimensions[String(dimension.index)] = String(dimension.numValue)
|
|
109
|
-
// }
|
|
110
|
-
// }
|
|
114
|
+
|
|
111
115
|
for dimension in self.eventDimensions {
|
|
112
116
|
if dimension.type == Dimension.generalType {
|
|
113
117
|
if dimension.index == -1 {
|
|
@@ -117,9 +121,9 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
117
121
|
}
|
|
118
122
|
} else if dimension.type == Dimension.factType {
|
|
119
123
|
if dimension.index == -1 {
|
|
120
|
-
factDimensions[dimension.key] =
|
|
124
|
+
factDimensions[dimension.key] = dimension.numValue
|
|
121
125
|
} else {
|
|
122
|
-
factDimensions[String(dimension.index)] =
|
|
126
|
+
factDimensions[String(dimension.index)] = dimension.numValue
|
|
123
127
|
}
|
|
124
128
|
}
|
|
125
129
|
}
|
|
@@ -180,21 +184,21 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
180
184
|
var generalDimensions: [String: String] = [:]
|
|
181
185
|
var factDimensions: [String: Any] = [:]
|
|
182
186
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
187
|
+
for dimension in self.eventDimensions {
|
|
188
|
+
if dimension.type == Dimension.generalType {
|
|
189
|
+
if dimension.index == -1 {
|
|
190
|
+
generalDimensions[dimension.key] = dimension.value
|
|
191
|
+
} else {
|
|
192
|
+
generalDimensions[String(dimension.index)] = dimension.value
|
|
193
|
+
}
|
|
194
|
+
} else if dimension.type == Dimension.factType {
|
|
195
|
+
if dimension.index == -1 {
|
|
196
|
+
factDimensions[dimension.key] = String(dimension.numValue)
|
|
197
|
+
} else {
|
|
198
|
+
factDimensions[String(dimension.index)] = String(dimension.numValue)
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
198
202
|
let gDimension = ["General": generalDimensions]
|
|
199
203
|
let fDimension = ["Fact": factDimensions]
|
|
200
204
|
dictDimensions["Dimensions"] = [gDimension, fDimension]
|
|
@@ -358,24 +362,6 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
358
362
|
callback([])
|
|
359
363
|
}
|
|
360
364
|
}
|
|
361
|
-
|
|
362
|
-
// @objc func getDynamicDimensionWithString(_ key: String, callback: @escaping RCTResponseSenderBlock) {
|
|
363
|
-
// let dimension: TagWorks_SDK_iOS.Dimension? = self.eventDimensions.filter {$0.key == key && $0.type == Dimension.generalType}.first
|
|
364
|
-
// if let dimension {
|
|
365
|
-
// callback([dimension.value])
|
|
366
|
-
// } else {
|
|
367
|
-
// callback([])
|
|
368
|
-
// }
|
|
369
|
-
// }
|
|
370
|
-
//
|
|
371
|
-
// @objc func getDynamicDimensionWithDouble(_ key: String, callback: @escaping RCTResponseSenderBlock) {
|
|
372
|
-
// let dimension: TagWorks_SDK_iOS.Dimension? = self.eventDimensions.filter {$0.key == key && $0.type == Dimension.factType}.first
|
|
373
|
-
// if let dimension {
|
|
374
|
-
// callback([dimension.numValue])
|
|
375
|
-
// } else {
|
|
376
|
-
// callback([])
|
|
377
|
-
// }
|
|
378
|
-
// }
|
|
379
365
|
|
|
380
366
|
// Dimension 삭제
|
|
381
367
|
@objc func removeDimensionInGeneralType(_ index: Int) {
|
|
@@ -409,28 +395,28 @@ class DataBundleModule: NSObject, RCTBridgeModule {
|
|
|
409
395
|
|
|
410
396
|
|
|
411
397
|
/// 이벤트에 필요한 파라미터 항목들이 비어 있는지 체크
|
|
412
|
-
@objc public func isParameterEmpty(
|
|
398
|
+
@objc public func isParameterEmpty(_ callback: @escaping RCTResponseSenderBlock) {
|
|
413
399
|
if dataDictionary.isEmpty {
|
|
414
|
-
|
|
400
|
+
callback([true])
|
|
415
401
|
}
|
|
416
|
-
|
|
402
|
+
callback([false])
|
|
417
403
|
}
|
|
418
404
|
|
|
419
405
|
/// 이벤트에 필요한 Dimension 항목들이 비어 있는지 체크
|
|
420
|
-
@objc public func isDimensionEmpty(
|
|
406
|
+
@objc public func isDimensionEmpty(_ callback: @escaping RCTResponseSenderBlock) {
|
|
421
407
|
if eventDimensions.isEmpty {
|
|
422
|
-
|
|
408
|
+
callback([true])
|
|
423
409
|
}
|
|
424
|
-
|
|
410
|
+
callback([false])
|
|
425
411
|
}
|
|
426
412
|
|
|
427
413
|
/// 이벤트에 필요한 파라미터 항목들의 갯수를 리턴
|
|
428
|
-
@objc public func parameterCount(
|
|
429
|
-
|
|
414
|
+
@objc public func parameterCount(_ callback: @escaping RCTResponseSenderBlock) {
|
|
415
|
+
callback([dataDictionary.count])
|
|
430
416
|
}
|
|
431
417
|
|
|
432
418
|
/// 이벤트에 필요한 Dimension 항목들의 갯수를 리턴
|
|
433
|
-
@objc public func dimensionCount(
|
|
434
|
-
|
|
419
|
+
@objc public func dimensionCount(_ callback: @escaping RCTResponseSenderBlock) {
|
|
420
|
+
callback([eventDimensions.count])
|
|
435
421
|
}
|
|
436
422
|
}
|
|
@@ -41,4 +41,9 @@ RCT_EXTERN_METHOD(removeDynamicDimension:(NSString *)key)
|
|
|
41
41
|
RCT_EXTERN_METHOD(removeDynamicDimensionWithArrayIndex:(int)index)
|
|
42
42
|
RCT_EXTERN_METHOD(removeAllDynamicDimension)
|
|
43
43
|
|
|
44
|
+
RCT_EXTERN_METHOD(isParameterEmpty:(RCTResponseSenderBlock) callback)
|
|
45
|
+
RCT_EXTERN_METHOD(isDimensionEmpty:(RCTResponseSenderBlock) callback)
|
|
46
|
+
RCT_EXTERN_METHOD(parameterCount:(RCTResponseSenderBlock) callback)
|
|
47
|
+
RCT_EXTERN_METHOD(dimensionCount:(RCTResponseSenderBlock) callback)
|
|
48
|
+
|
|
44
49
|
@end
|
package/ios/TagWorksModule.swift
CHANGED
|
@@ -30,15 +30,14 @@ class TagWorksModule: NSObject, RCTBridgeModule {
|
|
|
30
30
|
"EVENT_TYPE_USER_EVENT": "EVENT_TYPE_USER_EVENT",
|
|
31
31
|
]
|
|
32
32
|
}
|
|
33
|
-
|
|
33
|
+
// userAgent: String? = nil,
|
|
34
34
|
// MARK: SDK 초기화
|
|
35
35
|
@objc func initializeTagWorks(_ siteId: String,
|
|
36
36
|
baseUrl: String,
|
|
37
37
|
isUseIntervals: Bool,
|
|
38
|
-
dispatchInterval: TimeInterval,
|
|
38
|
+
dispatchInterval: TimeInterval = 5.0,
|
|
39
39
|
sessionTimeOut: TimeInterval = 5.0,
|
|
40
40
|
isManualDispatch: Bool = false,
|
|
41
|
-
// userAgent: String? = nil,
|
|
42
41
|
appVersion: String? = nil,
|
|
43
42
|
appName: String? = nil,
|
|
44
43
|
isUseDynamicParameter: Bool = false) {
|
|
@@ -294,24 +293,6 @@ class TagWorksModule: NSObject, RCTBridgeModule {
|
|
|
294
293
|
callback([])
|
|
295
294
|
}
|
|
296
295
|
}
|
|
297
|
-
|
|
298
|
-
// @objc func getDynamicCommonDimensionWithString(_ key: String, callback: @escaping RCTResponseSenderBlock) {
|
|
299
|
-
// let dimension = TagWorks.sharedInstance.getDynamicCommonDimension(key: key)
|
|
300
|
-
// if let dimension {
|
|
301
|
-
// callback([dimension.value])
|
|
302
|
-
// } else {
|
|
303
|
-
// callback([])
|
|
304
|
-
// }
|
|
305
|
-
// }
|
|
306
|
-
//
|
|
307
|
-
// @objc func getDynamicCommonDimensionWithDouble(_ key: String, callback: @escaping RCTResponseSenderBlock) {
|
|
308
|
-
// let dimension = TagWorks.sharedInstance.getDynamicCommonDimension(key: key)
|
|
309
|
-
// if let dimension {
|
|
310
|
-
// callback([dimension.numValue])
|
|
311
|
-
// } else {
|
|
312
|
-
// callback([])
|
|
313
|
-
// }
|
|
314
|
-
// }
|
|
315
296
|
|
|
316
297
|
// Dimension 삭제
|
|
317
298
|
@objc func removeCommonDimensionInGeneralType(_ index: Int) {
|
|
@@ -392,12 +373,12 @@ class TagWorksModule: NSObject, RCTBridgeModule {
|
|
|
392
373
|
|
|
393
374
|
for (key, value) in factDimensions {
|
|
394
375
|
if TagWorks.sharedInstance.isUseDynamicParameter {
|
|
395
|
-
eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue:
|
|
376
|
+
eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: value as! Double))
|
|
396
377
|
} else {
|
|
397
378
|
if Int(key) != nil {
|
|
398
|
-
eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue:
|
|
379
|
+
eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue: value as! Double))
|
|
399
380
|
} else {
|
|
400
|
-
eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue:
|
|
381
|
+
eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: value as! Double))
|
|
401
382
|
}
|
|
402
383
|
}
|
|
403
384
|
}
|