tagworks-sdk-v1-react 1.1.21 → 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.
Files changed (47) hide show
  1. package/LICENSE +3 -1
  2. package/README.md +6 -1049
  3. package/android/build.gradle +1 -1
  4. package/android/src/main/java/com/tagworkssdkv1/DataBundleModule.kt +2 -27
  5. package/android/src/main/java/com/tagworkssdkv1/OnCmsBannerViewManager.kt +0 -1
  6. package/android/src/main/java/com/tagworkssdkv1/TagWorksDeeplinkModule.kt +2 -2
  7. package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +47 -35
  8. package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Package.kt +1 -1
  9. package/ios/DataBundleModule.swift +8 -8
  10. package/ios/OnCmsBannerViewManager.swift +1 -1
  11. package/ios/TagWorksDeeplinkModule.swift +1 -1
  12. package/ios/TagWorksDeeplinkModuleBridge.m +0 -34
  13. package/ios/TagWorksModule.swift +48 -12
  14. package/ios/TagWorksModuleBridge.m +5 -1
  15. package/ios/TagWorksPopupModule.swift +41 -24
  16. package/ios/TagWorksPopupModuleBridge.m +2 -0
  17. package/lib/commonjs/RegisterOnCmsBannerView.js +10 -0
  18. package/lib/commonjs/RegisterOnCmsBannerView.js.map +1 -0
  19. package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js +135 -0
  20. package/lib/commonjs/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
  21. package/lib/commonjs/index.js +20 -6
  22. package/lib/commonjs/index.js.map +1 -1
  23. package/lib/module/RegisterOnCmsBannerView.js +6 -0
  24. package/lib/module/RegisterOnCmsBannerView.js.map +1 -0
  25. package/lib/module/autoTrackers/ReactNavigationPageTracker.js +131 -0
  26. package/lib/module/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
  27. package/lib/module/index.js +7 -5
  28. package/lib/module/index.js.map +1 -1
  29. package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts +3 -0
  30. package/lib/typescript/commonjs/src/RegisterOnCmsBannerView.d.ts.map +1 -0
  31. package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
  32. package/lib/typescript/commonjs/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
  33. package/lib/typescript/commonjs/src/index.d.ts +3 -2
  34. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  35. package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts +3 -0
  36. package/lib/typescript/module/src/RegisterOnCmsBannerView.d.ts.map +1 -0
  37. package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts +12 -0
  38. package/lib/typescript/module/src/autoTrackers/ReactNavigationPageTracker.d.ts.map +1 -0
  39. package/lib/typescript/module/src/index.d.ts +3 -2
  40. package/lib/typescript/module/src/index.d.ts.map +1 -1
  41. package/package.json +24 -4
  42. package/src/RegisterOnCmsBannerView.js +5 -0
  43. package/src/autoTrackers/ReactNavigationPageTracker.js +137 -0
  44. package/src/index.js +22 -6
  45. package/tagworks-sdk-v1-react.podspec +3 -2
  46. package/android/src/main/java/com/tagworkssdkv1/TagWorks.kt +0 -37
  47. package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Module.kt +0 -25
@@ -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.31"
103
+ api "com.obzen.tagworks:tagworks-v1-kotlin:1.1.35"
104
104
  }
105
105
 
@@ -8,7 +8,6 @@ import com.facebook.react.bridge.ReactMethod
8
8
  import com.obzen.tagworks.TagWorks
9
9
  import com.obzen.tagworks.event.data.DataBundle
10
10
  import com.obzen.tagworks.event.data.DimensionType
11
- import com.obzen.tagworks.util.Logger
12
11
  import org.json.JSONArray
13
12
  import org.json.JSONObject
14
13
 
@@ -180,23 +179,11 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
180
179
  }
181
180
  }
182
181
 
183
- val generalWrapper = JSONObject().apply {
182
+ val result = JSONObject().apply {
184
183
  put("General", generalDimensions)
185
- }
186
-
187
- val factWrapper = JSONObject().apply {
188
184
  put("Fact", factDimensions)
189
185
  }
190
186
 
191
- val dimensionsArray = JSONArray().apply {
192
- put(generalWrapper)
193
- put(factWrapper)
194
- }
195
-
196
- val result = JSONObject().apply {
197
- put("Dimensions", dimensionsArray)
198
- }
199
-
200
187
  val jsonString = result.toString(4)
201
188
  callback.invoke(jsonString)
202
189
  } catch (e: Exception) {
@@ -226,23 +213,11 @@ class DataBundleModule(context: ReactApplicationContext):ReactContextBaseJavaMod
226
213
  }
