tagworks-sdk-v1-react 1.1.21 → 1.1.23
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/OnCmsBannerView.kt +68 -0
- package/android/src/main/java/com/tagworkssdkv1/OnCmsBannerViewManager.kt +23 -52
- 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/OnCMSBannerViewManagerBridge.m +3 -2
- package/ios/OnCmsBannerViewManager.swift +145 -43
- package/ios/TagWorksDeeplinkModule.swift +1 -1
- package/ios/TagWorksDeeplinkModuleBridge.m +0 -34
- package/ios/TagWorksModule.swift +58 -45
- package/ios/TagWorksModuleBridge.m +14 -10
- package/ios/TagWorksPopupModule.swift +41 -24
- package/ios/TagWorksPopupModuleBridge.m +2 -0
- package/lib/commonjs/OnCmsBannerCommands.js +30 -0
- package/lib/commonjs/OnCmsBannerCommands.js.map +1 -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 +21 -5
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/OnCmsBannerCommands.js +25 -0
- package/lib/module/OnCmsBannerCommands.js.map +1 -0
- 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 +8 -5
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/android/build/intermediates/assets/debugAndroidTest/mergeDebugAndroidTestAssets/fingerprint_lib.d.ts +19 -0
- package/lib/typescript/commonjs/android/build/intermediates/assets/debugAndroidTest/mergeDebugAndroidTestAssets/fingerprint_lib.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/OnCmsBannerCommands.d.ts +2 -0
- package/lib/typescript/commonjs/src/OnCmsBannerCommands.d.ts.map +1 -0
- 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/android/build/intermediates/assets/debugAndroidTest/mergeDebugAndroidTestAssets/fingerprint_lib.d.ts +19 -0
- package/lib/typescript/module/android/build/intermediates/assets/debugAndroidTest/mergeDebugAndroidTestAssets/fingerprint_lib.d.ts.map +1 -0
- package/lib/typescript/module/src/OnCmsBannerCommands.d.ts +2 -0
- package/lib/typescript/module/src/OnCmsBannerCommands.d.ts.map +1 -0
- 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 +22 -4
- package/src/OnCmsBannerCommands.js +31 -0
- package/src/RegisterOnCmsBannerView.js +5 -0
- package/src/autoTrackers/ReactNavigationPageTracker.js +137 -0
- package/src/index.js +23 -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) {
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
package com.tagworkssdkv1
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.widget.FrameLayout
|
|
5
|
+
import com.obzen.tagworks.TagWorksPopup
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class OnCmsBannerView(
|
|
9
|
+
context: Context
|
|
10
|
+
) : FrameLayout(context){
|
|
11
|
+
|
|
12
|
+
private var onCmsUrl: String? = null
|
|
13
|
+
private var custId: String?= null
|
|
14
|
+
private var rcmdAreaCd: String? = null
|
|
15
|
+
private var defaultImageRes: Int? = null
|
|
16
|
+
|
|
17
|
+
private var isAttached = false
|
|
18
|
+
|
|
19
|
+
override fun onDetachedFromWindow() {
|
|
20
|
+
super.onDetachedFromWindow()
|
|
21
|
+
removeAllViews()
|
|
22
|
+
isAttached = false
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
|
26
|
+
super.onSizeChanged(w, h, oldw, oldh)
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
fun setOnCmsUrl(url: String) {
|
|
30
|
+
onCmsUrl = url
|
|
31
|
+
tryAttach()
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fun setCustId(id: String?) {
|
|
35
|
+
custId = id
|
|
36
|
+
tryAttach()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
fun setRcmdAreaCd(code: String) {
|
|
40
|
+
rcmdAreaCd = code
|
|
41
|
+
tryAttach()
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
fun setDefaultImage(resId: Int) {
|
|
45
|
+
defaultImageRes = resId
|
|
46
|
+
tryAttach()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private fun tryAttach() {
|
|
50
|
+
if(
|
|
51
|
+
isAttached ||
|
|
52
|
+
onCmsUrl.isNullOrEmpty() ||
|
|
53
|
+
rcmdAreaCd.isNullOrEmpty() ||
|
|
54
|
+
defaultImageRes == null
|
|
55
|
+
) return
|
|
56
|
+
|
|
57
|
+
isAttached = true
|
|
58
|
+
|
|
59
|
+
TagWorksPopup.onCMSPopupBanner(
|
|
60
|
+
onCmsUrl = onCmsUrl!!,
|
|
61
|
+
cust_id = custId,
|
|
62
|
+
rcmd_area_cd = rcmdAreaCd!!,
|
|
63
|
+
bannerView = this,
|
|
64
|
+
context = context,
|
|
65
|
+
defaultImage = defaultImageRes!!
|
|
66
|
+
)
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -1,83 +1,54 @@
|
|
|
1
1
|
package com.tagworkssdkv1
|
|
2
2
|
|
|
3
|
-
import android.util.Log
|
|
4
|
-
import android.widget.FrameLayout
|
|
5
|
-
import com.facebook.react.bridge.ReactContext
|
|
6
3
|
import com.facebook.react.uimanager.SimpleViewManager
|
|
7
4
|
import com.facebook.react.uimanager.ThemedReactContext
|
|
8
5
|
import com.facebook.react.uimanager.annotations.ReactProp
|
|
9
|
-
|
|
6
|
+
|
|
10
7
|
|
|
11
8
|
/**
|
|
12
9
|
* React Native에서 사용할 수 있는 커스텀 네이티브 View를 정의하는 ViewManager 클래스
|
|
13
10
|
* FrameLayout을 기반으로 하며, 외부에서 전달된 props를 통해 배너를 갱신.
|
|
14
11
|
* Created by obzen on 2025-04-23
|
|
15
12
|
*/
|
|
16
|
-
class OnCmsBannerViewManager: SimpleViewManager<
|
|
13
|
+
class OnCmsBannerViewManager: SimpleViewManager<OnCmsBannerView>() {
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
private var defaultImage: String = ""
|
|
15
|
+
override fun getName(): String {
|
|
16
|
+
return "OnCmsBannerView"
|
|
17
|
+
}
|
|
22
18
|
|
|
23
19
|
/**
|
|
24
20
|
* 실제 Native View를 생성하는 함수.
|
|
25
21
|
* React Native에서 <OnCmsBannerView />를 선언하면 호출.
|
|
26
22
|
*/
|
|
27
|
-
override fun createViewInstance(reactContext: ThemedReactContext):
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return frameLayout
|
|
23
|
+
override fun createViewInstance(reactContext: ThemedReactContext): OnCmsBannerView {
|
|
24
|
+
return OnCmsBannerView(reactContext)
|
|
31
25
|
}
|
|
32
26
|
|
|
33
27
|
@ReactProp(name = "onCmsUrl")
|
|
34
|
-
fun setOnCmsUrl(view:
|
|
35
|
-
|
|
36
|
-
attachBanner(view)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@ReactProp(name = "rcmd_area_cd")
|
|
40
|
-
fun setRcmdAreaCd(view: FrameLayout, areaCd: String) {
|
|
41
|
-
rcmdAreaCd = areaCd
|
|
42
|
-
attachBanner(view)
|
|
28
|
+
fun setOnCmsUrl(view: OnCmsBannerView,url: String) {
|
|
29
|
+
view.setOnCmsUrl(url)
|
|
43
30
|
}
|
|
44
31
|
|
|
45
32
|
@ReactProp(name = "cust_id")
|
|
46
|
-
fun setCustId(view:
|
|
47
|
-
|
|
48
|
-
attachBanner(view)
|
|
33
|
+
fun setCustId(view: OnCmsBannerView, id: String?) {
|
|
34
|
+
view.setCustId(id)
|
|
49
35
|
}
|
|
50
36
|
|
|
51
|
-
@ReactProp(name = "
|
|
52
|
-
fun
|
|
53
|
-
|
|
54
|
-
attachBanner(view)
|
|
37
|
+
@ReactProp(name = "rcmd_area_cd")
|
|
38
|
+
fun setRcmdAreaCd(view: OnCmsBannerView, code:String) {
|
|
39
|
+
view.setRcmdAreaCd(code)
|
|
55
40
|
}
|
|
56
41
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
val context = container.context
|
|
64
|
-
val activity = (context as? ReactContext)?.currentActivity
|
|
65
|
-
|
|
66
|
-
val resId = activity?.resources?.getIdentifier(defaultImage, "drawable", activity.packageName)
|
|
67
|
-
|
|
68
|
-
if (resId != null) {
|
|
69
|
-
TagWorksPopup.onCMSPopupBanner(
|
|
70
|
-
onCmsUrl = onCmsUrl,
|
|
71
|
-
cust_id = custId,
|
|
72
|
-
rcmd_area_cd = rcmdAreaCd,
|
|
73
|
-
context = context,
|
|
74
|
-
bannerView = container,
|
|
75
|
-
defaultImage = resId
|
|
42
|
+
@ReactProp(name = "defaultImage")
|
|
43
|
+
fun setDefaultImage(view: OnCmsBannerView, imageName: String) {
|
|
44
|
+
val resId = view.context.resources.getIdentifier(
|
|
45
|
+
imageName,
|
|
46
|
+
"drawable",
|
|
47
|
+
view.context.packageName
|
|
76
48
|
)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
49
|
|
|
80
|
-
|
|
81
|
-
|
|
50
|
+
if (resId != 0) {
|
|
51
|
+
view.setDefaultImage(resId)
|
|
52
|
+
}
|
|
82
53
|
}
|
|
83
54
|
}
|
|
@@ -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 {
|
|
@@ -15,6 +15,7 @@ RCT_EXPORT_VIEW_PROPERTY(rcmd_area_cd, NSString)
|
|
|
15
15
|
RCT_EXPORT_VIEW_PROPERTY(cust_id, NSString)
|
|
16
16
|
RCT_EXPORT_VIEW_PROPERTY(defaultImage, NSString)
|
|
17
17
|
|
|
18
|
-
//
|
|
19
|
-
|
|
18
|
+
// JS에서 호출할 명령 정의
|
|
19
|
+
// RCT_EXTERN_METHOD(setOnCmsBannerParam:(nonnull NSNumber *)reactTag params:(NSDictionary *)params)
|
|
20
|
+
// RCT_EXTERN_METHOD(setOnCmsBannerParam:(NSNumber *) reactTag url:(NSString *)url custId:(NSString *)custId areaCd:(NSString *)areaCd defaultImage:(NSString *)defaultImage)
|
|
20
21
|
@end
|