react-native-notifyvisitors 4.4.1 → 4.4.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.
@@ -17,6 +17,7 @@ import com.facebook.react.bridge.ReactMethod;
17
17
  import com.facebook.react.bridge.ReadableArray;
18
18
  import com.facebook.react.bridge.ReadableMap;
19
19
  import com.facebook.react.modules.core.DeviceEventManagerModule;
20
+
20
21
  import com.notifyvisitors.notifyvisitors.NotifyVisitorsApi;
21
22
  import com.notifyvisitors.notifyvisitors.NotifyVisitorsApplication;
22
23
  import com.notifyvisitors.notifyvisitors.center.NVCenterStyleConfig;
@@ -28,6 +29,10 @@ import com.notifyvisitors.notifyvisitors.interfaces.OnEventTrackListener;
28
29
  import com.notifyvisitors.notifyvisitors.interfaces.OnPushRuntimePermission;
29
30
  import com.notifyvisitors.notifyvisitors.permission.NVPopupDesign;
30
31
  import com.notifyvisitors.notifyvisitors.push.NVNotificationChannels;
32
+ import com.notifyvisitors.notifyvisitors.interfaces.OnInAppTriggerListener;
33
+ import com.notifyvisitors.notifyvisitors.interfaces.OnKnownUserFound;
34
+ import com.notifyvisitors.notifyvisitors.interfaces.OnUserTrackListener;
35
+ import com.notifyvisitors.notifyvisitors.interfaces.OnBuildUiListener;
31
36
 
32
37
  import org.json.JSONArray;
33
38
  import org.json.JSONObject;
@@ -37,13 +42,14 @@ import java.util.HashSet;
37
42
  import java.util.Set;
38
43
  import java.util.Timer;
39
44
  import java.util.TimerTask;
45
+ import java.util.Iterator;
40
46
 
41
47
 