227
214
  }
228
215
 
229
- val generalWrapper = JSONObject().apply {
216
+ val result = JSONObject().apply {
230
217
  put("General", generalDimensions)
231
- }
232
-
233
- val factWrapper = JSONObject().apply {
234
218
  put("Fact", factDimensions)
235
219
  }
236
220
 
237
- val dimensionsArray = JSONArray().apply {
238
- put(generalWrapper)
239
- put(factWrapper)
240
- }
241
-
242
- val result = JSONObject().apply {
243
- put("Dimensions", dimensionsArray)
244
- }
245
-
246
221
  val jsonString = result.toString(4)
247
222
  callback.invoke(jsonString)
248
223
  } catch (e: Exception) {
@@ -1,6 +1,5 @@
1
1
  package com.tagworkssdkv1
2
2
 
3
- import android.util.Log
4
3
  import android.widget.FrameLayout
5
4
  import com.facebook.react.bridge.ReactContext
6
5
  import com.facebook.react.uimanager.SimpleViewManager
@@ -13,7 +13,7 @@ import com.facebook.react.bridge.UiThreadUtil
13
13
  import com.facebook.react.modules.core.RCTNativeAppEventEmitter
14
14
  import com.obzen.tagworks.TagWorks
15
15
  import com.obzen.tagworks.TagWorksDeeplink
16
- import com.obzen.tagworks.util.Logger.Companion.e
16
+ import com.obzen.tagworks.common.Logger
17
17
 
18
18
  class TagWorksDeeplinkModule(private val reactContext: ReactApplicationContext) :
19
19
  ReactContextBaseJavaModule(reactContext),ActivityEventListener {
@@ -54,7 +54,7 @@ class TagWorksDeeplinkModule(private val reactContext: ReactApplicationContext)
54
54
  UiThreadUtil.runOnUiThread { emitDeeplink(null, false) }
55
55
  }
56
56
  } catch (t: Throwable) {
57
- e(TagWorks.getInstance().tag, "reportDeeplinkUrl error for: $url")
57
+ Logger.e(TagWorks.getInstance().tag, "reportDeeplinkUrl error for: $url")
58
58
  UiThreadUtil.runOnUiThread { emitDeeplink(null, false) }
59
59
  }
60
60
  }
@@ -5,18 +5,18 @@ 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
9
10
  import com.facebook.react.bridge.UiThreadUtil
10
11
  import com.obzen.tagworks.TagWorks
11
12
  import com.obzen.tagworks.TagWorksConfig
13
+ import com.obzen.tagworks.common.Logger
12
14
  import com.obzen.tagworks.event.data.DataBundle
13
15
  import com.obzen.tagworks.event.data.Dimension
14
16
  import com.obzen.tagworks.event.data.DimensionType
15
- import com.obzen.tagworks.util.Logger
16
- import com.obzen.tagworks.util.Logger.Companion.d
17
- import com.obzen.tagworks.util.WebAppInterface
18
- import com.obzen.tagworks.util.WebAppInterface.Companion.MessageHandlerName
19
- import com.obzen.tagworks.util.WebAppOnCmsInterface
17
+ import com.obzen.tagworks.web.WebAppInterface
18
+ import com.obzen.tagworks.web.WebAppInterface.Companion.MessageHandlerName
19
+ import com.obzen.tagworks.web.WebAppOnCmsInterface
20
20
  import org.json.JSONArray
21
21
  import org.json.JSONObject
22
22
 
@@ -132,12 +132,40 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
132
132
  @ReactMethod
133
133
  fun getDeeplinkServerUrl(callback: Callback) {
134
134
  try {
135
- callback.invoke(TagWorks.getInstance().isUseIntervals)
135
+ callback.invoke(TagWorks.getInstance().deeplinkServerUrl)
136
136
  } catch (e:Exception) {
137
137
  callback.invoke("error :",e.message)
138
138
  }
139
139
  }
140
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
+ }
162
+ }
163
+
164
+ if (classList.isNotEmpty()) {
165
+ TagWorks.getInstance().excludeAutoTrackingPages(classList)
166
+ }
167
+ }
168
+
141
169
 
