rn-linkrunner 2.7.0 → 2.7.2
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.
|
@@ -38,7 +38,7 @@ class LinkrunnerModule(private val reactContext: ReactApplicationContext) : Reac
|
|
|
38
38
|
val keyId = options?.getString("keyId")
|
|
39
39
|
val debug = options?.getBoolean("debug") ?: false
|
|
40
40
|
|
|
41
|
-
val packageVersion = options?.getString("packageVersion") ?: "2.7.
|
|
41
|
+
val packageVersion = options?.getString("packageVersion") ?: "2.7.2" // React Native package version
|
|
42
42
|
|
|
43
43
|
if (token.isEmpty()) {
|
|
44
44
|
promise.reject("INIT_ERROR", "Token is required")
|
package/ios/LinkrunnerSDK.swift
CHANGED
|
@@ -184,12 +184,59 @@ class LinkrunnerSDK: NSObject {
|
|
|
184
184
|
|
|
185
185
|
@objc func getAttributionData(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
186
186
|
Task {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
187
|
+
let attributionData = await linkrunnerSDK.getAttributionData()
|
|
188
|
+
|
|
189
|
+
var response: [String: Any] = [:]
|
|
190
|
+
|
|
191
|
+
if let deeplink = attributionData.deeplink {
|
|
192
|
+
response["deeplink"] = deeplink
|
|
192
193
|
}
|
|
194
|
+
|
|
195
|
+
if let campaignData = attributionData.campaignData {
|
|
196
|
+
let dateFormatter = ISO8601DateFormatter()
|
|
197
|
+
dateFormatter.formatOptions = [.withInternetDateTime]
|
|
198
|
+
|
|
199
|
+
var campaignDataMap: [String: Any] = [
|
|
200
|
+
"id": campaignData.id,
|
|
201
|
+
"name": campaignData.name,
|
|
202
|
+
"type": campaignData.type.rawValue
|
|
203
|
+
]
|
|
204
|
+
|
|
205
|
+
if let adNetwork = campaignData.adNetwork {
|
|
206
|
+
// camelCase (correct, matches TypeScript type and Android)
|
|
207
|
+
campaignDataMap["adNetwork"] = adNetwork.rawValue
|
|
208
|
+
// snake_case (deprecated, for backward compatibility)
|
|
209
|
+
campaignDataMap["ad_network"] = adNetwork.rawValue
|
|
210
|
+
}
|
|
211
|
+
if let groupName = campaignData.groupName {
|
|
212
|
+
campaignDataMap["groupName"] = groupName
|
|
213
|
+
campaignDataMap["group_name"] = groupName
|
|
214
|
+
}
|
|
215
|
+
if let assetGroupName = campaignData.assetGroupName {
|
|
216
|
+
campaignDataMap["assetGroupName"] = assetGroupName
|
|
217
|
+
campaignDataMap["asset_group_name"] = assetGroupName
|
|
218
|
+
}
|
|
219
|
+
if let assetName = campaignData.assetName {
|
|
220
|
+
campaignDataMap["assetName"] = assetName
|
|
221
|
+
campaignDataMap["asset_name"] = assetName
|
|
222
|
+
}
|
|
223
|
+
let installedAtDate = campaignData.installedAt ?? Date()
|
|
224
|
+
let installedAtString = dateFormatter.string(from: installedAtDate)
|
|
225
|
+
campaignDataMap["installedAt"] = installedAtString
|
|
226
|
+
campaignDataMap["installed_at"] = installedAtString
|
|
227
|
+
if let storeClickAt = campaignData.storeClickAt {
|
|
228
|
+
let dateString = dateFormatter.string(from: storeClickAt)
|
|
229
|
+
campaignDataMap["storeClickAt"] = dateString
|
|
230
|
+
campaignDataMap["store_click_at"] = dateString
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// camelCase (correct, matches TypeScript type and Android)
|
|
234
|
+
response["campaignData"] = campaignDataMap
|
|
235
|
+
// snake_case (deprecated, for backward compatibility)
|
|
236
|
+
response["campaign_data"] = campaignDataMap
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
resolve(response)
|
|
193
240
|
}
|
|
194
241
|
}
|
|
195
242
|
|