42
48
  public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implements ActivityEventListener {
43
49
 
44
50
  private final ReactApplicationContext reactContext;
45
51
  private static final String TAG = "RN-NotifyVisitors";
46
- private static final String PLUGIN_VERSION = "4.4.1";
52
+ private static final String PLUGIN_VERSION = "4.4.2";
47
53
 
48
54
  private String PUSH_BANNER_CLICK_EVENT = "nv_push_banner_click";
49
55
  private String CHAT_BOT_BUTTON_CLICK = "nv_chat_bot_button_click";
@@ -51,12 +57,16 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
51
57
  private String SHOW_CALLBACK = "nv_show_callback";
52
58
  private String EVENT_CALLBACK = "nv_event_callback";
53
59
  private String COMMON_SHOW_EVENT_CALLBACK = "nv_common_show_event_callback";
60
+ private String CENTER_CALLBACK = "nv_center_callback";
61
+ private String KNOWN_USER_IDENTIFIED_CALLBACK = "nv_known_user_identified_callback";
54
62
 
55
63
  String finalData;
56
64
 
57
65
  Callback showCallback;
58
66
  Callback eventCallback;
59
67
  Callback commonCallback;
68
+ Callback centerCallback;
69
+ Callback onKnownUserIdentifiedCallback;
60
70
 
61
71
  private String tab1Label, tab1Name;
62
72
  private String tab2Label, tab2Name;
@@ -122,7 +132,6 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
122
132
 
123
133
 
124
134
  /* 0 - For Native SDK Initialize From Application Class */
125
- @ReactMethod
126
135
  public static void register(Context context, int brandID, String brandEncryptKey) {
127
136
  try {
128
137
  Log.i(TAG, "REGISTER !!");
@@ -213,6 +222,66 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
213
222
  }
214
223
  }
215
224
 
225
+ @ReactMethod
226
+ public void showInAppMessage(ReadableMap tokens, ReadableMap customObjects, final String fragmentName, Callback callback) {
227
+ try {
228
+ Log.i(TAG, "SHOW IN APP MESSAGE !!");
229
+ showCallback = callback;
230
+
231
+ mTokens = null;
232
+ try {
233
+ if (tokens != null) {
234
+ HashMap<String, Object> temp = tokens.toHashMap();
235
+ mTokens = new JSONObject(temp);
236
+ }
237
+ } catch (Exception e) {
238
+ Log.i(TAG, "TOKENS PARSE ERROR : " + e);
239
+ }
240
+
241
+ mCustomObjects = null;
242
+ try {
243
+ if (customObjects != null) {
244
+ HashMap<String, Object> temp = customObjects.toHashMap();
245
+ mCustomObjects = new JSONObject(temp);
246
+ }
247
+ } catch (Exception e) {
248
+ Log.i(TAG, "CUSTOM-OBJECT PARSE ERROR : " + e);
249
+ }
250
+
251
+ try {
252
+ if (mTokens != null) {
253
+ Log.i(TAG, "Tokens : " + mTokens.toString());
254
+ }
255
+
256
+ if (mCustomObjects != null) {
257
+ Log.i(TAG, "Custom Rules : " + mCustomObjects.toString());
258
+ }
259
+
260
+ } catch (Exception e) {
261
+ Log.i(TAG, "ERROR : " + e);
262
+ }
263
+
264
+ mActivity = reactContext.getCurrentActivity();
265
+ if (mActivity != null) {
266
+ mActivity.runOnUiThread(new Runnable() {
267
+ @Override
268
+ public void run() {
269
+ NotifyVisitorsApi.getInstance(mActivity).show(mTokens, mCustomObjects, fragmentName, new OnInAppTriggerListener() {
270
+ @Override
271
+ public void onDisplay(JSONObject response) {
272
+ sendEvent(SHOW_CALLBACK, response.toString());
273
+ }
274
+ });
275
+ }
276
+ });
277
+ } else {
278
+ Log.e(TAG, "Getting Null Activity !!");
279
+ }
280
+ } catch (Exception e) {
281
+ Log.i(TAG, "SHOW ERROR : " + e);
282
+ }
283
+ }
284
+
216
285
  /* 2 - Notification Center */
217
286
  @ReactMethod
218
287
  public void showNotifications(ReadableMap mAppInboxInfo, final int dismissValue) {
@@ -366,6 +435,183 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
366
435
 
367
436
  }
368
437
 
438
+ @ReactMethod
439
+ public void openNotificationCenter(ReadableMap mAppInboxInfo, final int dismissValue, Callback callback) {
440
+ Log.i(TAG, "OPEN NOTIFICATION CENTER !!");
441
+ centerCallback = callback;
442
+
443
+ tab1Label = null;
444
+ tab1Name = null;
445
+ tab2Label = null;
446
+ tab2Name = null;
447
+ tab3Label = null;
448
+ tab3Name = null;
449
+ selectedTabColor = null;
450
+ unSelectedTabColor = null;
451
+ selectedTabIndicatorColor = null;
452
+ selectedTabIndex = 0;
453
+
454
+ JSONObject appInboxInfo;
455
+
456
+ try {
457
+ if (mAppInboxInfo != null) {
458
+ HashMap<String, Object> temp = mAppInboxInfo.toHashMap();
459
+ appInboxInfo = new JSONObject(temp);
460
+
461
+ try {
462
+ tab1Label = appInboxInfo.getString("label_one");
463
+ } catch (Exception e) {
464
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB1LABEL ERROR :" + e);
465
+ }
466
+
467
+ try {
468
+ tab1Name = appInboxInfo.getString("name_one");
469
+ } catch (Exception e) {
470
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB1NAME ERROR :" + e);
471
+ }
472
+
473
+ try {
474
+ tab2Label = appInboxInfo.getString("label_two");
475
+ } catch (Exception e) {
476
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB2LABEL ERROR :" + e);
477
+ }
478
+
479
+ try {
480
+ tab2Name = appInboxInfo.getString("name_two");
481
+ } catch (Exception e) {
482
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB2NAME ERROR :" + e);
483
+ }
484
+
485
+ try {
486
+ tab3Label = appInboxInfo.getString("label_three");
487
+ } catch (Exception e) {
488
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB3LABEL ERROR :" + e);
489
+ }
490
+
491
+ try {
492
+ tab3Name = appInboxInfo.getString("name_three");
493
+ } catch (Exception e) {
494
+ Log.i(TAG, "SHOW NOTIFICATIONS TAB3NAME ERROR :" + e);
495
+ }
496
+
497
+ try {
498
+ selectedTabColor = appInboxInfo.getString("selectedTabTextColor");
499
+ } catch (Exception e) {
500
+ Log.i(TAG, "SHOW NOTIFICATIONS SELECTED TAB COLOR ERROR :" + e);
501
+ selectedTabColor = "#0000ff";
502
+ }
503
+
504
+ try {
505
+ unSelectedTabColor = appInboxInfo.getString("unselectedTabTextColor");
506
+ } catch (Exception e) {
507
+ Log.i(TAG, "SHOW NOTIFICATIONS UNSELECTED TAB COLOR ERROR :" + e);
508
+ unSelectedTabColor = "#779ecb";
509
+ }
510
+
511
+ try {
512
+ selectedTabIndicatorColor = appInboxInfo.getString("selectedTabBgColor");
513
+ } catch (Exception e) {
514
+ Log.i(TAG, "SHOW NOTIFICATIONS SELECTED TAB INDICATOR COLOR ERROR :" + e);
515
+ selectedTabIndicatorColor = "#0000ff";
516
+ }
517
+
518
+ try {
519
+ selectedTabIndex = appInboxInfo.getInt("selectedTabIndex_ios");
520
+ } catch (Exception e) {
521
+ Log.i(TAG, "SELECTED TAB INDEX ERROR :" + e);
522
+ }
523
+
524
+ if (tab1Label.equalsIgnoreCase("null")) {
525
+ tab1Label = null;
526
+ }
527
+
528
+ if (tab1Name.equalsIgnoreCase("null")) {
529
+ tab1Name = null;
530
+ }
531
+
532
+ if (tab2Label.equalsIgnoreCase("null")) {
533
+ tab2Label = null;
534
+ }
535
+
536
+ if (tab2Name.equalsIgnoreCase("null")) {
537
+ tab2Name = null;
538
+ }
539
+
540
+ if (tab3Label.equalsIgnoreCase("null")) {
541
+ tab3Label = null;
542
+ }
543
+
544
+ if (tab3Name.equalsIgnoreCase("null")) {
545
+ tab3Name = null;
546
+ }
547
+
548
+ config = new NVCenterStyleConfig();
549
+ config.setFirstTabDetail(tab1Label, tab1Name);
550
+ config.setSecondTabDetail(tab2Label, tab2Name);
551
+ config.setThirdTabDetail(tab3Label, tab3Name);
552
+
553
+ config.setSelectedTabColor(selectedTabColor);
554
+ config.setUnSelectedTabColor(unSelectedTabColor);
555
+ config.setSelectedTabIndicatorColor(selectedTabIndicatorColor);
556
+
557
+ mActivity = reactContext.getCurrentActivity();
558
+ if (mActivity != null) {
559
+ mActivity.runOnUiThread(new Runnable() {
560
+ @Override
561
+ public void run() {
562
+ NotifyVisitorsApi.getInstance(mActivity).showNotifications(dismissValue, config, new OnBuildUiListener() {
563
+ @Override
564
+ public void onCenterClose() {
565
+ //Log.d("App", "Notification center closed");
566
+ try {
567
+ JSONObject j = new JSONObject();
568
+ j.put("status", "success");
569
+ j.put("message", "close button clicked");
570
+ sendResponse(j);
571
+ } catch (Exception e) {
572
+ Log.e(TAG, "CLOSE BUTTON CLICK ERROR :" + e);
573
+ }
574
+ }
575
+ });
576
+ }
577
+ });
578
+ } else {
579
+ Log.e(TAG, "Getting Null Activity !!");
580
+ }
581
+
582
+ } else {
583
+ Log.i(TAG, "TAB INFO IS NULL !! GOING FOR SIMPLE APP INBOX ");
584
+ mActivity = reactContext.getCurrentActivity();
585
+ if (mActivity != null) {
586
+ mActivity.runOnUiThread(new Runnable() {
587
+ @Override
588
+ public void run() {
589
+ NotifyVisitorsApi.getInstance(mActivity).showNotifications(dismissValue, null, new OnBuildUiListener() {
590
+ @Override
591
+ public void onCenterClose() {
592
+ //Log.d("App", "Notification center closed");
593
+ try {
594
+ JSONObject j = new JSONObject();
595
+ j.put("status", "success");
596
+ j.put("message", "close button clicked");
597
+ sendResponse(j);
598
+ } catch (Exception e) {
599
+ Log.e(TAG, "CLOSE BUTTON CLICK ERROR :" + e);
600
+ }
601
+ }
602
+ });
603
+ }
604
+ });
605
+ } else {
606
+ Log.e(TAG, "Getting Null Activity !!");
607
+ }
608
+ }
609
+ } catch (Exception e) {
610
+ Log.i(TAG, "SHOW NOTIFICATIONS ERROR : " + e);
611
+ }
612
+
613
+ }
614
+
369
615
  /* 3 - Event Tracking */
370
616
  @ReactMethod
371
617
  public void event(String eventName, ReadableMap attributes, String ltv, String scope, Callback callback) {
@@ -441,6 +687,34 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
441
687
  Log.i(TAG, "USER IDENTIFIER ERROR : " + e);
442
688
  }
443
689
  }