142
170
  /**
143
171
  * 공용 dimension 설정
@@ -189,23 +217,11 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
189
217
  }
190
218
  }
191
219
 
192
- val generalWrapper = JSONObject().apply {
220
+ val result = JSONObject().apply {
193
221
  put("General", generalDimensions)
194
- }
195
-
196
- val factWrapper = JSONObject().apply {
197
222
  put("Fact", factDimensions)
198
223
  }
199
224
 
200
- val dimensionsArray = JSONArray().apply {
201
- put(generalWrapper)
202
- put(factWrapper)
203
- }
204
-
205
- val result = JSONObject().apply {
206
- put("Dimensions", dimensionsArray)
207
- }
208
-
209
225
  val jsonString = result.toString(4)
210
226
 
211
227
  callback.invoke(jsonString)
@@ -241,25 +257,12 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
241
257
  }
242
258
  }
243
259
 
244
- val generalWrapper = JSONObject().apply {
260
+ val result = JSONObject().apply {
245
261
  put("General", generalDimensions)
246
- }
247
-
248
- val factWrapper = JSONObject().apply {
249
262
  put("Fact", factDimensions)
250
263
  }
251
264
 
252
- val dimensionsArray = JSONArray().apply {
253
- put(generalWrapper)
254
- put(factWrapper)
255
- }
256
-
257
- val result = JSONObject().apply {
258
- put("Dimensions", dimensionsArray)
259
- }
260
-
261
265
  val jsonString = result.toString(4)
262
-
263
266
  callback.invoke(jsonString)
264
267
  } catch (e: Exception) {
265
268
  // 오류 처리
@@ -423,6 +426,15 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
423
426
 
424
427
  }
425
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
+
426
438
  @ReactMethod
427
439
  fun saveErrorReport(errorType: String, errorMessage: String) {
428
440
  TagWorks.getInstance().saveErrorReport(errorType, errorMessage)
@@ -430,7 +442,7 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
430
442
 
431
443
  @ReactMethod
432
444
  fun webInterfaceDidReceive(jsonEventString: String) {
433
- d(TagWorks.getInstance().tag,jsonEventString)
445
+ Logger.d(TagWorks.getInstance().tag,jsonEventString)
434
446
  try {
435
447
 
436
448
  val jsonObj = JSONObject(jsonEventString)
@@ -445,7 +457,7 @@ class TagWorksModule(reactContext: ReactApplicationContext):ReactContextBaseJava
445
457
  val currentActivity = reactApplicationContext.currentActivity ?: return
446
458
 
447
459
  if (currentActivity == null) {
448
- d(TagWorks.getInstance().tag, "currentActivity is null; cannot show popup yet")
460
+ Logger.d(TagWorks.getInstance().tag, "currentActivity is null; cannot show popup yet")
449
461
  return
450
462
  }
451
463
  val hasCommand = jsonObj.has("command")
@@ -9,7 +9,7 @@ import com.facebook.react.uimanager.ViewManager
9
9
  class TagworksSdkV1Package : ReactPackage {
10
10
  override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
11
11
  // return listOf(TagworksSdkV1Module(reactContext))
12
- return listOf(TagworksSdkV1Module(reactContext),
12
+ return listOf(
13
13
  TagWorksPopupModule(reactContext),
14
14
  DataBundleModule(reactContext),
15
15
  TagWorksModule(reactContext),
@@ -7,13 +7,13 @@
7
7
 
8
8
  import Foundation
9
9
  import React
10
- import TagWorks_SDK_iOS
10
+ import TagWorks_SDK_iOS_v1
11
11
 
12
12
  @objc(DataBundleModule)
13
13
  class DataBundleModule: NSObject, RCTBridgeModule {
14
14
 
15
15
  var dataDictionary: [String: String] = [:]
16
- var eventDimensions: [TagWorks_SDK_iOS.Dimension] = []
16
+ var eventDimensions: [TagWorks_SDK_iOS_v1.Dimension] = []
17
17
 
18
18
  static func moduleName() -> String {
19
19
  return "DataBundleModule"
@@ -77,9 +77,9 @@ class DataBundleModule: NSObject, RCTBridgeModule {
77
77
  for (key, value) in genericDimensions {
78
78
  // if TagWorks_SDK_iOS.TagWorks.sharedInstance.isUseDynamicParameter == false {
79
79
  if Int(key) != nil {
80
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, stringValue: value))
80
+ self.eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, stringValue: value))
81
81
  } else {
82
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, value: value))
82
+ self.eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, value: value))
83
83
  }
84
84
  }
85
85
  }
@@ -89,9 +89,9 @@ class DataBundleModule: NSObject, RCTBridgeModule {
89
89
  for (key, value) in factDimensions {
90
90
  // if TagWorks_SDK_iOS.TagWorks.sharedInstance.isUseDynamicParameter == false {
91
91
  if Int(key) != nil {
92
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue: Double(value as! String) ?? 0.0))
92
+ self.eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, numValue: Double(value as! String) ?? 0.0))
93
93
  } else {
94
- self.eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: Double(value as! String) ?? 0.0))
94
+ self.eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, numValue: Double(value as! String) ?? 0.0))
95
95
  }
96
96
  }
97
97
  }
@@ -256,7 +256,7 @@ class DataBundleModule: NSObject, RCTBridgeModule {
256
256
  }
257
257
 
258
258
  @objc func getDimensionWithString(_ index: Int, callback: @escaping RCTResponseSenderBlock) {
259
- let dimension: TagWorks_SDK_iOS.Dimension? = self.eventDimensions.filter {$0.index == index && $0.type == Dimension.generalType}.first
259
+ let dimension: TagWorks_SDK_iOS_v1.Dimension? = self.eventDimensions.filter {$0.index == index && $0.type == Dimension.generalType}.first
260
260
  if let dimension {
261
261
  callback([dimension.value])
262
262
  } else {
@@ -265,7 +265,7 @@ class DataBundleModule: NSObject, RCTBridgeModule {
265
265
  }
266
266
 
267
267
  @objc func getDimensionWithDouble(_ index: Int, callback: @escaping RCTResponseSenderBlock) {
268
- let dimension: TagWorks_SDK_iOS.Dimension? = self.eventDimensions.filter {$0.index == index && $0.type == Dimension.factType}.first
268
+ let dimension: TagWorks_SDK_iOS_v1.Dimension? = self.eventDimensions.filter {$0.index == index && $0.type == Dimension.factType}.first
269
269
  if let dimension {
270
270
  callback([String(dimension.numValue)])
271
271
  } else {
@@ -6,7 +6,7 @@
6
6
  //
7
7
 
8
8
  import Foundation
9
- import TagWorks_SDK_iOS
9
+ import TagWorks_SDK_iOS_v1
10
10
 
11
11
  @objc(OnCmsBannerViewManager)
12
12
  class OnCmsBannerViewManager: RCTViewManager {
@@ -7,7 +7,7 @@
7
7
 
8
8
  import Foundation
9
9
  import React
10
- import TagWorks_SDK_iOS
10
+ import TagWorks_SDK_iOS_v1
11
11
 
12
12
  @objc(TagWorksDeeplinkModule)
13
13
  // class TagWorksDeeplinkModule: NSObject, RCTBridgeModule {
@@ -13,41 +13,7 @@
13
13
  RCT_EXTERN_METHOD(handleDeeplinkUrl:(NSString *) url)
14
14
  RCT_EXTERN_METHOD(handleDeferredDeeplink)
15
15
 
16
- //RCT_EXTERN_METHOD(setLogLevel:(int)level)
17
- //RCT_EXTERN_METHOD(setOptOut:(BOOL)value)
18
- //RCT_EXTERN_METHOD(setUserId:(NSString *)value)
19
- //RCT_EXTERN_METHOD(setAdId:(NSString *)value)
20
- //RCT_EXTERN_METHOD(dispatch:(RCTResponseSenderBlock) callback)
21
- //
22
- //RCT_EXTERN_METHOD(setCommonDimensionWithString:(int)index value:(NSString *)value)
23
- //RCT_EXTERN_METHOD(setCommonDimensionWithDouble:(int)index value:(double)value)
24
- //
25
- //RCT_EXTERN_METHOD(getCommonDimensions:(RCTResponseSenderBlock) callback)
26
- //RCT_EXTERN_METHOD(getCommonDimensionsOfArrayIndex:(RCTResponseSenderBlock) callback)
27
16
  //RCT_EXTERN_METHOD(getCommonDimensionWithString:(int)index callback:(RCTResponseSenderBlock) callback)
28
17
  //RCT_EXTERN_METHOD(getCommonDimensionWithDouble:(int)index callback:(RCTResponseSenderBlock) callback)
29
- //
30
- //RCT_EXTERN_METHOD(removeCommonDimensionInGeneralType:(int)index)
31
- //RCT_EXTERN_METHOD(removeCommonDimensionInFactType:(int)index)
32
- //RCT_EXTERN_METHOD(removeCommonDimensionWithArrayIndex:(int)index)
33
- //RCT_EXTERN_METHOD(removeAllCommonDimension)
34
- //
35
- //// -- 동적 파라미터
36
- //RCT_EXTERN_METHOD(setDynamicCommonDimensionWithString:(NSString *)key value:(NSString *)value)
37
- //RCT_EXTERN_METHOD(setDynamicCommonDimensionWithDouble:(NSString *)key value:(double)value)
38
- //
39
- //RCT_EXTERN_METHOD(getDynamicCommonDimensions:(RCTResponseSenderBlock) callback)
40
- //RCT_EXTERN_METHOD(getDynamicCommonDimensionsOfArrayIndex:(RCTResponseSenderBlock) callback)
41
- //RCT_EXTERN_METHOD(getDynamicCommonDimension:(NSString *)key callback:(RCTResponseSenderBlock) callback)
42
- //
43
- //RCT_EXTERN_METHOD(removeDynamicCommonDimension:(NSString *)key)
44
- //RCT_EXTERN_METHOD(removeDynamicCommonDimensionWithArrayIndex:(int)index)
45
- //RCT_EXTERN_METHOD(removeAllDynamicCommonDimension)
46
- //
47
- //RCT_EXTERN_METHOD(logEvent:(NSString *)type dataBundleString:(NSString *)dataBundleString callback:(RCTResponseSenderBlock) callback)
48
- //RCT_EXTERN_METHOD(webInterfaceDidReceive:(NSString *) message)
49
- //RCT_EXTERN_METHOD(sendReferrerEventWithOpenUrlString:(NSString *) openURLString)
50
- //
51
- //RCT_EXTERN_METHOD(saveErrorReport:(NSString *)errorType errorMessage:(NSString *)errorMessage)
52
18
 
53
19
  @end
@@ -7,7 +7,7 @@
7
7
 
8
8
  import Foundation
9
9
  import React
10
- import TagWorks_SDK_iOS
10
+ import TagWorks_SDK_iOS_v1
11
11
 
12
12
  @objc(TagWorksModule)
13
13
  class TagWorksModule: NSObject, RCTBridgeModule {
@@ -95,6 +95,12 @@ class TagWorksModule: NSObject, RCTBridgeModule {
95
95
  TagWorks.sharedInstance.isDebugLogPrint = value
96
96
  }
97
97
 
98
+ @objc func enableTestTool(_ value: Bool) {
99
+ DispatchQueue.main.async {
100
+ TagWorks.sharedInstance.testMode = value
101
+ }
102
+ }
103
+
98
104
  @objc func setLogLevel(_ level: Int) {
99
105
  if level <= 3 {
100
106
  TagWorks.sharedInstance.isDebugLogPrint = true
@@ -118,9 +124,39 @@ class TagWorksModule: NSObject, RCTBridgeModule {
118
124
  @objc func setAutoTrackingPage(_ value: Bool) {
119
125
  TagWorks.sharedInstance.autoTrackingPage = value
120
126
  }
121
-
122
- @objc func isInitialize() -> Bool {
123
- return TagWorks.sharedInstance.isInitialize()
127
+
128
+ @objc func excludeAutoTrackingPages(_ pageClassNames: [String]) {
129
+
130
+ // 1. RN에서 받은 클래스 이름(String) 배열을 AnyClass 객체 배열로 변환
131
+ var pageClasses: [AnyClass] = []
132
+
133
+ for className in pageClassNames {
134
+ // 문자열로부터 Class 객체 생성 (Objective-C의 NSClassFromString에 해당)
135
+ // Bundle.main.classNamed(className) 또는 NSClassFromString(className) 사용
136
+ if let pageClass = NSClassFromString(className) {
137
+ pageClasses.append(pageClass)
138
+ } else {
139
+ print("Warning: Class \(className) not found.")
140
+ }
141
+ }
142
+
143
+ // 2. 변환된 Class 배열을 TagWorks 함수로 전달
144
+ TagWorks.sharedInstance.excludeAutoTrackingPages(pageClasses)
145
+ }
146
+
147
+ @objc func getAdId(_ callback: @escaping RCTResponseSenderBlock) {
148
+ let result = TagWorks.sharedInstance.adId
149
+ callback([result ?? ""])
150
+ }
151
+
152
+ @objc func getVisitorId(_ callback: @escaping RCTResponseSenderBlock) {
153
+ let result = TagWorks.sharedInstance.visitorId
154
+ callback([result])
155
+ }
156
+
157
+ @objc func isInitialize(_ callback: @escaping RCTResponseSenderBlock) {
158
+ let result = TagWorks.sharedInstance.isInitialize()
159
+ callback([result])
124
160
  }
125
161
 
126
162
  @objc public func dispatch(_ callback: @escaping RCTResponseSenderBlock) {
@@ -372,8 +408,8 @@ class TagWorksModule: NSObject, RCTBridgeModule {
372
408
 
373
409
  @objc func logEvent(_ type: String, dataBundleString: String, callback: @escaping RCTResponseSenderBlock) {
374
410
 
375
- let dataBundle = TagWorks_SDK_iOS.DataBundle()
376
- var eventDimensions: [TagWorks_SDK_iOS.Dimension] = []
411
+ let dataBundle = TagWorks_SDK_iOS_v1.DataBundle()
412
+ var eventDimensions: [TagWorks_SDK_iOS_v1.Dimension] = []
377
413
 
378
414
  // dataBundleString을 Dictioanary로 변환 후 DataBundle 값을 채움
379
415
  if let data = dataBundleString.data(using: .utf8) {
@@ -402,12 +438,12 @@ class TagWorksModule: NSObject, RCTBridgeModule {
402
438
 
403
439
  for (key, value) in genericDimensions {
404
440
  if TagWorks.sharedInstance.isUseDynamicParameter {
405
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, value: value))
441
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, value: value))
406
442
  } else {
407
443
  if Int(key) != nil {
408
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, value: value))
444
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, value: value))
409
445
  } else {
410
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, value: value))
446
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, value: value))
411
447
  }
412
448
  }
413
449
  }
@@ -417,12 +453,12 @@ class TagWorksModule: NSObject, RCTBridgeModule {
417
453
 
418
454
  for (key, value) in factDimensions {
419
455
  if TagWorks.sharedInstance.isUseDynamicParameter {
420
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: value as! Double))
456
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, numValue: value as! Double))
421
457
  } else {
422
458
  if Int(key) != nil {
423
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(index: Int(key)!, numValue: value as! Double))
459
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, numValue: value as! Double))
424
460
  } else {
425
- eventDimensions.append(TagWorks_SDK_iOS.Dimension(key: key, numValue: value as! Double))
461
+ eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, numValue: value as! Double))
426
462
  }
427
463
  }
428
464
  }
@@ -33,11 +33,16 @@ RCT_EXTERN_METHOD(initializeTagWorks:(NSString *)siteId
33
33
  deeplinkServerUrl:(NSString *)deeplinkServerUrl)
34
34
 
35
35
  RCT_EXTERN_METHOD(setIsDebugPrint:(BOOL)value)
36
+ RCT_EXTERN_METHOD(enableTestTool:(BOOL)value)
36
37
  RCT_EXTERN_METHOD(setLogLevel:(int)level)
37
38
  RCT_EXTERN_METHOD(setOptOut:(BOOL)value)
38
39
  RCT_EXTERN_METHOD(setUserId:(NSString *)value)
39
40
  RCT_EXTERN_METHOD(setAdId:(NSString *)value)
40
41
  RCT_EXTERN_METHOD(setAutoTrackingPage:(BOOL)value)
42
+ RCT_EXTERN_METHOD(excludeAutoTrackingPages:(NSArray<NSString *> *)pageClassNames)
43
+ RCT_EXTERN_METHOD(getAdId:(RCTResponseSenderBlock) callback)
44
+ RCT_EXTERN_METHOD(getVisitorId:(RCTResponseSenderBlock) callback)
45
+ RCT_EXTERN_METHOD(isInitialize:(RCTResponseSenderBlock) callback)
41
46
  RCT_EXTERN_METHOD(dispatch:(RCTResponseSenderBlock) callback)
42
47
 
43
48
  RCT_EXTERN_METHOD(setCommonDimensionWithString:(int)index value:(NSString *)value)
@@ -73,4 +78,3 @@ RCT_EXTERN_METHOD(saveErrorReport:(NSString *)errorType errorMessage:(NSString *
73
78
 
74
79
  @end
75
80
 
76
-
@@ -7,41 +7,58 @@
7
7
 
8
8
  import Foundation
9
9
  import React
10
- import TagWorks_SDK_iOS
10
+ import TagWorks_SDK_iOS_v1
11
11
 
12
12
  @objc(TagWorksPopupModule)
13
13
  class TagWorksPopupModule: NSObject, RCTBridgeModule {
14
-
14
+
15
15
  static func moduleName() -> String {
16
16
  return "TagWorksPopupModule"
17
17
  }
18
-
18
+
19
19
  // 네이티브 모듈에서 사용할 상수값을 반환하는 함수
20
20
  @objc static func requiresMainQueueSetup() -> Bool {
21
21
  return true
22
22
  }
23
-
23
+
24
24
  @objc public func onCMSPopup(_ onCmsUrl: String, custId: String, rcmdAreaCd: String) {
25
- DispatchQueue.main.async {
26
- guard var currentViewController = UIApplication.shared.delegate?.window??.rootViewController else {
27
- return
25
+ DispatchQueue.main.async {
26
+ guard var currentViewController = UIApplication.shared.delegate?.window??.rootViewController else {
27
+ return
28
+ }
29
+
30
+ while let presented = currentViewController.presentedViewController {
31
+ currentViewController = presented
32
+ }
33
+
34
+ TagWorksPopup.sharedInstance.onCMSPopup(onCmsUrl: onCmsUrl,
35
+ cust_id: custId,
36
+ rcmd_area_cd: rcmdAreaCd,
37
+ owner: currentViewController)
38
+
39
+ // Survey 테스트
40
+ // TagWorksPopup.sharedInstance.onCMSPopup(onCmsUrl: "https://dxlab.obzen.com/oncms",
41
+ // cntn_id: "BUZURWbe",
42
+ // cust_id: "C0000000001",
43
+ // rcmd_area_cd: "SURV_AREA_1",
44
+ // owner: currentViewController)
28
45
  }
29
-
30
- while let presented = currentViewController.presentedViewController {
31
- currentViewController = presented
32
- }
33
-
34
-
35
- // TagWorksPopup.sharedInstance.onCMSPopup(onCmsUrl: onCmsUrl,
36
- // cust_id: custId,
37
- // rcmd_area_cd: rcmdAreaCd,
38
- // owner: currentViewController)
39
- // Survey 테스트
40
- TagWorksPopup.sharedInstance.onCMSPopup(onCmsUrl: "https://dxlab.obzen.com/oncms",
41
- cntn_id: "BUZURWbe",
42
- cust_id: "C0000000001",
43
- rcmd_area_cd: "SURV_AREA_1",
44
- owner: currentViewController)
45
- }
46
46
  }
47
+
48
+ // 리소스 참조 테스트 코드
49
+ // @objc func getImageBase64(_ resolve: RCTPromiseResolveBlock, rejecter reject: RCTPromiseRejectBlock) {
50
+ // let bundle = Bundle(for: TagWorks.self)
51
+ // let imageName = "close-bg-cross.png"
52
+ //
53
+ // guard let image = UIImage(named: imageName, in: bundle, compatibleWith: nil) else {
54
+ // reject("no_image", "Image not found", nil)
55
+ // return
56
+ // }
57
+ // if let imageData = image.pngData() {
58
+ // let base64String = imageData.base64EncodedString()
59
+ // resolve(base64String)
60
+ // } else {
61
+ // reject("encoding_error", "Failed to encode image", nil)
62
+ // }
63
+ // }
47
64
  }
@@ -12,4 +12,6 @@
12
12
 
13
13
  RCT_EXTERN_METHOD(onCMSPopup:(NSString *)onCmsUrl custId:(NSString *)custId rcmdAreaCd:(NSString *)rcmdAreaCd);
14
14
 
15
+ // Test용
16
+ //RCT_EXTERN_METHOD(getImageBase64:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject);
15
17
  @end
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ const OnCmsBannerView = (0, _reactNative.requireNativeComponent)('OnCmsBannerView');
9
+ var _default = exports.default = OnCmsBannerView;
10
+ //# sourceMappingURL=RegisterOnCmsBannerView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","OnCmsBannerView","requireNativeComponent","_default","exports","default"],"sourceRoot":"../../src","sources":["RegisterOnCmsBannerView.js"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,eAAe,GAAG,IAAAC,mCAAsB,EAAC,iBAAiB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEnDJ,eAAe","ignoreList":[]}