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.
- package/LICENSE +3 -1
- package/README.md +6 -1049
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/tagworkssdkv1/DataBundleModule.kt +2 -27
- package/android/src/main/java/com/tagworkssdkv1/OnCmsBannerViewManager.kt +0 -1
- package/android/src/main/java/com/tagworkssdkv1/TagWorksDeeplinkModule.kt +2 -2
- package/android/src/main/java/com/tagworkssdkv1/TagWorksModule.kt +47 -35
- package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Package.kt +1 -1
- package/ios/DataBundleModule.swift +8 -8
- package/ios/OnCmsBannerViewManager.swift +1 -1
- package/ios/TagWorksDeeplinkModule.swift +1 -1
- package/ios/TagWorksDeeplinkModuleBridge.m +0 -34
- package/ios/TagWorksModule.swift +48 -12
- package/ios/TagWorksModuleBridge.m +5 -1
- package/ios/TagWorksPopupModule.swift +41 -24
- package/ios/TagWorksPopupModuleBridge.m +2 -0
- package/lib/commonjs/RegisterOnCmsBannerView.js +10 -0
- package/lib/commonjs/RegisterOnCmsBannerView.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 +20 -6
- 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/autoTrackers/ReactNavigationPageTracker.js +131 -0
- package/lib/module/autoTrackers/ReactNavigationPageTracker.js.map +1 -0
- package/lib/module/index.js +7 -5
- package/lib/module/index.js.map +1 -1
- 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/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 +3 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- 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/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 +3 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +24 -4
- package/src/RegisterOnCmsBannerView.js +5 -0
- package/src/autoTrackers/ReactNavigationPageTracker.js +137 -0
- package/src/index.js +22 -6
- package/tagworks-sdk-v1-react.podspec +3 -2
- package/android/src/main/java/com/tagworkssdkv1/TagWorks.kt +0 -37
- package/android/src/main/java/com/tagworkssdkv1/TagworksSdkV1Module.kt +0 -25
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
|
-
|
|
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
|
|
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
|
|
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) {
|
|
@@ -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.
|
|
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.
|
|
16
|
-
import com.obzen.tagworks.
|
|
17
|
-
import com.obzen.tagworks.
|
|
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().
|
|
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
|
|
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
|
|
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(
|
|
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
|
|
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: [
|
|
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(
|
|
80
|
+
self.eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, stringValue: value))
|
|
81
81
|
} else {
|
|
82
|
-
self.eventDimensions.append(
|
|
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(
|
|
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(
|
|
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:
|
|
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:
|
|
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 {
|
|
@@ -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
|
package/ios/TagWorksModule.swift
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
import Foundation
|
|
9
9
|
import React
|
|
10
|
-
import
|
|
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
|
|
123
|
-
|
|
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 =
|
|
376
|
-
var eventDimensions: [
|
|
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(
|
|
441
|
+
eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(key: key, value: value))
|
|
406
442
|
} else {
|
|
407
443
|
if Int(key) != nil {
|
|
408
|
-
eventDimensions.append(
|
|
444
|
+
eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, value: value))
|
|
409
445
|
} else {
|
|
410
|
-
eventDimensions.append(
|
|
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(
|
|
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(
|
|
459
|
+
eventDimensions.append(TagWorks_SDK_iOS_v1.Dimension(index: Int(key)!, numValue: value as! Double))
|
|
424
460
|
} else {
|
|
425
|
-
eventDimensions.append(
|
|
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
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
}
|
|
@@ -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":[]}
|