690
+
691
+ @ReactMethod
692
+ public void setUserIdentifier(ReadableMap attributes, final Callback callback) {
693
+ try {
694
+ Log.i(TAG, "setUserIdentifier !!");
695
+ JSONObject mAttributes = null;
696
+
697
+ if (attributes != null) {
698
+ HashMap<String, Object> temp = attributes.toHashMap();
699
+ mAttributes = new JSONObject(temp);
700
+ }
701
+
702
+ if (mAttributes != null) {
703
+ Log.i(TAG, "Attributes : " + mAttributes);
704
+ } else {
705
+ Log.i(TAG, "Attributes : null");
706
+ }
707
+
708
+ NotifyVisitorsApi.getInstance(reactContext).userIdentifier(mAttributes, new OnUserTrackListener() {
709
+ @Override
710
+ public void onResponse(JSONObject data) {
711
+ callback.invoke(data.toString());
712
+ }
713
+ });
714
+ } catch (Exception e) {
715
+ Log.i(TAG, "SET USER IDENTIFIER ERROR : " + e);
716
+ }
717
+ }
444
718
 
445
719
  /* 5 - chatBot */
446
720
  @ReactMethod
@@ -775,6 +1049,25 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
775
1049
  }
776
1050
  }
777
1051
 
1052
+ @ReactMethod
1053
+ public void knownUserIdentified(final Callback callback) {
1054
+ onKnownUserIdentifiedCallback = callback;
1055
+
1056
+ try {
1057
+ Log.i(TAG, "KNOWN USER IDENTIFIED !!");
1058
+ NotifyVisitorsApi.getInstance(reactContext).knownUserIdentified(new OnKnownUserFound() {
1059
+ @Override
1060
+ public void getNvUid(JSONObject data) {
1061
+ if (data != null) {
1062
+ sendEvent(KNOWN_USER_IDENTIFIED_CALLBACK, data.toString());
1063
+ }
1064
+ }
1065
+ });
1066
+ } catch (Exception e) {
1067
+ Log.i(TAG, "KNOWN USER IDENTIFIED ERROR : " + e);
1068
+ }
1069
+ }
1070
+
778
1071
  /* 15 - Unique NotifyVisitors Identification */
