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.
@@ -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.25"
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
- eventData.setDimension(key.toInt(),value)
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
- eventData.setDimension(key.toInt(), value.toDouble())
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
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, stringValue: value))
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
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue: Double(value as! String) ?? 0.0))
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
- // for dimension in self.eventDimensions {
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] = String(dimension.numValue)
124
+ factDimensions[dimension.key] = dimension.numValue
121
125
  } else {
122
- factDimensions[String(dimension.index)] = String(dimension.numValue)
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
- for dimension in self.eventDimensions {
184
- if dimension.type == Dimension.generalType {
185
- if dimension.index == -1 {
186
- generalDimensions[dimension.key] = dimension.value
187
- } else {
188
- generalDimensions[String(dimension.index)] = dimension.value
189
- }
190
- } else if dimension.type == Dimension.factType {
191
- if dimension.index == -1 {
192
- factDimensions[dimension.key] = String(dimension.numValue)
193
- } else {
194
- factDimensions[String(dimension.index)] = String(dimension.numValue)
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() -> Bool {
398
+ @objc public func isParameterEmpty(_ callback: @escaping RCTResponseSenderBlock) {
413
399
  if dataDictionary.isEmpty {
414
- return true
400
+ callback([true])
415
401
  }
416
- return false
402
+ callback([false])
417
403
  }
418
404
 
419
405
  /// 이벤트에 필요한 Dimension 항목들이 비어 있는지 체크
420
- @objc public func isDimensionEmpty() -> Bool {
406
+ @objc public func isDimensionEmpty(_ callback: @escaping RCTResponseSenderBlock) {
421
407
  if eventDimensions.isEmpty {
422
- return true
408
+ callback([true])
423
409
  }
424
- return false
410
+ callback([false])
425
411
  }
426
412
 
427
413
  /// 이벤트에 필요한 파라미터 항목들의 갯수를 리턴
428
- @objc public func parameterCount() -> Int {
429
- return dataDictionary.count
414
+ @objc public func parameterCount(_ callback: @escaping RCTResponseSenderBlock) {
415
+ callback([dataDictionary.count])
430
416
  }
431
417
 
432
418
  /// 이벤트에 필요한 Dimension 항목들의 갯수를 리턴
433
- @objc public func dimensionCount() -> Int {
434
- return eventDimensions.count
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
@@ -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: Double(value as! String) ?? 0.0))
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: Double(value as! String) ?? 0.0))
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: Double(value as! String) ?? 0.0))
381
+ eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: value as! Double))
401
382
  }
402
383
  }
403
384
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tagworks-sdk-v1-react",
3
- "version": "1.1.18",
3
+ "version": "1.1.19",
4
4
  "description": "TagWorks SDK React Native Library",
5
5
  "source": "./src/index.tsx",
6
6
  "main": "./lib/commonjs/index.js",