react-native-mparticle 2.6.0 → 2.7.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/README.md CHANGED
@@ -61,24 +61,23 @@ import mParticle_Apple_SDK
61
61
 
62
62
  func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
63
63
 
64
- // Override point for customization after application launch.
64
+ //override point for customization after application launch.
65
65
  let mParticleOptions = MParticleOptions(key: "<<<App Key Here>>>", secret: "<<<App Secret Here>>>")
66
66
 
67
- //Please see the Identity page for more information on building this object
67
+ //optional- Please see the Identity page for more information on building this object
68
68
  let request = MPIdentityApiRequest()
69
69
  request.email = "email@example.com"
70
70
  mParticleOptions.identifyRequest = request
71
+ //optional
71
72
  mParticleOptions.onIdentifyComplete = { (apiResult, error) in
72
73
  NSLog("Identify complete. userId = %@ error = %@", apiResult?.user.userId.stringValue ?? "Null User ID", error?.localizedDescription ?? "No Error Available")
73
74
  }
75
+ //optional
74
76
  mParticleOptions.onAttributionComplete = { (attributionResult, error) in
75
77
  NSLog(@"Attribution Complete. attributionResults = %@", attributionResult.linkInfo)
76
78
  }
77
-
78
- //Start the SDK
79
- MParticle.sharedInstance().start(with: mParticleOptions)
80
-
81
- return true
79
+ MParticle.sharedInstance().start(with: mParticleOptions)
80
+ return true
82
81
  }
83
82
  ```
84
83
 
@@ -110,13 +109,15 @@ Next, you'll need to start the SDK:
110
109
  MParticleOptions *mParticleOptions = [MParticleOptions optionsWithKey:@"REPLACE ME"
111
110
  secret:@"REPLACE ME"];
112
111
 
113
- //Please see the Identity page for more information on building this object
112
+ //optional - Please see the Identity page for more information on building this object
114
113
  MPIdentityApiRequest *request = [MPIdentityApiRequest requestWithEmptyUser];
115
114
  request.email = @"email@example.com";
116
115
  mParticleOptions.identifyRequest = request;
116
+ //optional
117
117
  mParticleOptions.onIdentifyComplete = ^(MPIdentityApiResult * _Nullable apiResult, NSError * _Nullable error) {
118
118
  NSLog(@"Identify complete. userId = %@ error = %@", apiResult.user.userId, error);
119
119
  };
120
+ //optional
120
121
  mParticleOptions.onAttributionComplete(MPAttributionResult * _Nullable attributionResult, NSError * _Nullable error) {
121
122
  NSLog(@"Attribution Complete. attributionResults = %@", attributionResult.linkInfo)
122
123
  }
@@ -138,29 +139,31 @@ See [Identity](http://docs.mparticle.com/developers/sdk/ios/identity/) for more
138
139
 
139
140
  For more help, see [the Android set up docs](https://docs.mparticle.com/developers/sdk/android/getting-started/#create-an-input).
140
141
 
141
- ```java
142
+ ```kotlin
142
143
  package com.example.myapp;
143
144
 
144
145
  import android.app.Application;
145
146
  import com.mparticle.MParticle;
146
147
 
147
- public class MyApplication extends Application {
148
- @Override
149
- public void onCreate() {
150
- super.onCreate();
151
- MParticleOptions options = MParticleOptions.builder(this)
152
- .credentials("REPLACE ME WITH KEY","REPLACE ME WITH SECRET")
153
- .setLogLevel(MParticle.LogLevel.VERBOSE)
148
+ class MyApplication : Application() {
149
+ fun onCreate() {
150
+ super.onCreate()
151
+ val options: MParticleOptions = MParticleOptions.builder(this)
152
+ .credentials("REPLACE ME WITH KEY", "REPLACE ME WITH SECRET")
153
+ //optional
154
+ .logLevel(MParticle.LogLevel.VERBOSE)
155
+ //optional
154
156
  .identify(identifyRequest)
157
+ //optional
155
158
  .identifyTask(
156
- new BaseIdentityTask()
157
- .addFailureListener(this)
158
- .addSuccessListener(this)
159
- )
159
+ BaseIdentityTask()
160
+ .addFailureListener { errorResponse -> }
161
+ .addSuccessListener{ result -> }
162
+ )
163
+ //optional
160
164
  .attributionListener(this)
161
- .build();
162
-
163
- MParticle.start(options);
165
+ .build()
166
+ MParticle.start(options)
164
167
  }
165
168
  }
166
169
  ```