779
1072
  @ReactMethod
780
1073
  public void getNvUID(final Callback callback) {
@@ -1074,6 +1367,60 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
1074
1367
 
1075
1368
  }
1076
1369
 
1370
+ @ReactMethod
1371
+ private void isPayloadFromNvPlatform(String pushPayload, Callback callback) {
1372
+ Log.i(TAG, "Is Payload From Nv Platform !!");
1373
+ boolean b = false;
1374
+
1375
+ try {
1376
+ JSONObject jsonObject = new JSONObject(pushPayload);
1377
+ Intent intent = new Intent();
1378
+ Iterator<String> keys = jsonObject.keys();
1379
+ while (keys.hasNext()) {
1380
+ String key = keys.next();
1381
+ // Process key-value pairs
1382
+ Object value = jsonObject.get(key);
1383
+ if (value instanceof Integer) {
1384
+ intent.putExtra(key, (Integer) value);
1385
+ } else if (value instanceof String) {
1386
+ intent.putExtra(key, (String) value);
1387
+ } else if (value instanceof Boolean) {
1388
+ intent.putExtra(key, (Boolean) value);
1389
+ }
1390
+ }
1391
+ b = NotifyVisitorsApi.getInstance(reactContext).isPayloadFromNvPlatform(intent);
1392
+ } catch (Exception e) {
1393
+ Log.e(TAG, "error = " + e);
1394
+ }
1395
+
1396
+ if (b) callback.invoke("true"); else callback.invoke("false");
1397
+ }
1398
+
1399
+ @ReactMethod
1400
+ private void getNV_FCMPayload(String pushPayload) {
1401
+ Log.i(TAG, "Get NV FCM Payload !!");
1402
+
1403
+ try {
1404
+ JSONObject jsonObject = new JSONObject(pushPayload);
1405
+ Intent intent = new Intent();
1406
+ Iterator<String> keys = jsonObject.keys();
1407
+ while (keys.hasNext()) {
1408
+ String key = keys.next();
1409
+ // Process key-value pairs
1410
+ Object value = jsonObject.get(key);
1411
+ if (value instanceof Integer) {
1412
+ intent.putExtra(key, (Integer) value);
1413
+ } else if (value instanceof String) {
1414
+ intent.putExtra(key, (String) value);
1415
+ } else if (value instanceof Boolean) {
1416
+ intent.putExtra(key, (Boolean) value);
1417
+ }
1418
+ }
1419
+ NotifyVisitorsApi.getInstance(reactContext).getNV_FCMPayload(intent);
1420
+ } catch (Exception e) {
1421
+ Log.e(TAG, "error = " + e);
1422
+ }
1423
+ }
1077
1424
 
