reteno-react-native-sdk 1.4.8 → 1.4.9

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.
@@ -72,7 +72,7 @@ dependencies {
72
72
  //noinspection GradleDynamicVersion
73
73
  implementation "com.facebook.react:react-native"
74
74
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
75
- implementation 'com.reteno:fcm:2.0.3'
75
+ implementation 'com.reteno:fcm:2.0.4'
76
76
  implementation "com.google.firebase:firebase-messaging:23.1.0"
77
77
  implementation "com.google.firebase:firebase-messaging-ktx:23.1.0"
78
78
  coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.2.2'
@@ -9,6 +9,15 @@
9
9
  <action android:name="com.reteno.custom-push" />
10
10
  </intent-filter>
11
11
  </receiver>
12
+ <receiver
13
+ android:name="com.retenosdk.RetenoCustomReceiverInAppData"
14
+ android:enabled="true"
15
+ android:exported="false">
16
+
17
+ <intent-filter>
18
+ <action android:name="com.reteno.custom-inapp-data" />
19
+ </intent-filter>
20
+ </receiver>
12
21
  <meta-data
13
22
  android:name="com.reteno.Receiver.PushReceived"
14
23
  android:value="com.retenosdk.RetenoPushReceiver" />
@@ -0,0 +1,74 @@
1
+ package com.retenosdk;
2
+
3
+ import android.app.Activity;
4
+ import android.content.BroadcastReceiver;
5
+ import android.content.Context;
6
+ import android.content.Intent;
7
+ import android.os.Bundle;
8
+ import android.net.Uri;
9
+ import android.webkit.URLUtil;
10
+
11
+ import com.facebook.react.bridge.ReactContext;
12
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
13
+ import com.facebook.react.bridge.Arguments;
14
+ import com.facebook.react.bridge.WritableMap;
15
+
16
+ public class RetenoCustomReceiverInAppData extends BroadcastReceiver {
17
+ @Override
18
+ public void onReceive(Context context, Intent intent) {
19
+ Bundle extras = intent.getExtras();
20
+ if (extras != null) {
21
+ String url = extras.getString("url");
22
+
23
+ handleCustomData(extras, context);
24
+
25
+ if (url != null && URLUtil.isValidUrl(url)) {
26
+ Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
27
+ if (context instanceof Activity) {
28
+ context.startActivity(browserIntent);
29
+ } else {
30
+ browserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
31
+ context.startActivity(browserIntent);
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ private void handleCustomData(Bundle extras, Context context) {
38
+ WritableMap eventData = Arguments.createMap();
39
+ WritableMap customDataMap = Arguments.createMap();
40
+ if (extras != null) {
41
+ for (String key : extras.keySet()) {
42
+ Object value = extras.get(key);
43
+ if ("inapp_id".equals(key) || "inapp_source".equals(key) || "url".equals(key)) {
44
+ if (value instanceof String) {
45
+ eventData.putString(key, (String) value);
46
+ } else if (value instanceof Integer) {
47
+ eventData.putInt(key, (Integer) value);
48
+ } else if (value instanceof Boolean) {
49
+ eventData.putBoolean(key, (Boolean) value);
50
+ } else if (value instanceof Double) {
51
+ eventData.putDouble(key, (Double) value);
52
+ }
53
+ } else {
54
+ if (value instanceof String) {
55
+ customDataMap.putString(key, (String) value);
56
+ } else if (value instanceof Integer) {
57
+ customDataMap.putInt(key, (Integer) value);
58
+ } else if (value instanceof Boolean) {
59
+ customDataMap.putBoolean(key, (Boolean) value);
60
+ } else if (value instanceof Double) {
61
+ customDataMap.putDouble(key, (Double) value);
62
+ }
63
+ }
64
+ }
65
+
66
+ eventData.putMap("customData", customDataMap);
67
+ }
68
+
69
+ ReactContext reactContext = ((RetenoReactNativeApplication) context.getApplicationContext())
70
+ .getReactContext();
71
+ reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
72
+ .emit("reteno-in-app-custom-data-received", eventData);
73
+ }
74
+ }
@@ -20,14 +20,19 @@ import com.facebook.react.bridge.WritableNativeMap;
20
20
  import com.facebook.react.bridge.WritableArray;
21
21
  import com.facebook.react.modules.core.DeviceEventManagerModule;
22
22
  import com.reteno.core.RetenoApplication;
23
+ import com.reteno.core.data.remote.model.recommendation.get.Recoms;
23
24
  import com.reteno.core.domain.model.user.User;
24
25
  import com.reteno.core.domain.model.user.UserAttributesAnonymous;
25
26
  import com.reteno.core.domain.model.recommendation.get.RecomRequest;
26
- import com.reteno.core.data.remote.model.recommendation.get.Recoms;
27
- import com.reteno.core.features.recommendation.GetRecommendationResponseCallback;
28
27
  import com.reteno.core.domain.model.recommendation.post.RecomEvent;
29
28
  import com.reteno.core.domain.model.recommendation.post.RecomEventType;
30
29
  import com.reteno.core.domain.model.recommendation.post.RecomEvents;
30
+ import com.reteno.core.view.iam.callback.InAppData;
31
+ import com.reteno.core.view.iam.callback.InAppCloseData;
32
+ import com.reteno.core.view.iam.callback.InAppErrorData;
33
+ import com.reteno.core.view.iam.callback.InAppLifecycleCallback;
34
+ import com.reteno.core.features.recommendation.GetRecommendationResponseCallback;
35
+
31
36
 
32
37
  import java.util.ArrayList;
33
38
  import java.util.List;
@@ -187,6 +192,18 @@ public class RetenoSdkModule extends ReactContextBaseJavaModule {
187
192
  }
188
193
  }
189
194
 
195
+ @ReactMethod
196
+ public void pauseInAppMessages(Boolean isPaused, Promise promise) {
197
+ try {
198
+ ((RetenoApplication) this.context.getCurrentActivity().getApplication())
199
+ .getRetenoInstance()
200
+ .pauseInAppMessages(isPaused);
201
+ promise.resolve(true);
202
+ } catch (Exception e) {
203
+ promise.reject("Reteno Android SDK pauseInAppMessages Error", e);
204
+ }
205
+ }
206
+
190
207
  @ReactMethod
191
208
  public void updatePushPermissionStatusAndroid(Promise promise) {
192
209
  try {
@@ -198,6 +215,83 @@ public class RetenoSdkModule extends ReactContextBaseJavaModule {
198
215
  }
199
216
  }
200
217
 
218
+ private void sendEventToJS(String eventName, WritableMap eventData) {
219
+ ReactContext reactContext = ((RetenoReactNativeApplication) this.context.getApplicationContext())
220
+ .getReactContext();
221
+ reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
222
+ .emit(eventName, eventData);
223
+ }
224
+
225
+ private InAppLifecycleCallback inAppLifecycleCallback;
226
+
227
+ @ReactMethod
228
+ public void setInAppLifecycleCallback(Promise promise) {
229
+ try {
230
+ inAppLifecycleCallback = new InAppLifecycleCallback() {
231
+ @Override
232
+ public void beforeDisplay(@NonNull InAppData inAppData) {
233
+ WritableMap eventData = Arguments.createMap();
234
+ eventData.putString("source", inAppData.getSource().toString());
235
+ eventData.putString("id", inAppData.getId());
236
+ sendEventToJS("reteno-before-in-app-display", eventData);
237
+ }
238
+
239
+ @Override
240
+ public void onDisplay(@NonNull InAppData inAppData) {
241
+ WritableMap eventData = Arguments.createMap();
242
+ eventData.putString("source", inAppData.getSource().toString());
243
+ eventData.putString("id", inAppData.getId());
244
+ sendEventToJS("reteno-on-in-app-display", eventData);
245
+ }
246
+
247
+ @Override
248
+ public void beforeClose(@NonNull InAppCloseData closeData) {
249
+ WritableMap eventData = Arguments.createMap();
250
+ eventData.putString("source", closeData.getSource().toString());
251
+ eventData.putString("id", closeData.getId());
252
+ eventData.putString("closeAction", closeData.getCloseAction().toString());
253
+ sendEventToJS("reteno-before-in-app-close", eventData);
254
+ }
255
+
256
+ @Override
257
+ public void afterClose(@NonNull InAppCloseData closeData) {
258
+ WritableMap eventData = Arguments.createMap();
259
+ eventData.putString("source", closeData.getSource().toString());
260
+ eventData.putString("id", closeData.getId());
261
+ eventData.putString("closeAction", closeData.getCloseAction().toString());
262
+ sendEventToJS("reteno-after-in-app-close", eventData);
263
+ }
264
+
265
+ @Override
266
+ public void onError(@NonNull InAppErrorData errorData) {
267
+ WritableMap eventData = Arguments.createMap();
268
+ eventData.putString("source", errorData.getSource().toString());
269
+ eventData.putString("id", errorData.getId());
270
+ eventData.putString("errorMessage", errorData.getErrorMessage());
271
+ sendEventToJS("reteno-on-in-app-error", eventData);
272
+ }
273
+ };
274
+ ((RetenoApplication) this.context.getCurrentActivity().getApplication())
275
+ .getRetenoInstance().setInAppLifecycleCallback(inAppLifecycleCallback);
276
+ promise.resolve(true);
277
+ } catch (Exception e) {
278
+ promise.reject("Reteno Android SDK setInAppLifecycleCallback Error", e);
279
+ }
280
+ }
281
+
282
+ @ReactMethod
283
+ public void removeInAppLifecycleCallback(Promise promise) {
284
+ try {
285
+ if (inAppLifecycleCallback != null) {
286
+ ((RetenoApplication) this.context.getCurrentActivity().getApplication()).getRetenoInstance().setInAppLifecycleCallback(null);
287
+ inAppLifecycleCallback = null;
288
+ }
289
+ promise.resolve(true);
290
+ } catch (Exception e) {
291
+ promise.reject("Reteno Android SDK removeInAppLifecycleCallback Error", e);
292
+ }
293
+ }
294
+
201
295
  private List<String> convertReadableArrayToStringList(ReadableArray array) {
202
296
  List<String> list = new ArrayList<>();
203
297
  for (int i = 0; i < array.size(); i++) {
@@ -19,7 +19,7 @@ class EventEmitter {
19
19
 
20
20
  /// All Events which must be support by React Native.
21
21
  lazy var allEvents: [String] = {
22
- var allEventNames: [String] = ["reteno-push-received"]
22
+ var allEventNames: [String] = ["reteno-push-received", "reteno-in-app-custom-data-received", "reteno-before-in-app-display", "reteno-on-in-app-display", "reteno-before-in-app-close", "reteno-after-in-app-close", "reteno-on-in-app-error"]
23
23
 
24
24
  // Append all events here
25
25
 
package/ios/RetenoSdk.m CHANGED
@@ -24,6 +24,12 @@ RCT_EXTERN_METHOD(setAnonymousUserAttributes:(NSDictionary*)payload
24
24
  withResolver:(RCTPromiseResolveBlock)resolve
25
25
  withRejecter:(RCTPromiseRejectBlock)reject)
26
26
 
27
+ RCT_EXTERN_METHOD(pauseInAppMessages:(BOOL)isPaused
28
+ withResolver:(RCTPromiseResolveBlock)resolve
29
+ withRejecter:(RCTPromiseRejectBlock)reject)
30
+
31
+ RCT_EXTERN_METHOD(setInAppLifecycleCallback)
32
+
27
33
  RCT_EXTERN_METHOD(getRecommendations:(NSDictionary*)payload
28
34
  withResolver:(RCTPromiseResolveBlock)resolve
29
35
  withRejecter:(RCTPromiseRejectBlock)reject)
@@ -99,6 +99,34 @@ open class RetenoSdk: RCTEventEmitter {
99
99
  }
100
100
  }
101
101
 
102
+ @objc(pauseInAppMessages:withResolver:withRejecter:)
103
+ func pauseInAppMessages(isPaused: Bool, resolve:RCTPromiseResolveBlock,reject:RCTPromiseRejectBlock) -> Void {
104
+ Reteno.pauseInAppMessages(isPaused: isPaused);
105
+ resolve(true);
106
+ }
107
+
108
+ @objc(setInAppLifecycleCallback)
109
+ func setInAppLifecycleCallback() {
110
+ Reteno.addInAppStatusHandler { inAppMessageStatus in
111
+ switch inAppMessageStatus {
112
+ case .inAppShouldBeDisplayed:
113
+ self.sendEvent(withName: "reteno-before-in-app-display", body: nil)
114
+ case .inAppIsDisplayed:
115
+ self.sendEvent(withName: "reteno-on-in-app-display", body: nil)
116
+ case .inAppShouldBeClosed(let action):
117
+ self.sendEvent(withName: "reteno-before-in-app-close", body: ["action": action])
118
+ Reteno.addLinkHandler { linkInfo in
119
+ self.sendEvent(withName: "reteno-in-app-custom-data-received", body: ["customData": linkInfo.customData])
120
+ UIApplication.shared.open(linkInfo.url)
121
+ }
122
+ case .inAppIsClosed(let action):
123
+ self.sendEvent(withName: "reteno-after-in-app-close", body: ["action": action])
124
+ case .inAppReceivedError(let error):
125
+ self.sendEvent(withName: "reteno-on-in-app-error", body: ["error": error])
126
+ }
127
+ }
128
+ }
129
+
102
130
  @objc(getRecommendations:withResolver:withRejecter:)
103
131
  func getRecommendations(payload: NSDictionary, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
104
132
  guard let recomVariantId = payload["recomVariantId"] as? String,
@@ -4,15 +4,24 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CustomEventTypes = void 0;
7
+ exports.addInAppMessageCustomDataHandler = addInAppMessageCustomDataHandler;
8
+ exports.afterInAppCloseHandler = afterInAppCloseHandler;
9
+ exports.beforeInAppCloseHandler = beforeInAppCloseHandler;
10
+ exports.beforeInAppDisplayHandler = beforeInAppDisplayHandler;
7
11
  exports.forcePushData = forcePushData;
8
12
  exports.getInitialNotification = getInitialNotification;
9
13
  exports.getRecommendations = getRecommendations;
10
14
  exports.logEvent = logEvent;
11
15
  exports.logRecommendationEvent = logRecommendationEvent;
12
16
  exports.logScreenView = logScreenView;
17
+ exports.onInAppDisplayHandler = onInAppDisplayHandler;
18
+ exports.onInAppErrorHandler = onInAppErrorHandler;
19
+ exports.pauseInAppMessages = pauseInAppMessages;
13
20
  exports.registerForRemoteNotifications = registerForRemoteNotifications;
21
+ exports.removeInAppLifecycleCallback = removeInAppLifecycleCallback;
14
22
  exports.setAnonymousUserAttributes = setAnonymousUserAttributes;
15
23
  exports.setDeviceToken = setDeviceToken;
24
+ exports.setInAppLifecycleCallback = setInAppLifecycleCallback;
16
25
  exports.setOnRetenoPushReceivedListener = setOnRetenoPushReceivedListener;
17
26
  exports.setUserAttributes = setUserAttributes;
18
27
  exports.updatePushPermissionStatusAndroid = updatePushPermissionStatusAndroid;
@@ -57,6 +66,60 @@ const eventEmitter = _reactNative.Platform.select({
57
66
  function setOnRetenoPushReceivedListener(listener) {
58
67
  return eventEmitter.addListener('reteno-push-received', listener);
59
68
  }
69
+ function setInAppLifecycleCallback() {
70
+ RetenoSdk.setInAppLifecycleCallback();
71
+ }
72
+
73
+ /**
74
+ * Android Only
75
+ */
76
+ function removeInAppLifecycleCallback() {
77
+ if (_reactNative.Platform.OS === 'android') {
78
+ RetenoSdk.removeInAppLifecycleCallback();
79
+ }
80
+ }
81
+ function beforeInAppDisplayHandler(callback) {
82
+ return eventEmitter.addListener('reteno-before-in-app-display', data => {
83
+ if (callback && typeof callback === 'function') {
84
+ callback(data);
85
+ }
86
+ });
87
+ }
88
+ function onInAppDisplayHandler(callback) {
89
+ return eventEmitter.addListener('reteno-on-in-app-display', data => {
90
+ if (callback && typeof callback === 'function') {
91
+ callback(data);
92
+ }
93
+ });
94
+ }
95
+ function beforeInAppCloseHandler(callback) {
96
+ return eventEmitter.addListener('reteno-before-in-app-close', data => {
97
+ if (callback && typeof callback === 'function') {
98
+ callback(data);
99
+ }
100
+ });
101
+ }
102
+ function afterInAppCloseHandler(callback) {
103
+ return eventEmitter.addListener('reteno-after-in-app-close', data => {
104
+ if (callback && typeof callback === 'function') {
105
+ callback(data);
106
+ }
107
+ });
108
+ }
109
+ function onInAppErrorHandler(callback) {
110
+ return eventEmitter.addListener('reteno-on-in-app-error', data => {
111
+ if (callback && typeof callback === 'function') {
112
+ callback(data);
113
+ }
114
+ });
115
+ }
116
+ function addInAppMessageCustomDataHandler(callback) {
117
+ return eventEmitter.addListener('reteno-in-app-custom-data-received', data => {
118
+ if (callback && typeof callback === 'function') {
119
+ callback(data);
120
+ }
121
+ });
122
+ }
60
123
 
61
124
  /**
62
125
  * Log event
@@ -87,6 +150,10 @@ function registerForRemoteNotifications() {
87
150
  function setAnonymousUserAttributes(payload) {
88
151
  return RetenoSdk.setAnonymousUserAttributes(payload);
89
152
  }
153
+ function pauseInAppMessages(isPaused) {
154
+ return RetenoSdk.pauseInAppMessages(isPaused);
155
+ }
156
+
90
157
  /**
91
158
  *
92
159
  * Reteno caches all events (events, device data, user information, user behavior, screen tracking, push statuses, etc) locally into database
@@ -1 +1 @@
1
- {"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","CustomEventTypes","RetenoSdk","NativeModules","Proxy","get","Error","setDeviceToken","deviceToken","setUserAttributes","payload","externalUserId","length","getInitialNotification","getRecommendations","logRecommendationEvent","eventEmitter","NativeEventEmitter","android","DeviceEventEmitter","setOnRetenoPushReceivedListener","listener","addListener","logEvent","eventName","date","parameters","forcePush","registerForRemoteNotifications","OS","setAnonymousUserAttributes","forcePushData","Date","toISOString","logScreenView","screenName","screenView","name","value","updatePushPermissionStatusAndroid","Promise","resolve","undefined"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
1
+ {"version":3,"names":["LINKING_ERROR","Platform","select","ios","default","CustomEventTypes","RetenoSdk","NativeModules","Proxy","get","Error","setDeviceToken","deviceToken","setUserAttributes","payload","externalUserId","length","getInitialNotification","getRecommendations","logRecommendationEvent","eventEmitter","NativeEventEmitter","android","DeviceEventEmitter","setOnRetenoPushReceivedListener","listener","addListener","setInAppLifecycleCallback","removeInAppLifecycleCallback","OS","beforeInAppDisplayHandler","callback","data","onInAppDisplayHandler","beforeInAppCloseHandler","afterInAppCloseHandler","onInAppErrorHandler","addInAppMessageCustomDataHandler","logEvent","eventName","date","parameters","forcePush","registerForRemoteNotifications","setAnonymousUserAttributes","pauseInAppMessages","isPaused","forcePushData","Date","toISOString","logScreenView","screenName","screenView","name","value","updatePushPermissionStatusAndroid","Promise","resolve","undefined"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -38,6 +38,60 @@ const eventEmitter = Platform.select({
38
38
  export function setOnRetenoPushReceivedListener(listener) {
39
39
  return eventEmitter.addListener('reteno-push-received', listener);
40
40
  }
41
+ export function setInAppLifecycleCallback() {
42
+ RetenoSdk.setInAppLifecycleCallback();
43
+ }
44
+
45
+ /**
46
+ * Android Only
47
+ */
48
+ export function removeInAppLifecycleCallback() {
49
+ if (Platform.OS === 'android') {
50
+ RetenoSdk.removeInAppLifecycleCallback();
51
+ }
52
+ }
53
+ export function beforeInAppDisplayHandler(callback) {
54
+ return eventEmitter.addListener('reteno-before-in-app-display', data => {
55
+ if (callback && typeof callback === 'function') {
56
+ callback(data);
57
+ }
58
+ });
59
+ }
60
+ export function onInAppDisplayHandler(callback) {
61
+ return eventEmitter.addListener('reteno-on-in-app-display', data => {
62
+ if (callback && typeof callback === 'function') {
63
+ callback(data);
64
+ }
65
+ });
66
+ }
67
+ export function beforeInAppCloseHandler(callback) {
68
+ return eventEmitter.addListener('reteno-before-in-app-close', data => {
69
+ if (callback && typeof callback === 'function') {
70
+ callback(data);
71
+ }
72
+ });
73
+ }
74
+ export function afterInAppCloseHandler(callback) {
75
+ return eventEmitter.addListener('reteno-after-in-app-close', data => {
76
+ if (callback && typeof callback === 'function') {
77
+ callback(data);
78
+ }
79
+ });
80
+ }
81
+ export function onInAppErrorHandler(callback) {
82
+ return eventEmitter.addListener('reteno-on-in-app-error', data => {
83
+ if (callback && typeof callback === 'function') {
84
+ callback(data);
85
+ }
86
+ });
87
+ }
88
+ export function addInAppMessageCustomDataHandler(callback) {
89
+ return eventEmitter.addListener('reteno-in-app-custom-data-received', data => {
90
+ if (callback && typeof callback === 'function') {
91
+ callback(data);
92
+ }
93
+ });
94
+ }
41
95
 
42
96
  /**
43
97
  * Log event
@@ -68,6 +122,10 @@ export function registerForRemoteNotifications() {
68
122
  export function setAnonymousUserAttributes(payload) {
69
123
  return RetenoSdk.setAnonymousUserAttributes(payload);
70
124
  }
125
+ export function pauseInAppMessages(isPaused) {
126
+ return RetenoSdk.pauseInAppMessages(isPaused);
127
+ }
128
+
71
129
  /**
72
130
  *
73
131
  * Reteno caches all events (events, device data, user information, user behavior, screen tracking, push statuses, etc) locally into database
@@ -1 +1 @@
1
- {"version":3,"names":["DeviceEventEmitter","NativeEventEmitter","NativeModules","Platform","LINKING_ERROR","select","ios","default","CustomEventTypes","RetenoSdk","Proxy","get","Error","setDeviceToken","deviceToken","setUserAttributes","payload","externalUserId","length","getInitialNotification","getRecommendations","logRecommendationEvent","eventEmitter","android","setOnRetenoPushReceivedListener","listener","addListener","logEvent","eventName","date","parameters","forcePush","registerForRemoteNotifications","OS","setAnonymousUserAttributes","forcePushData","Date","toISOString","logScreenView","screenName","screenView","name","value","updatePushPermissionStatusAndroid","Promise","resolve","undefined"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SACEA,kBAAkB,EAClBC,kBAAkB,EAClBC,aAAa,EACbC,QAAQ,QACH,cAAc;AAErB,MAAMC,aAAa,GAChB,kFAAiF,GAClFD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,WAAYC,gBAAgB;AAE3B,WAFWA,gBAAgB;EAAhBA,gBAAgB;AAAA,GAAhBA,gBAAgB,KAAhBA,gBAAgB;AAuE5B,MAAMC,SAAS,GAAGP,aAAa,CAACO,SAAS,GACrCP,aAAa,CAACO,SAAS,GACvB,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAG,GAAG;IACJ,MAAM,IAAIC,KAAK,CAACR,aAAa,CAAC;EAChC;AACF,CAAC,CACF;AAEL,OAAO,SAASS,cAAc,CAACC,WAAmB,EAAiB;EACjE,OAAOL,SAAS,CAACI,cAAc,CAACC,WAAW,CAAC;AAC9C;AAEA,OAAO,SAASC,iBAAiB,CAC/BC,OAAiC,EAClB;EACf,IACE,CAACA,OAAO,CAACC,cAAc,IACtBD,OAAO,CAACC,cAAc,IAAID,OAAO,CAACC,cAAc,CAACC,MAAM,KAAK,CAAE,EAC/D;IACA,MAAM,IAAIN,KAAK,CAAC,oCAAoC,CAAC;EACvD;EACA,OAAOH,SAAS,CAACM,iBAAiB,CAACC,OAAO,CAAC;AAC7C;AAEA,OAAO,SAASG,sBAAsB,GAAiB;EACrD,OAAOV,SAAS,CAACU,sBAAsB,EAAE;AAC3C;AAEA,OAAO,SAASC,kBAAkB,CAChCJ,OAA+B,EACjB;EACd,OAAOP,SAAS,CAACW,kBAAkB,CAACJ,OAAO,CAAC;AAC9C;AAEA,OAAO,SAASK,sBAAsB,CACpCL,OAAmC,EACpB;EACf,OAAOP,SAAS,CAACY,sBAAsB,CAACL,OAAO,CAAC;AAClD;AAEA,MAAMM,YAAY,GAAGnB,QAAQ,CAACE,MAAM,CAAC;EACnCC,GAAG,EAAE,IAAIL,kBAAkB,CAACQ,SAAS,CAAC;EACtC;EACAc,OAAO,EAAEvB;AACX,CAAC,CAAC;AAEF,OAAO,SAASwB,+BAA+B,CAC7CC,QAA8B,EAC9B;EACA,OAAOH,YAAY,CAACI,WAAW,CAAC,sBAAsB,EAAED,QAAQ,CAAC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASE,QAAQ,CACtBC,SAAiB;AACjB;AACAC,IAAY,EACZC,UAAkC,EAClCC,SAAmB,EACJ;EACf,OAAOtB,SAAS,CAACkB,QAAQ,CAAC;IACxBC,SAAS;IACTC,IAAI;IACJC,UAAU;IACVC;EACF,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,SAASC,8BAA8B,GAAG;EAC/C,IAAI7B,QAAQ,CAAC8B,EAAE,KAAK,KAAK,EAAE;IACzBxB,SAAS,CAACuB,8BAA8B,EAAE;EAC5C;AACF;AAEA,OAAO,SAASE,0BAA0B,CACxClB,OAAgC,EACjB;EACf,OAAOP,SAAS,CAACyB,0BAA0B,CAAClB,OAAO,CAAC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASmB,aAAa,GAAkB;EAC7C,IAAIhC,QAAQ,CAAC8B,EAAE,KAAK,KAAK,EAAE;IACzB;IACA,OAAON,QAAQ,CAAC,EAAE,EAAE,IAAIS,IAAI,EAAE,CAACC,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC;EACzD,CAAC,MAAM,OAAO5B,SAAS,CAAC0B,aAAa,EAAE;AACzC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,aAAa,CAACC,UAAkB,EAAE;EAChD,OAAOZ,QAAQ,CAACnB,gBAAgB,CAACgC,UAAU,EAAE,IAAIJ,IAAI,EAAE,CAACC,WAAW,EAAE,EAAE,CACrE;IAAEI,IAAI,EAAEjC,gBAAgB,CAACgC,UAAU;IAAEE,KAAK,EAAEH;EAAW,CAAC,CACzD,CAAC;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,iCAAiC,GAAkB;EACjE,IAAIxC,QAAQ,CAAC8B,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAOxB,SAAS,CAACkC,iCAAiC,EAAE;EACtD;EACA,OAAOC,OAAO,CAACC,OAAO,CAACC,SAAS,CAAC;AACnC"}
1
+ {"version":3,"names":["DeviceEventEmitter","NativeEventEmitter","NativeModules","Platform","LINKING_ERROR","select","ios","default","CustomEventTypes","RetenoSdk","Proxy","get","Error","setDeviceToken","deviceToken","setUserAttributes","payload","externalUserId","length","getInitialNotification","getRecommendations","logRecommendationEvent","eventEmitter","android","setOnRetenoPushReceivedListener","listener","addListener","setInAppLifecycleCallback","removeInAppLifecycleCallback","OS","beforeInAppDisplayHandler","callback","data","onInAppDisplayHandler","beforeInAppCloseHandler","afterInAppCloseHandler","onInAppErrorHandler","addInAppMessageCustomDataHandler","logEvent","eventName","date","parameters","forcePush","registerForRemoteNotifications","setAnonymousUserAttributes","pauseInAppMessages","isPaused","forcePushData","Date","toISOString","logScreenView","screenName","screenView","name","value","updatePushPermissionStatusAndroid","Promise","resolve","undefined"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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"}
@@ -37,6 +37,26 @@ export type CustomEventParameter = {
37
37
  name: string;
38
38
  value?: string;
39
39
  };
40
+ export type InAppDisplayData = {
41
+ id?: string;
42
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
43
+ };
44
+ export type InAppCloseData = {
45
+ id?: string;
46
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
47
+ closeAction?: 'OPEN_URL' | 'BUTTON' | 'CLOSE_BUTTON';
48
+ };
49
+ export type InAppErrorData = {
50
+ id?: string;
51
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
52
+ errorMessage?: string;
53
+ };
54
+ export type InAppCustomData = {
55
+ customData?: Record<string, any>;
56
+ inapp_id?: string;
57
+ inapp_source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
58
+ url?: string;
59
+ };
40
60
  export type RecommendationsPayload = {
41
61
  recomVariantId: string;
42
62
  productIds: string[];
@@ -61,6 +81,17 @@ export declare function getInitialNotification(): Promise<any>;
61
81
  export declare function getRecommendations(payload: RecommendationsPayload): Promise<any>;
62
82
  export declare function logRecommendationEvent(payload: RecommendationEventPayload): Promise<void>;
63
83
  export declare function setOnRetenoPushReceivedListener(listener: (event: any) => void): import("react-native").EmitterSubscription;
84
+ export declare function setInAppLifecycleCallback(): void;
85
+ /**
86
+ * Android Only
87
+ */
88
+ export declare function removeInAppLifecycleCallback(): void;
89
+ export declare function beforeInAppDisplayHandler(callback: (data: InAppDisplayData) => void): import("react-native").EmitterSubscription;
90
+ export declare function onInAppDisplayHandler(callback: (data: InAppDisplayData) => void): import("react-native").EmitterSubscription;
91
+ export declare function beforeInAppCloseHandler(callback: (data: InAppCloseData) => void): import("react-native").EmitterSubscription;
92
+ export declare function afterInAppCloseHandler(callback: (data: InAppCloseData) => void): import("react-native").EmitterSubscription;
93
+ export declare function onInAppErrorHandler(callback: (data: InAppErrorData) => void): import("react-native").EmitterSubscription;
94
+ export declare function addInAppMessageCustomDataHandler(callback: (data: InAppCustomData) => void): import("react-native").EmitterSubscription;
64
95
  /**
65
96
  * Log event
66
97
  * @param eventName name of the event
@@ -74,6 +105,7 @@ export declare function logEvent(eventName: string, date: string, parameters: Cu
74
105
  */
75
106
  export declare function registerForRemoteNotifications(): void;
76
107
  export declare function setAnonymousUserAttributes(payload: AnonymousUserAttributes): Promise<void>;
108
+ export declare function pauseInAppMessages(isPaused: boolean): Promise<void>;
77
109
  /**
78
110
  *
79
111
  * Reteno caches all events (events, device data, user information, user behavior, screen tracking, push statuses, etc) locally into database
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAaA,oBAAY,gBAAgB;IAC1B,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AAEtB,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACxC,cAAc,EACd,WAAW,GAAG,UAAU,GAAG,cAAc,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,CAC9E,CAAC;AAEF,MAAM,MAAM,IAAI,GAAG;IACjB,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,cAAc,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,EAAE,CAAC;IACnC,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAE9B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAaF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAgB,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,CAErD;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,GAAG,CAAC,CAEd;AAED,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,IAAI,CAAC,CAEf;AAQD,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,8CAG/B;AAED,wBAAgB,yBAAyB,SAExC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,SAI3C;AAED,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,8CAO3C;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,8CAO3C;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,8CAOzC;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,8CAOzC;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,8CAM3E;AAED,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,8CAU1C;AAED;;;;;;GAMG;AACH,wBAAgB,QAAQ,CACtB,SAAS,EAAE,MAAM,EAEjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,oBAAoB,EAAE,EAClC,SAAS,CAAC,EAAE,OAAO,GAClB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;GAEG;AACH,wBAAgB,8BAA8B,SAI7C;AAED,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAK7C;AACD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,iBAI/C;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,IAAI,OAAO,CAAC,IAAI,CAAC,CAKjE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reteno-react-native-sdk",
3
- "version": "1.4.8",
3
+ "version": "1.4.9",
4
4
  "description": "The Reteno React Native SDK for App Analytics and Engagement.",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.ts CHANGED
@@ -62,6 +62,30 @@ export type CustomEventParameter = {
62
62
  value?: string;
63
63
  };
64
64
 
65
+ export type InAppDisplayData = {
66
+ id?: string;
67
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
68
+ };
69
+
70
+ export type InAppCloseData = {
71
+ id?: string;
72
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
73
+ closeAction?: 'OPEN_URL' | 'BUTTON' | 'CLOSE_BUTTON';
74
+ };
75
+
76
+ export type InAppErrorData = {
77
+ id?: string;
78
+ source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
79
+ errorMessage?: string;
80
+ };
81
+
82
+ export type InAppCustomData = {
83
+ customData?: Record<string, any>;
84
+ inapp_id?: string;
85
+ inapp_source?: 'DISPLAY_RULES' | 'PUSH_NOTIFICATION';
86
+ url?: string;
87
+ };
88
+
65
89
  export type RecommendationsPayload = {
66
90
  recomVariantId: string;
67
91
  productIds: string[];
@@ -137,6 +161,80 @@ export function setOnRetenoPushReceivedListener(
137
161
  return eventEmitter.addListener('reteno-push-received', listener);
138
162
  }
139
163
 
164
+ export function setInAppLifecycleCallback() {
165
+ RetenoSdk.setInAppLifecycleCallback();
166
+ }
167
+
168
+ /**
169
+ * Android Only
170
+ */
171
+ export function removeInAppLifecycleCallback() {
172
+ if (Platform.OS === 'android') {
173
+ RetenoSdk.removeInAppLifecycleCallback();
174
+ }
175
+ }
176
+
177
+ export function beforeInAppDisplayHandler(
178
+ callback: (data: InAppDisplayData) => void
179
+ ) {
180
+ return eventEmitter.addListener('reteno-before-in-app-display', (data) => {
181
+ if (callback && typeof callback === 'function') {
182
+ callback(data);
183
+ }
184
+ });
185
+ }
186
+
187
+ export function onInAppDisplayHandler(
188
+ callback: (data: InAppDisplayData) => void
189
+ ) {
190
+ return eventEmitter.addListener('reteno-on-in-app-display', (data) => {
191
+ if (callback && typeof callback === 'function') {
192
+ callback(data);
193
+ }
194
+ });
195
+ }
196
+
197
+ export function beforeInAppCloseHandler(
198
+ callback: (data: InAppCloseData) => void
199
+ ) {
200
+ return eventEmitter.addListener('reteno-before-in-app-close', (data) => {
201
+ if (callback && typeof callback === 'function') {
202
+ callback(data);
203
+ }
204
+ });
205
+ }
206
+
207
+ export function afterInAppCloseHandler(
208
+ callback: (data: InAppCloseData) => void
209
+ ) {
210
+ return eventEmitter.addListener('reteno-after-in-app-close', (data) => {
211
+ if (callback && typeof callback === 'function') {
212
+ callback(data);
213
+ }
214
+ });
215
+ }
216
+
217
+ export function onInAppErrorHandler(callback: (data: InAppErrorData) => void) {
218
+ return eventEmitter.addListener('reteno-on-in-app-error', (data) => {
219
+ if (callback && typeof callback === 'function') {
220
+ callback(data);
221
+ }
222
+ });
223
+ }
224
+
225
+ export function addInAppMessageCustomDataHandler(
226
+ callback: (data: InAppCustomData) => void
227
+ ) {
228
+ return eventEmitter.addListener(
229
+ 'reteno-in-app-custom-data-received',
230
+ (data) => {
231
+ if (callback && typeof callback === 'function') {
232
+ callback(data);
233
+ }
234
+ }
235
+ );
236
+ }
237
+
140
238
  /**
141
239
  * Log event
142
240
  * @param eventName name of the event
@@ -173,6 +271,11 @@ export function setAnonymousUserAttributes(
173
271
  ): Promise<void> {
174
272
  return RetenoSdk.setAnonymousUserAttributes(payload);
175
273
  }
274
+
275
+ export function pauseInAppMessages(isPaused: boolean): Promise<void> {
276
+ return RetenoSdk.pauseInAppMessages(isPaused);
277
+ }
278
+
176
279
  /**
177
280
  *
178
281
  * Reteno caches all events (events, device data, user information, user behavior, screen tracking, push statuses, etc) locally into database