@@ -47,7 +47,7 @@ dependencies {
47
47
  //
48
48
  // (See https://github.com/mparticle/mparticle-android-sdk for the latest version)
49
49
  //
50
- compileOnly 'com.mparticle:android-core:[5.9.3, )'
50
+ compileOnly 'com.mparticle:android-core:[5.9.3, 5.38.2]'
51
51
 
52
52
  //
53
53
  // And, if you want to include kits, you can do so as follows:
@@ -13,6 +13,8 @@ import com.facebook.react.bridge.Callback;
13
13
  import com.facebook.react.bridge.ReadableType;
14
14
  import com.facebook.react.bridge.WritableMap;
15
15
  import com.facebook.react.bridge.WritableNativeMap;
16
+ import com.facebook.react.bridge.WritableArray;
17
+ import com.facebook.react.bridge.WritableNativeArray;
16
18
  import com.mparticle.AttributionResult;
17
19
  import com.mparticle.MParticle;
18
20
  import com.mparticle.MPEvent;
@@ -86,9 +88,9 @@ public class MParticleModule extends ReactContextBaseJavaModule {
86
88
  }
87
89
 
88
90
  @ReactMethod
89
- public void logScreenEvent(final String event, final ReadableMap attributesMap) {
91
+ public void logScreenEvent(final String event, final ReadableMap attributesMap, final boolean shouldUploadEvent) {
90
92
  Map<String, String> attributes = ConvertStringMap(attributesMap);
91
- MParticle.getInstance().logScreen(event, attributes);
93
+ MParticle.getInstance().logScreen(event, attributes, shouldUploadEvent);
92
94
  }
93
95
 
94
96
  @ReactMethod
@@ -121,7 +123,19 @@ public class MParticleModule extends ReactContextBaseJavaModule {
121
123
  selectedUser.getUserAttributes(new UserAttributeListener() {
122
124
  @Override
123
125
  public void onUserAttributesReceived(Map<String, String> userAttributes, Map<String, List<String>> userAttributeLists, Long mpid) {
124
- completion.invoke(null, userAttributes);
126
+ WritableMap resultMap = new WritableNativeMap();
127
+ for (Map.Entry<String, String> entry : userAttributes.entrySet()) {
128
+ resultMap.putString(entry.getKey(), entry.getValue());
129
+ }
130
+ for (Map.Entry<String, List<String>> entry : userAttributeLists.entrySet()) {
131
+ WritableArray resultArray = new WritableNativeArray();
132
+ List<String> valueList = entry.getValue();
133
+ for (String arrayVal : valueList) {
134
+ resultArray.pushString(arrayVal);
135
+ }
136
+ resultMap.putArray(entry.getKey(), resultArray);
137
+ }
138
+ completion.invoke(null, resultMap);
125
139
  }
126
140
  });
127
141
  } else {
@@ -595,6 +609,19 @@ public class MParticleModule extends ReactContextBaseJavaModule {
595
609
  if (map.hasKey("shouldUploadEvent")) {
596
610
  builder.shouldUploadEvent(map.getBoolean("shouldUploadEvent"));
597
611
  }
612
+ if (map.hasKey("customAttributes")) {
613
+ builder.customAttributes(ConvertStringMap(map.getMap("customAttributes")));
614
+ }
615
+ if (map.hasKey("currency")) {
616
+ builder.currency(map.getString("currency"));
617
+ }
618
+ if (map.hasKey("checkoutStep")) {
619
+ builder.checkoutStep(map.getInt("checkoutStep"));
620
+ }
621
+ if (map.hasKey("checkoutOptions")) {
622
+ builder.checkoutOptions(map.getString("checkoutOptions"));
623
+ }
624
+
598
625
 
599
626
  return builder.build();
600
627
  }
@@ -34,9 +34,9 @@ RCT_EXPORT_METHOD(logCommerceEvent:(MPCommerceEvent *)commerceEvent)
34
34
  [[MParticle sharedInstance] logCommerceEvent:commerceEvent];
35
35
  }
36
36
 
37
- RCT_EXPORT_METHOD(logScreenEvent:(NSString *)screenName attributes:(NSDictionary *)attributes)
37
+ RCT_EXPORT_METHOD(logScreenEvent:(NSString *)screenName attributes:(NSDictionary *)attributes shouldUploadEvent:(BOOL)shouldUploadEvent)
38
38
  {
39
- [[MParticle sharedInstance] logScreen:screenName eventInfo:attributes];
39
+ [[MParticle sharedInstance] logScreen:screenName eventInfo:attributes shouldUploadEvent:shouldUploadEvent];
40
40
  }
41
41
 
42
42
  RCT_EXPORT_METHOD(setATTStatus:(NSInteger)status withATTStatusTimestampMillis:(nonnull NSNumber *)timestamp)
@@ -413,12 +413,14 @@ typedef NS_ENUM(NSUInteger, MPReactCommerceEventAction) {
413
413
  commerceEvent.productListSource = json[@"productActionListSource"];
414
414
  commerceEvent.screenName = json[@"screenName"];
415
415
  commerceEvent.transactionAttributes = [RCTConvert MPTransactionAttributes:json[@"transactionAttributes"]];
416
- commerceEvent.action = [RCTConvert MPCommerceEventAction:json[@"productActionType"]];
417
416
  commerceEvent.checkoutStep = [json[@"checkoutStep"] intValue];
418
417
  commerceEvent.nonInteractive = [json[@"nonInteractive"] boolValue];
419
418
  if (json[@"shouldUploadEvent"] != nil) {
420
419
  commerceEvent.shouldUploadEvent = [json[@"shouldUploadEvent"] boolValue];
421
420
  }
421
+ if (json[@"customAttributes"] != nil) {
422
+ commerceEvent.customAttributes = json[@"customAttributes"];
423
+ }
422
424
 
423
425
  NSMutableArray *products = [NSMutableArray array];
424
426
  NSArray *jsonProducts = json[@"products"];
package/js/index.js CHANGED
@@ -96,8 +96,8 @@ const logCommerceEvent = (commerceEvent) => {
96
96
  NativeModules.MParticle.logCommerceEvent(commerceEvent)
97
97
  }
98
98
 
99
- const logScreenEvent = (screenName, attributes = null) => {
100
- NativeModules.MParticle.logScreenEvent(screenName, attributes)
99
+ const logScreenEvent = (screenName, attributes = null, shouldUploadEvent = true) => {
100
+ NativeModules.MParticle.logScreenEvent(screenName, attributes, shouldUploadEvent)
101
101
  }
102
102
 
103
103
  // Use ATTAuthStatus constants for status
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "homepage": "https://www.mparticle.com",
5
5
  "license": "Apache-2.0",
6
6
  "repository": "mParticle/react-native-mparticle",
7
- "version": "2.6.0",
7
+ "version": "2.7.0",
8
8
  "main": "js/index.js",
9
9
  "scripts": {
10
10
  "test": "./node_modules/standard/bin/cmd.js",