1078
1425
  /* On Activity Result */
1079
1426
  @Override
@@ -1108,12 +1455,13 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
1108
1455
 
1109
1456
  // if app was not launched by the url - ignore
1110
1457
  if (!Intent.ACTION_VIEW.equals(action) || url == null) {
1111
- if (intent.hasExtra("source") && intent.getStringExtra("source").equalsIgnoreCase("nv")) {
1458
+ if ((intent.hasExtra("source") && intent.getStringExtra("source").equalsIgnoreCase("nv")) || (intent.hasExtra("notifyvisitors_cta"))) {
1112
1459
  try {
1113
1460
  Bundle bundle = intent.getExtras();
1114
1461
  if (bundle != null) {
1115
1462
  dataInfo = new JSONObject();
1116
1463
  String nv_type = "push";
1464
+ String nv_new_payload = (intent.hasExtra("notifyvisitors_cta") ? intent.getStringExtra("notifyvisitors_cta") : "");
1117
1465
  for (String key : bundle.keySet()) {
1118
1466
  try {
1119
1467
  dataInfo.put(key, JSONObject.wrap(bundle.get(key)));
@@ -1124,30 +1472,42 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
1124
1472
  //e.printStackTrace();
1125
1473
  }
1126
1474
  }
1475
+ } catch (Exception e) {
1476
+ //e.printStackTrace();
1477
+ }
1478
+ }
1127
1479
 
1480
+ if (dataInfo.has("notifyvisitors_cta")) {
1481
+ try {
1482
+ dataInfo.remove("notifyvisitors_cta");
1128
1483
  } catch (Exception e) {
1129
1484
  //e.printStackTrace();
1130
1485
  }
1131
1486
  }
1487
+
1132
1488
  dataInfo.put("type", nv_type);
1133
1489
  finalDataInfo.put("parameters", dataInfo);
1490
+ if (nv_new_payload != null && !nv_new_payload.isEmpty()) {
1491
+ finalDataInfo.put("notifyvisitors_cta", new JSONObject(nv_new_payload));
1492
+ }
1134
1493
  finalData = finalDataInfo.toString();
1494
+ //Log.d(TAG, "finalDataInfo => " + finalDataInfo);
1135
1495
  sendEvent(PUSH_BANNER_CLICK_EVENT, finalData);
1136
1496
 
1137
1497
  // try to send callback in show function
1138
- try {
1139
- if (nv_type.equalsIgnoreCase("banner")) {
1140
- JSONObject bannerData = new JSONObject();
1141
- bannerData.put("status", "success");
1142
- bannerData.put("eventName", "Banner Clicked");
1143
- bannerData.put("callbackType", "banner");
1144
- bannerData.put("parameters", dataInfo);
1145
- sendResponse(bannerData);
1146
- nvInAppFound = true;
1147
- }
1148
- } catch (Exception e) {
1149
- Log.i(TAG, "SEND DATA IN SHOW METHOD ERROR : " + e);
1150
- }
1498
+ // try {
1499
+ // if (nv_type.equalsIgnoreCase("banner")) {
1500
+ // JSONObject bannerData = new JSONObject();
1501
+ // bannerData.put("status", "success");
1502
+ // bannerData.put("eventName", "Banner Clicked");
1503
+ // bannerData.put("callbackType", "banner");
1504
+ // bannerData.put("parameters", dataInfo);
1505
+ // sendResponse(bannerData);
1506
+ // nvInAppFound = true;
1507
+ // }
1508
+ // } catch (Exception e) {
1509
+ // Log.i(TAG, "SEND DATA IN SHOW METHOD ERROR : " + e);
1510
+ // }
1151
1511
 
1152
1512
  }
1153
1513
  } catch (Exception e) {
@@ -1202,7 +1562,7 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
1202
1562
  private void sendResponse(JSONObject response) {
1203
1563
  try {
1204
1564
  if (response != null) {
1205
- String eventName = response.getString("eventName");
1565
+ String eventName = (response.has("eventName")) ? response.getString("eventName") : "";
1206
1566
 
1207
1567
  // check clicked is banner or survey
1208
1568
  if (eventName.equalsIgnoreCase("Survey Submit") || eventName.equalsIgnoreCase("Survey Attempt") || eventName.equalsIgnoreCase("Banner Impression") || eventName.equalsIgnoreCase("Banner Clicked")) {
@@ -1224,6 +1584,10 @@ public class RNNotifyvisitorsModule extends ReactContextBaseJavaModule implement
1224
1584
  if (commonCallback != null) {
1225
1585
  sendEvent(COMMON_SHOW_EVENT_CALLBACK, response.toString());
1226
1586
  }
1587
+
1588
+ if (centerCallback != null) {
1589
+ sendEvent(CENTER_CALLBACK, response.toString());
1590
+ }
1227
1591
  } else {
1228
1592
  Log.i(TAG, "RESPONSE IS NULL !!");
1229
1593
  }
package/index.d.ts CHANGED
@@ -1,11 +1,35 @@
1
1
  export default class Notifyvisitors {
2
+ /* 1 - inApp-Banner & inApp-Surveys */
2
3
  static show(
3
4
  tokens: any,
4
5
  customObjects: any,
5
6
  fragmentName: any,
6
7
  nvCallback: any
7
8
  ): void;
9
+
10
+ static showInAppMessage(
11
+ tokens: any,
12
+ customObjects: any,
13
+ fragmentName: any,
14
+ nvCallback: any
15
+ ): void;
16
+
17
+ static stopNotifications(): void;
18
+ static getEventSurveyInfo(nvCallback: any): void;
19
+
20
+ /* 2 - Notification Center */
21
+ static openNotificationCenter(
22
+ mAppInboxInfo: any,
23
+ dismissValue: any,
24
+ callback: any
25
+ ): void;
8
26
  static showNotifications(mAppInboxInfo: any, dismissValue: any): void;
27
+ static getNotificationCenterData(callback: any): void;
28
+ static getNotificationCenterCount(tabCountInfo: any, callback: any): void;
29
+ static getNotificationDataListener(callback: any): void;
30
+ static getNotificationCount(callback: any): void;
31
+
32
+ /* 3 - Track Events */
9
33
  static event(
10
34
  eventName: any,
11
35
  attributes: any,
@@ -13,8 +37,42 @@ export default class Notifyvisitors {
13
37
  scope: any,
14
38
  nvCallback: any
15
39
  ): void;
40
+
41
+ /* 4 - Push Notifications */
42
+ static scheduleNotification(
43
+ nid: any,
44
+ tag: any,
45
+ time: any,
46
+ title: any,
47
+ message: any,
48
+ url: any,
49
+ icon: any
50
+ ): void;
51
+ static subscribePushCategory(categoryInfo: any, unSubscribe2All: any): void;
52
+ static stopGeofencePushforDateTime(dateTime: any, additionalHours: any): void;
53
+ static getRegistrationToken(nvCallback: any): void;
54
+
55
+ /* 5 - Track User */
16
56
  static userIdentifier(userID: any, sJsonObject: any): void;
57
+ static setUserIdentifier(sJsonObject: any, callback: any): void;
58
+ static getNvUID(callback: any): void;
59
+ static knownUserIdentified(callback: any): void;
60
+
61
+ /* 6 - Chatbot (Deprecated and temporarly not available in Native SDKs) */
17
62
  static startChatBot(screenName: any, nvCallback: any): void;
63
+
64
+ /* 7 - GetLinkInfo() and other callback handlers */
65
+ static getLinkInfo(nvCallback: any): void;
66
+
67
+ /* 8 - Other Methods */
68
+ static requestInAppReview(nvCallback: any): void;
69
+
70
+ /* 9 - Android Specific methods */
71
+ static nativePushPermissionPrompt(callback: any): void;
72
+ static pushPermissionPrompt(
73
+ pushPromptInfo: PushPromptInfo,
74
+ callback: any
75
+ ): void;
18
76
  static createNotificationChannel(
19
77
  chId: any,
20
78
  chName: any,
@@ -25,42 +83,22 @@ export default class Notifyvisitors {
25
83
  lightColor: any,
26
84
  soundFileName: any
27
85
  ): void;
86
+
28
87
  static deleteNotificationChannel(channelId: any): void;
29
88
  static createNotificationChannelGroup(groupId: any, groupName: any): void;
30
89
  static deleteNotificationChannelGroup(groupId: any): void;
31
- static getNotificationCenterCount(tabCountInfo: any, callback: any): void;
32
- static getRegistrationToken(nvCallback: any): void;
33
- static requestInAppReview(nvCallback: any): void;
34
- static subscribePushCategory(categoryInfo: any, unSubscribe2All: any): void;
35
- static getLinkInfo(nvCallback: any): void;
36
- static getNvUID(callback: any): void;
37
- static getNotificationDataListener(callback: any): void;
38
- static getNotificationCenterData(callback: any): void;
39
90
  static setAutoStartPermission_android_only(): void;
40
- static stopNotifications(): void;
41
91
  static clearPushData(): void;
42
92
  static checkPushActive(nv_signal: any): void;
43
- static stopGeofencePushforDateTime(dateTime: any, additionalHours: any): void;
44
- static scheduleNotification(
45
- nid: any,
46
- tag: any,
47
- time: any,
48
- title: any,
49
- message: any,
50
- url: any,
51
- icon: any
52
- ): void;
53
- static getEventSurveyInfo(nvCallback: any): void;
54
- static getNotificationCount(callback: any): void;
93
+ static isPayloadFromNvPlatform(pushPayload: any, callback: any): void;
94
+ static getNV_FCMPayload(pushPayload: any): void;
95
+
96
+ /* 10 - iOS Specific methods */
55
97
  static scrollViewDidScroll_iOS_only(): void;
56
- static promptForPushNotificationsWithUserResponse(callback: any): void;
57
- static pushPermissionPrompt(
58
- pushPromptInfo: PushPromptInfo,
59
- callback: any
60
- ): void;
61
- static nativePushPermissionPrompt(callback: any): void;
98
+ // static promptForPushNotificationsWithUserResponse(callback: any): void;
62
99
  }
63
100
 
101
+ /* 11 - Android Specific Push Prompt Customisation */
64
102
  export class PushPromptInfo {
65
103
  title: String;
66
104
  titleTextColor: String;