@snowplow/react-native-tracker 1.2.0 → 1.3.0
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/RNSnowplowTracker.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/gradle/wrapper/gradle-wrapper.properties +1 -1
- package/android/src/main/java/com/snowplowanalytics/react/tracker/RNSnowplowTrackerModule.java +63 -32
- package/android/src/main/java/com/snowplowanalytics/react/util/ConfigUtil.java +6 -0
- package/android/src/main/java/com/snowplowanalytics/react/util/TrackerVersion.java +1 -1
- package/dist/index.d.ts +37 -1
- package/dist/index.js +80 -3
- package/dist/index.js.map +1 -1
- package/ios/RNSnowplowTracker.m +111 -100
- package/ios/RNSnowplowTracker.xcodeproj/project.pbxproj +0 -8
- package/ios/Util/NSDictionary+RNSP_TypeMethods.h +33 -0
- package/ios/Util/NSDictionary+RNSP_TypeMethods.m +40 -0
- package/ios/Util/RNConfigUtils.m +33 -31
- package/ios/Util/RNTrackerVersion.m +1 -1
- package/package.json +6 -6
- package/CHANGELOG +0 -140
package/ios/RNSnowplowTracker.m
CHANGED
|
@@ -21,10 +21,9 @@
|
|
|
21
21
|
#import "RNSnowplowTracker.h"
|
|
22
22
|
#import "RNConfigUtils.h"
|
|
23
23
|
#import "RNUtilities.h"
|
|
24
|
+
#import "NSDictionary+RNSP_TypeMethods.h"
|
|
24
25
|
|
|
25
26
|
#import <SnowplowTracker/SPSnowplow.h>
|
|
26
|
-
#import <SnowplowTracker/NSDictionary+SP_TypeMethods.h>
|
|
27
|
-
#import <SnowplowTracker/SPUtilities.h>
|
|
28
27
|
#import <SnowplowTracker/SPNetworkConfiguration.h>
|
|
29
28
|
#import <SnowplowTracker/SPNetworkConnection.h>
|
|
30
29
|
#import <SnowplowTracker/SPTrackerConfiguration.h>
|
|
@@ -61,23 +60,31 @@ RCT_EXPORT_METHOD(createTracker:
|
|
|
61
60
|
NSDictionary *networkConfig =[argmap objectForKey:@"networkConfig"];
|
|
62
61
|
|
|
63
62
|
// NetworkConfiguration
|
|
64
|
-
NSString *method = [networkConfig
|
|
63
|
+
NSString *method = [networkConfig rnsp_stringForKey:@"method" defaultValue:nil];
|
|
65
64
|
SPHttpMethod httpMethod = [@"get" isEqualToString:method] ? SPHttpMethodGet : SPHttpMethodPost;
|
|
66
65
|
SPNetworkConfiguration *networkConfiguration = [[SPNetworkConfiguration alloc] initWithEndpoint:networkConfig[@"endpoint"] method:httpMethod];
|
|
66
|
+
NSString *customPostPath = [networkConfig rnsp_stringForKey:@"customPostPath" defaultValue:nil];
|
|
67
|
+
if (customPostPath != nil) {
|
|
68
|
+
networkConfiguration.customPostPath = customPostPath;
|
|
69
|
+
}
|
|
70
|
+
NSObject *requestHeaders = [networkConfig objectForKey:@"requestHeaders"];
|
|
71
|
+
if (requestHeaders != nil && [requestHeaders isKindOfClass:NSDictionary.class]) {
|
|
72
|
+
networkConfiguration.requestHeaders = (NSDictionary *)requestHeaders;
|
|
73
|
+
}
|
|
67
74
|
|
|
68
75
|
// Configurations
|
|
69
76
|
NSMutableArray *controllers = [NSMutableArray array];
|
|
70
77
|
|
|
71
78
|
// TrackerConfiguration
|
|
72
79
|
NSObject *trackerArg = [argmap objectForKey:@"trackerConfig"];
|
|
73
|
-
if (trackerArg !=nil && [trackerArg isKindOfClass:NSDictionary.class]) {
|
|
80
|
+
if (trackerArg != nil && [trackerArg isKindOfClass:NSDictionary.class]) {
|
|
74
81
|
SPTrackerConfiguration *trackerConfiguration = [RNConfigUtils mkTrackerConfig:(NSDictionary *)trackerArg];
|
|
75
82
|
[controllers addObject:trackerConfiguration];
|
|
76
83
|
}
|
|
77
84
|
|
|
78
85
|
// SessionConfiguration
|
|
79
86
|
NSObject *sessionArg = [argmap objectForKey:@"sessionConfig"];
|
|
80
|
-
if (sessionArg !=nil && [sessionArg isKindOfClass:NSDictionary.class]) {
|
|
87
|
+
if (sessionArg != nil && [sessionArg isKindOfClass:NSDictionary.class]) {
|
|
81
88
|
SPSessionConfiguration *sessionConfiguration = [RNConfigUtils mkSessionConfig:(NSDictionary *)sessionArg];
|
|
82
89
|
[controllers addObject:sessionConfiguration];
|
|
83
90
|
}
|
|
@@ -124,7 +131,7 @@ RCT_EXPORT_METHOD(removeTracker: (NSDictionary *)details
|
|
|
124
131
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
125
132
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
126
133
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
127
|
-
id<SPTrackerController> trackerController = [
|
|
134
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
128
135
|
BOOL removed = [SPSnowplow removeTracker:trackerController];
|
|
129
136
|
resolve(@(removed));
|
|
130
137
|
}
|
|
@@ -139,7 +146,7 @@ RCT_EXPORT_METHOD(trackSelfDescribingEvent:
|
|
|
139
146
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
140
147
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
141
148
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
142
|
-
id<SPTrackerController> trackerController = [
|
|
149
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
143
150
|
|
|
144
151
|
if (trackerController != nil) {
|
|
145
152
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
@@ -163,25 +170,25 @@ RCT_EXPORT_METHOD(trackStructuredEvent:
|
|
|
163
170
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
164
171
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
165
172
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
166
|
-
id<SPTrackerController> trackerController = [
|
|
173
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
167
174
|
|
|
168
175
|
if (trackerController != nil) {
|
|
169
176
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
170
177
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
171
178
|
|
|
172
|
-
NSString *category = [argmap
|
|
173
|
-
NSString *action = [argmap
|
|
179
|
+
NSString *category = [argmap rnsp_stringForKey:@"category" defaultValue:nil];
|
|
180
|
+
NSString *action = [argmap rnsp_stringForKey:@"action" defaultValue:nil];
|
|
174
181
|
SPStructured *event = [[SPStructured alloc] initWithCategory:category
|
|
175
182
|
action:action];
|
|
176
|
-
NSString *label = [argmap
|
|
183
|
+
NSString *label = [argmap rnsp_stringForKey:@"label" defaultValue:nil];
|
|
177
184
|
if (label) {
|
|
178
185
|
event.label = label;
|
|
179
186
|
}
|
|
180
|
-
NSString *property = [argmap
|
|
187
|
+
NSString *property = [argmap rnsp_stringForKey:@"property" defaultValue:nil];
|
|
181
188
|
if (property) {
|
|
182
189
|
event.property = property;
|
|
183
190
|
}
|
|
184
|
-
NSNumber *value = [argmap
|
|
191
|
+
NSNumber *value = [argmap rnsp_numberForKey:@"value" defaultValue:nil];
|
|
185
192
|
if (label) {
|
|
186
193
|
event.value = value;
|
|
187
194
|
}
|
|
@@ -200,14 +207,14 @@ RCT_EXPORT_METHOD(trackScreenViewEvent:
|
|
|
200
207
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
201
208
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
202
209
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
203
|
-
id<SPTrackerController> trackerController = [
|
|
210
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
204
211
|
|
|
205
212
|
if (trackerController != nil) {
|
|
206
213
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
207
214
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
208
215
|
|
|
209
|
-
NSString *screenName = [argmap
|
|
210
|
-
NSString *screenId = [argmap
|
|
216
|
+
NSString *screenName = [argmap rnsp_stringForKey:@"name" defaultValue:nil];
|
|
217
|
+
NSString *screenId = [argmap rnsp_stringForKey:@"id" defaultValue:nil];
|
|
211
218
|
NSUUID *screenUuid = [[NSUUID alloc] initWithUUIDString:screenId];
|
|
212
219
|
if (screenId != nil && screenUuid == nil) {
|
|
213
220
|
NSError* error = [NSError errorWithDomain:@"SnowplowTracker" code:200 userInfo:nil];
|
|
@@ -216,23 +223,23 @@ RCT_EXPORT_METHOD(trackScreenViewEvent:
|
|
|
216
223
|
SPScreenView *event = [[SPScreenView alloc] initWithName:screenName
|
|
217
224
|
screenId:screenUuid];
|
|
218
225
|
|
|
219
|
-
NSString *type = [argmap
|
|
226
|
+
NSString *type = [argmap rnsp_stringForKey:@"type" defaultValue:nil];
|
|
220
227
|
if (type) {
|
|
221
228
|
event.type = type;
|
|
222
229
|
}
|
|
223
|
-
NSString *previousName = [argmap
|
|
230
|
+
NSString *previousName = [argmap rnsp_stringForKey:@"previousName" defaultValue:nil];
|
|
224
231
|
if (previousName) {
|
|
225
232
|
event.previousName = previousName;
|
|
226
233
|
}
|
|
227
|
-
NSString *previousId = [argmap
|
|
234
|
+
NSString *previousId = [argmap rnsp_stringForKey:@"previousId" defaultValue:nil];
|
|
228
235
|
if (previousId) {
|
|
229
236
|
event.previousId = previousId;
|
|
230
237
|
}
|
|
231
|
-
NSString *previousType = [argmap
|
|
238
|
+
NSString *previousType = [argmap rnsp_stringForKey:@"previousType" defaultValue:nil];
|
|
232
239
|
if (previousType) {
|
|
233
240
|
event.previousType = previousType;
|
|
234
241
|
}
|
|
235
|
-
NSString *transitionType = [argmap
|
|
242
|
+
NSString *transitionType = [argmap rnsp_stringForKey:@"transitionType" defaultValue:nil];
|
|
236
243
|
if (transitionType) {
|
|
237
244
|
event.transitionType = transitionType;
|
|
238
245
|
}
|
|
@@ -251,20 +258,20 @@ RCT_EXPORT_METHOD(trackPageViewEvent:
|
|
|
251
258
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
252
259
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
253
260
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
254
|
-
id<SPTrackerController> trackerController = [
|
|
261
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
255
262
|
|
|
256
263
|
if (trackerController != nil) {
|
|
257
264
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
258
265
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
259
266
|
|
|
260
|
-
NSString *pageUrl = [argmap
|
|
267
|
+
NSString *pageUrl = [argmap rnsp_stringForKey:@"pageUrl" defaultValue:nil];
|
|
261
268
|
SPPageView *event = [[SPPageView alloc] initWithPageUrl:pageUrl];
|
|
262
269
|
|
|
263
|
-
NSString *pageTitle = [argmap
|
|
270
|
+
NSString *pageTitle = [argmap rnsp_stringForKey:@"pageTitle" defaultValue:nil];
|
|
264
271
|
if (pageTitle) {
|
|
265
272
|
event.pageTitle = pageTitle;
|
|
266
273
|
}
|
|
267
|
-
NSString *referrer = [argmap
|
|
274
|
+
NSString *referrer = [argmap rnsp_stringForKey:@"referrer" defaultValue:nil];
|
|
268
275
|
if (referrer) {
|
|
269
276
|
event.referrer = referrer;
|
|
270
277
|
}
|
|
@@ -283,19 +290,19 @@ RCT_EXPORT_METHOD(trackTimingEvent:
|
|
|
283
290
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
284
291
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
285
292
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
286
|
-
id<SPTrackerController> trackerController = [
|
|
293
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
287
294
|
|
|
288
295
|
if (trackerController != nil) {
|
|
289
296
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
290
297
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
291
298
|
|
|
292
|
-
NSString *category = [argmap
|
|
293
|
-
NSString *variable = [argmap
|
|
294
|
-
NSNumber *timing = [argmap
|
|
299
|
+
NSString *category = [argmap rnsp_stringForKey:@"category" defaultValue:nil];
|
|
300
|
+
NSString *variable = [argmap rnsp_stringForKey:@"variable" defaultValue:nil];
|
|
301
|
+
NSNumber *timing = [argmap rnsp_numberForKey:@"timing" defaultValue:nil];
|
|
295
302
|
SPTiming *event = [[SPTiming alloc] initWithCategory:category
|
|
296
303
|
variable:variable
|
|
297
304
|
timing:timing];
|
|
298
|
-
NSString *label = [argmap
|
|
305
|
+
NSString *label = [argmap rnsp_stringForKey:@"label" defaultValue:nil];
|
|
299
306
|
if (label) {
|
|
300
307
|
event.label = label;
|
|
301
308
|
}
|
|
@@ -314,24 +321,24 @@ RCT_EXPORT_METHOD(trackConsentGrantedEvent:
|
|
|
314
321
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
315
322
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
316
323
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
317
|
-
id<SPTrackerController> trackerController = [
|
|
324
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
318
325
|
|
|
319
326
|
if (trackerController != nil) {
|
|
320
327
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
321
328
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
322
329
|
|
|
323
|
-
NSString *expiry = [argmap
|
|
324
|
-
NSString *documentId = [argmap
|
|
325
|
-
NSString *version = [argmap
|
|
330
|
+
NSString *expiry = [argmap rnsp_stringForKey:@"expiry" defaultValue:nil];
|
|
331
|
+
NSString *documentId = [argmap rnsp_stringForKey:@"documentId" defaultValue:nil];
|
|
332
|
+
NSString *version = [argmap rnsp_stringForKey:@"version" defaultValue:nil];
|
|
326
333
|
SPConsentGranted *event = [[SPConsentGranted alloc] initWithExpiry:expiry
|
|
327
334
|
documentId:documentId
|
|
328
335
|
version:version];
|
|
329
336
|
|
|
330
|
-
NSString *name = [argmap
|
|
337
|
+
NSString *name = [argmap rnsp_stringForKey:@"name" defaultValue:nil];
|
|
331
338
|
if (name) {
|
|
332
339
|
event.name = name;
|
|
333
340
|
}
|
|
334
|
-
NSString *documentDescription = [argmap
|
|
341
|
+
NSString *documentDescription = [argmap rnsp_stringForKey:@"documentDescription" defaultValue:nil];
|
|
335
342
|
if (documentDescription) {
|
|
336
343
|
event.documentDescription = documentDescription;
|
|
337
344
|
}
|
|
@@ -350,7 +357,7 @@ RCT_EXPORT_METHOD(trackConsentWithdrawnEvent:
|
|
|
350
357
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
351
358
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
352
359
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
353
|
-
id<SPTrackerController> trackerController = [
|
|
360
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
354
361
|
|
|
355
362
|
if (trackerController != nil) {
|
|
356
363
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
@@ -358,17 +365,17 @@ RCT_EXPORT_METHOD(trackConsentWithdrawnEvent:
|
|
|
358
365
|
|
|
359
366
|
SPConsentWithdrawn *event = [SPConsentWithdrawn new];
|
|
360
367
|
|
|
361
|
-
BOOL all = [argmap
|
|
368
|
+
BOOL all = [argmap rnsp_boolForKey:@"all" defaultValue:nil];
|
|
362
369
|
event.all = all;
|
|
363
|
-
NSString *documentId = [argmap
|
|
370
|
+
NSString *documentId = [argmap rnsp_stringForKey:@"documentId" defaultValue:nil];
|
|
364
371
|
event.documentId = documentId;
|
|
365
|
-
NSString *version = [argmap
|
|
372
|
+
NSString *version = [argmap rnsp_stringForKey:@"version" defaultValue:nil];
|
|
366
373
|
event.version = version;
|
|
367
|
-
NSString *name = [argmap
|
|
374
|
+
NSString *name = [argmap rnsp_stringForKey:@"name" defaultValue:nil];
|
|
368
375
|
if (name) {
|
|
369
376
|
event.name = name;
|
|
370
377
|
}
|
|
371
|
-
NSString *documentDescription = [argmap
|
|
378
|
+
NSString *documentDescription = [argmap rnsp_stringForKey:@"documentDescription" defaultValue:nil];
|
|
372
379
|
if (documentDescription) {
|
|
373
380
|
event.documentDescription = documentDescription;
|
|
374
381
|
}
|
|
@@ -387,34 +394,34 @@ RCT_EXPORT_METHOD(trackEcommerceTransactionEvent:
|
|
|
387
394
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
388
395
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
389
396
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
390
|
-
id<SPTrackerController> trackerController = [
|
|
397
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
391
398
|
|
|
392
399
|
if (trackerController != nil) {
|
|
393
400
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
394
401
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
395
402
|
|
|
396
|
-
NSString *orderId = [argmap
|
|
397
|
-
NSNumber *totalValue = [argmap
|
|
403
|
+
NSString *orderId = [argmap rnsp_stringForKey:@"orderId" defaultValue:nil];
|
|
404
|
+
NSNumber *totalValue = [argmap rnsp_numberForKey:@"totalValue" defaultValue:nil];
|
|
398
405
|
NSArray *items = [argmap objectForKey:@"items"];
|
|
399
406
|
|
|
400
407
|
NSMutableArray *transItems = [NSMutableArray new];
|
|
401
408
|
for (NSDictionary* item in items) {
|
|
402
|
-
NSString *sku = [item
|
|
403
|
-
NSNumber *price = [item
|
|
404
|
-
NSNumber *quantity = [item
|
|
409
|
+
NSString *sku = [item rnsp_stringForKey:@"sku" defaultValue:nil];
|
|
410
|
+
NSNumber *price = [item rnsp_numberForKey:@"price" defaultValue:nil];
|
|
411
|
+
NSNumber *quantity = [item rnsp_numberForKey:@"quantity" defaultValue:nil];
|
|
405
412
|
SPEcommerceItem *ecomItem = [[SPEcommerceItem alloc] initWithSku:sku
|
|
406
413
|
price:price
|
|
407
414
|
quantity:quantity];
|
|
408
415
|
|
|
409
|
-
NSString *name = [argmap
|
|
416
|
+
NSString *name = [argmap rnsp_stringForKey:@"name" defaultValue:nil];
|
|
410
417
|
if (name) {
|
|
411
418
|
ecomItem.name = name;
|
|
412
419
|
}
|
|
413
|
-
NSString *category = [argmap
|
|
420
|
+
NSString *category = [argmap rnsp_stringForKey:@"category" defaultValue:nil];
|
|
414
421
|
if (category) {
|
|
415
422
|
ecomItem.category = category;
|
|
416
423
|
}
|
|
417
|
-
NSString *currency = [argmap
|
|
424
|
+
NSString *currency = [argmap rnsp_stringForKey:@"currency" defaultValue:nil];
|
|
418
425
|
if (currency) {
|
|
419
426
|
ecomItem.currency = currency;
|
|
420
427
|
}
|
|
@@ -440,16 +447,16 @@ RCT_EXPORT_METHOD(trackDeepLinkReceivedEvent:
|
|
|
440
447
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
441
448
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
442
449
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
443
|
-
id<SPTrackerController> trackerController = [
|
|
450
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
444
451
|
|
|
445
452
|
if (trackerController != nil) {
|
|
446
453
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
447
454
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
448
455
|
|
|
449
|
-
NSString *url = [argmap
|
|
456
|
+
NSString *url = [argmap rnsp_stringForKey:@"url" defaultValue:nil];
|
|
450
457
|
SPDeepLinkReceived *event = [[SPDeepLinkReceived alloc] initWithUrl:url];
|
|
451
458
|
|
|
452
|
-
NSString *referrer = [argmap
|
|
459
|
+
NSString *referrer = [argmap rnsp_stringForKey:@"referrer" defaultValue:nil];
|
|
453
460
|
if (referrer) {
|
|
454
461
|
event.referrer = referrer;
|
|
455
462
|
}
|
|
@@ -468,15 +475,15 @@ RCT_EXPORT_METHOD(trackMessageNotificationEvent:
|
|
|
468
475
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
469
476
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
470
477
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
471
|
-
id<SPTrackerController> trackerController = [
|
|
478
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
472
479
|
|
|
473
480
|
if (trackerController != nil) {
|
|
474
481
|
NSDictionary *argmap = [details objectForKey:@"eventData"];
|
|
475
482
|
NSArray<NSDictionary *> *contexts = [details objectForKey:@"contexts"];
|
|
476
483
|
|
|
477
|
-
NSString *title = [argmap
|
|
478
|
-
NSString *body = [argmap
|
|
479
|
-
NSString *triggerStr = [argmap
|
|
484
|
+
NSString *title = [argmap rnsp_stringForKey:@"title" defaultValue:nil];
|
|
485
|
+
NSString *body = [argmap rnsp_stringForKey:@"body" defaultValue:nil];
|
|
486
|
+
NSString *triggerStr = [argmap rnsp_stringForKey:@"trigger" defaultValue:nil];
|
|
480
487
|
SPMessageNotificationTrigger trigger;
|
|
481
488
|
if ([triggerStr isEqualToString:@"push"]) {
|
|
482
489
|
trigger = SPMessageNotificationTriggerPush;
|
|
@@ -493,7 +500,7 @@ RCT_EXPORT_METHOD(trackMessageNotificationEvent:
|
|
|
493
500
|
body: body
|
|
494
501
|
trigger: trigger];
|
|
495
502
|
|
|
496
|
-
NSString *action = [argmap
|
|
503
|
+
NSString *action = [argmap rnsp_stringForKey:@"action" defaultValue:nil];
|
|
497
504
|
if (action) {
|
|
498
505
|
event.action = action;
|
|
499
506
|
}
|
|
@@ -501,9 +508,9 @@ RCT_EXPORT_METHOD(trackMessageNotificationEvent:
|
|
|
501
508
|
if (attachmentsMap) {
|
|
502
509
|
NSMutableArray *attachments = [NSMutableArray new];
|
|
503
510
|
for (NSDictionary* attachmentMap in attachmentsMap) {
|
|
504
|
-
NSString *identifier = [attachmentMap
|
|
505
|
-
NSString *type = [attachmentMap
|
|
506
|
-
NSString *url = [attachmentMap
|
|
511
|
+
NSString *identifier = [attachmentMap rnsp_stringForKey:@"identifier" defaultValue:nil];
|
|
512
|
+
NSString *type = [attachmentMap rnsp_stringForKey:@"type" defaultValue:nil];
|
|
513
|
+
NSString *url = [attachmentMap rnsp_stringForKey:@"url" defaultValue:nil];
|
|
507
514
|
SPMessageNotificationAttachment *attachment = [[SPMessageNotificationAttachment alloc] initWithIdentifier:identifier
|
|
508
515
|
type:type
|
|
509
516
|
url:url];
|
|
@@ -515,47 +522,47 @@ RCT_EXPORT_METHOD(trackMessageNotificationEvent:
|
|
|
515
522
|
if (bodyLocArgs) {
|
|
516
523
|
event.bodyLocArgs = bodyLocArgs;
|
|
517
524
|
}
|
|
518
|
-
NSString *bodyLocKey = [argmap
|
|
525
|
+
NSString *bodyLocKey = [argmap rnsp_stringForKey:@"bodyLocKey" defaultValue:nil];
|
|
519
526
|
if (bodyLocKey) {
|
|
520
527
|
event.bodyLocKey = bodyLocKey;
|
|
521
528
|
}
|
|
522
|
-
NSString *category = [argmap
|
|
529
|
+
NSString *category = [argmap rnsp_stringForKey:@"category" defaultValue:nil];
|
|
523
530
|
if (category) {
|
|
524
531
|
event.category = category;
|
|
525
532
|
}
|
|
526
|
-
NSNumber *contentAvailable = [argmap
|
|
533
|
+
NSNumber *contentAvailable = [argmap rnsp_numberForKey:@"contentAvailable" defaultValue:nil];
|
|
527
534
|
if (contentAvailable != nil) {
|
|
528
535
|
event.contentAvailable = contentAvailable;
|
|
529
536
|
}
|
|
530
|
-
NSString *group = [argmap
|
|
537
|
+
NSString *group = [argmap rnsp_stringForKey:@"group" defaultValue:nil];
|
|
531
538
|
if (group) {
|
|
532
539
|
event.group = group;
|
|
533
540
|
}
|
|
534
|
-
NSString *icon = [argmap
|
|
541
|
+
NSString *icon = [argmap rnsp_stringForKey:@"icon" defaultValue:nil];
|
|
535
542
|
if (icon) {
|
|
536
543
|
event.icon = icon;
|
|
537
544
|
}
|
|
538
|
-
NSNumber *notificationCount = [argmap
|
|
545
|
+
NSNumber *notificationCount = [argmap rnsp_numberForKey:@"notificationCount" defaultValue:nil];
|
|
539
546
|
if (notificationCount) {
|
|
540
547
|
event.notificationCount = notificationCount;
|
|
541
548
|
}
|
|
542
|
-
NSString *notificationTimestamp = [argmap
|
|
549
|
+
NSString *notificationTimestamp = [argmap rnsp_stringForKey:@"notificationTimestamp" defaultValue:nil];
|
|
543
550
|
if (notificationTimestamp) {
|
|
544
551
|
event.notificationTimestamp = notificationTimestamp;
|
|
545
552
|
}
|
|
546
|
-
NSString *sound = [argmap
|
|
553
|
+
NSString *sound = [argmap rnsp_stringForKey:@"sound" defaultValue:nil];
|
|
547
554
|
if (sound) {
|
|
548
555
|
event.sound = sound;
|
|
549
556
|
}
|
|
550
|
-
NSString *subtitle = [argmap
|
|
557
|
+
NSString *subtitle = [argmap rnsp_stringForKey:@"subtitle" defaultValue:nil];
|
|
551
558
|
if (subtitle) {
|
|
552
559
|
event.subtitle = subtitle;
|
|
553
560
|
}
|
|
554
|
-
NSString *tag = [argmap
|
|
561
|
+
NSString *tag = [argmap rnsp_stringForKey:@"tag" defaultValue:nil];
|
|
555
562
|
if (tag) {
|
|
556
563
|
event.tag = tag;
|
|
557
564
|
}
|
|
558
|
-
NSString *threadIdentifier = [argmap
|
|
565
|
+
NSString *threadIdentifier = [argmap rnsp_stringForKey:@"threadIdentifier" defaultValue:nil];
|
|
559
566
|
if (threadIdentifier) {
|
|
560
567
|
event.threadIdentifier = threadIdentifier;
|
|
561
568
|
}
|
|
@@ -563,7 +570,7 @@ RCT_EXPORT_METHOD(trackMessageNotificationEvent:
|
|
|
563
570
|
if (titleLocArgs) {
|
|
564
571
|
event.titleLocArgs = titleLocArgs;
|
|
565
572
|
}
|
|
566
|
-
NSString *titleLocKey = [argmap
|
|
573
|
+
NSString *titleLocKey = [argmap rnsp_stringForKey:@"titleLocKey" defaultValue:nil];
|
|
567
574
|
if (titleLocKey) {
|
|
568
575
|
event.titleLocKey = titleLocKey;
|
|
569
576
|
}
|
|
@@ -582,7 +589,7 @@ RCT_EXPORT_METHOD(removeGlobalContexts:
|
|
|
582
589
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
583
590
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
584
591
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
585
|
-
id<SPTrackerController> trackerController = [
|
|
592
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
586
593
|
|
|
587
594
|
if (trackerController != nil) {
|
|
588
595
|
NSString *tag = [details objectForKey:@"removeTag"];
|
|
@@ -599,7 +606,7 @@ RCT_EXPORT_METHOD(addGlobalContexts:
|
|
|
599
606
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
600
607
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
601
608
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
602
|
-
id<SPTrackerController> trackerController = [
|
|
609
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
603
610
|
|
|
604
611
|
if (trackerController != nil) {
|
|
605
612
|
NSDictionary *gcArg = [details objectForKey:@"addGlobalContext"];
|
|
@@ -622,10 +629,10 @@ RCT_EXPORT_METHOD(setUserId:
|
|
|
622
629
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
623
630
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
624
631
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
625
|
-
id<SPTrackerController> trackerController = [
|
|
632
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
626
633
|
|
|
627
634
|
if (trackerController != nil) {
|
|
628
|
-
NSString *newUid = [details
|
|
635
|
+
NSString *newUid = [details rnsp_stringForKey:@"userId" defaultValue:nil];
|
|
629
636
|
[trackerController.subject setUserId:newUid];
|
|
630
637
|
resolve(@YES);
|
|
631
638
|
} else {
|
|
@@ -639,10 +646,10 @@ RCT_EXPORT_METHOD(setNetworkUserId:
|
|
|
639
646
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
640
647
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
641
648
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
642
|
-
id<SPTrackerController> trackerController = [
|
|
649
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
643
650
|
|
|
644
651
|
if (trackerController != nil) {
|
|
645
|
-
NSString *newNuid = [details
|
|
652
|
+
NSString *newNuid = [details rnsp_stringForKey:@"networkUserId" defaultValue:nil];
|
|
646
653
|
[trackerController.subject setNetworkUserId:newNuid];
|
|
647
654
|
resolve(@YES);
|
|
648
655
|
} else {
|
|
@@ -656,10 +663,10 @@ RCT_EXPORT_METHOD(setDomainUserId:
|
|
|
656
663
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
657
664
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
658
665
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
659
|
-
id<SPTrackerController> trackerController = [
|
|
666
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
660
667
|
|
|
661
668
|
if (trackerController != nil) {
|
|
662
|
-
NSString *newDuid = [details
|
|
669
|
+
NSString *newDuid = [details rnsp_stringForKey:@"domainUserId" defaultValue:nil];
|
|
663
670
|
[trackerController.subject setDomainUserId:newDuid];
|
|
664
671
|
resolve(@YES);
|
|
665
672
|
} else {
|
|
@@ -673,10 +680,10 @@ RCT_EXPORT_METHOD(setIpAddress:
|
|
|
673
680
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
674
681
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
675
682
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
676
|
-
id<SPTrackerController> trackerController = [
|
|
683
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
677
684
|
|
|
678
685
|
if (trackerController != nil) {
|
|
679
|
-
NSString *newIp = [details
|
|
686
|
+
NSString *newIp = [details rnsp_stringForKey:@"ipAddress" defaultValue:nil];
|
|
680
687
|
[trackerController.subject setIpAddress:newIp];
|
|
681
688
|
resolve(@YES);
|
|
682
689
|
} else {
|
|
@@ -690,10 +697,10 @@ RCT_EXPORT_METHOD(setUseragent:
|
|
|
690
697
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
691
698
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
692
699
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
693
|
-
id<SPTrackerController> trackerController = [
|
|
700
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
694
701
|
|
|
695
702
|
if (trackerController != nil) {
|
|
696
|
-
NSString *newUagent = [details
|
|
703
|
+
NSString *newUagent = [details rnsp_stringForKey:@"useragent" defaultValue:nil];
|
|
697
704
|
[trackerController.subject setUseragent:newUagent];
|
|
698
705
|
resolve(@YES);
|
|
699
706
|
} else {
|
|
@@ -707,10 +714,10 @@ RCT_EXPORT_METHOD(setTimezone:
|
|
|
707
714
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
708
715
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
709
716
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
710
|
-
id<SPTrackerController> trackerController = [
|
|
717
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
711
718
|
|
|
712
719
|
if (trackerController != nil) {
|
|
713
|
-
NSString *newTz = [details
|
|
720
|
+
NSString *newTz = [details rnsp_stringForKey:@"timezone" defaultValue:nil];
|
|
714
721
|
[trackerController.subject setTimezone:newTz];
|
|
715
722
|
resolve(@YES);
|
|
716
723
|
} else {
|
|
@@ -724,10 +731,10 @@ RCT_EXPORT_METHOD(setLanguage:
|
|
|
724
731
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
725
732
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
726
733
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
727
|
-
id<SPTrackerController> trackerController = [
|
|
734
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
728
735
|
|
|
729
736
|
if (trackerController != nil) {
|
|
730
|
-
NSString *newLang = [details
|
|
737
|
+
NSString *newLang = [details rnsp_stringForKey:@"language" defaultValue:nil];
|
|
731
738
|
[trackerController.subject setLanguage:newLang];
|
|
732
739
|
resolve(@YES);
|
|
733
740
|
} else {
|
|
@@ -741,7 +748,7 @@ RCT_EXPORT_METHOD(setScreenResolution:
|
|
|
741
748
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
742
749
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
743
750
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
744
|
-
id<SPTrackerController> trackerController = [
|
|
751
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
745
752
|
|
|
746
753
|
if (trackerController != nil) {
|
|
747
754
|
NSObject *newRes = [details objectForKey:@"screenResolution"];
|
|
@@ -765,7 +772,7 @@ RCT_EXPORT_METHOD(setScreenViewport:
|
|
|
765
772
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
766
773
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
767
774
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
768
|
-
id<SPTrackerController> trackerController = [
|
|
775
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
769
776
|
|
|
770
777
|
if (trackerController != nil) {
|
|
771
778
|
NSObject *newView = [details objectForKey:@"screenViewport"];
|
|
@@ -789,10 +796,10 @@ RCT_EXPORT_METHOD(setColorDepth:
|
|
|
789
796
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
790
797
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
791
798
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
792
|
-
id<SPTrackerController> trackerController = [
|
|
799
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
793
800
|
|
|
794
801
|
if (trackerController != nil) {
|
|
795
|
-
NSNumber *newColorD = [details
|
|
802
|
+
NSNumber *newColorD = [details rnsp_numberForKey:@"colorDepth" defaultValue:nil];
|
|
796
803
|
[trackerController.subject setColorDepth:newColorD];
|
|
797
804
|
resolve(@YES);
|
|
798
805
|
} else {
|
|
@@ -806,7 +813,7 @@ RCT_EXPORT_METHOD(getSessionUserId:
|
|
|
806
813
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
807
814
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
808
815
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
809
|
-
id<SPTrackerController> trackerController = [
|
|
816
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
810
817
|
|
|
811
818
|
if (trackerController != nil) {
|
|
812
819
|
NSString *suid = [trackerController.session userId];
|
|
@@ -822,7 +829,7 @@ RCT_EXPORT_METHOD(getSessionId:
|
|
|
822
829
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
823
830
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
824
831
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
825
|
-
id<SPTrackerController> trackerController = [
|
|
832
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
826
833
|
|
|
827
834
|
if (trackerController != nil) {
|
|
828
835
|
NSString *sid = [trackerController.session sessionId];
|
|
@@ -838,7 +845,7 @@ RCT_EXPORT_METHOD(getSessionIndex:
|
|
|
838
845
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
839
846
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
840
847
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
841
|
-
id<SPTrackerController> trackerController = [
|
|
848
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
842
849
|
|
|
843
850
|
if (trackerController != nil) {
|
|
844
851
|
NSInteger sidx = [trackerController.session sessionIndex];
|
|
@@ -854,7 +861,7 @@ RCT_EXPORT_METHOD(getIsInBackground:
|
|
|
854
861
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
855
862
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
856
863
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
857
|
-
id<SPTrackerController> trackerController = [
|
|
864
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
858
865
|
|
|
859
866
|
if (trackerController != nil) {
|
|
860
867
|
BOOL isInBg = [trackerController.session isInBackground];
|
|
@@ -870,7 +877,7 @@ RCT_EXPORT_METHOD(getBackgroundIndex:
|
|
|
870
877
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
871
878
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
872
879
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
873
|
-
id<SPTrackerController> trackerController = [
|
|
880
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
874
881
|
|
|
875
882
|
if (trackerController != nil) {
|
|
876
883
|
NSInteger bgIdx = [trackerController.session backgroundIndex];
|
|
@@ -886,7 +893,7 @@ RCT_EXPORT_METHOD(getForegroundIndex:
|
|
|
886
893
|
resolver:(RCTPromiseResolveBlock)resolve
|
|
887
894
|
rejecter:(RCTPromiseRejectBlock)reject) {
|
|
888
895
|
NSString *namespace = [details objectForKey:@"tracker"];
|
|
889
|
-
id<SPTrackerController> trackerController = [
|
|
896
|
+
id<SPTrackerController> trackerController = [self trackerByNamespace:namespace];
|
|
890
897
|
|
|
891
898
|
if (trackerController != nil) {
|
|
892
899
|
NSInteger fgIdx = [trackerController.session foregroundIndex];
|
|
@@ -897,4 +904,8 @@ RCT_EXPORT_METHOD(getForegroundIndex:
|
|
|
897
904
|
}
|
|
898
905
|
}
|
|
899
906
|
|
|
907
|
+
- (nullable id<SPTrackerController>)trackerByNamespace:(NSString *)namespace {
|
|
908
|
+
return [namespace isEqual:[NSNull null]] ? [SPSnowplow defaultTracker] : [SPSnowplow trackerByNamespace:namespace];
|
|
909
|
+
}
|
|
910
|
+
|
|
900
911
|
@end
|