react-native-moengage 8.4.0 → 8.5.1
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/CHANGELOG.md +17 -0
- package/ReactNativeMoEngage.podspec +3 -3
- package/android/build.gradle +5 -5
- package/android/src/main/java/com/moengage/react/EventEmitterImpl.kt +8 -19
- package/android/src/main/java/com/moengage/react/GlobalCache.kt +1 -19
- package/android/src/main/java/com/moengage/react/MoEInitializer.kt +4 -4
- package/android/src/main/java/com/moengage/react/MoEReactBridge.kt +12 -6
- package/iOS/MoEReactBridge/MoEngageInitializer.m +5 -6
- package/iOS/MoEReactBridge/MoEngageReactConstants.h +1 -0
- package/iOS/MoEReactBridge/MoEngageReactConstants.m +1 -0
- package/package.json +13 -2
- package/src/index.ts +102 -95
- package/src/logger/MoEngageLogger.ts +77 -0
- package/src/models/MoEInitConfig.ts +36 -0
- package/src/models/MoEProperties.ts +8 -7
- package/src/models/MoEPushCampaign.ts +3 -1
- package/src/models/MoEPushConfig.ts +25 -0
- package/src/models/MoEngageLogConfig.ts +69 -0
- package/src/moeParser/MoEInAppParser.ts +28 -7
- package/src/moeParser/MoEPushNotificationParser.ts +8 -4
- package/src/moeParser/MoEngagePayloadParser.ts +0 -1
- package/src/platform/MoERNAndroid.ts +5 -17
- package/src/platform/MoERNiOS.ts +2 -2
- package/src/utils/MoEConstants.ts +16 -0
- package/src/utils/MoEJsonBuilder.ts +17 -1
- package/src/utils/MoEngageGlobalCache.ts +22 -0
package/src/index.ts
CHANGED
|
@@ -26,7 +26,8 @@ import {
|
|
|
26
26
|
getUserAttributeJson,
|
|
27
27
|
getUserLocAttributeJson,
|
|
28
28
|
getPushPermissionRequestCountJson,
|
|
29
|
-
getDeviceIdTrackingJson
|
|
29
|
+
getDeviceIdTrackingJson,
|
|
30
|
+
getInitConfigJson
|
|
30
31
|
} from "./utils/MoEJsonBuilder";
|
|
31
32
|
import {
|
|
32
33
|
USER_ATTRIBUTE_UNIQUE_ID,
|
|
@@ -41,6 +42,11 @@ import {
|
|
|
41
42
|
} from "./utils/MoEConstants";
|
|
42
43
|
import MoESelfHandledCampaignData from "./models/MoESelfHandledCampaignData";
|
|
43
44
|
import {MoEngagePermissionType} from "./models/MoEngagePermissionType";
|
|
45
|
+
import MoEInitConfig from "./models/MoEInitConfig";
|
|
46
|
+
import MoEPushConfig from "./models/MoEPushConfig";
|
|
47
|
+
import MoEngageLogConfig, { MoEngageLogLevel } from "./models/MoEngageLogConfig";
|
|
48
|
+
import MoEngageGlobalCache from "./utils/MoEngageGlobalCache";
|
|
49
|
+
import MoEngageLogger from "./logger/MoEngageLogger";
|
|
44
50
|
|
|
45
51
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
46
52
|
const PLATFORM_ANDROID = "android";
|
|
@@ -99,7 +105,11 @@ var moeAppId = "";
|
|
|
99
105
|
if (MoEReactBridge) {
|
|
100
106
|
MoeEventEmitter = new NativeEventEmitter(MoEReactBridge);
|
|
101
107
|
for (var i = 0; i < eventBroadcastNames.length; i++) {
|
|
102
|
-
|
|
108
|
+
let eventName = _eventNames[i];
|
|
109
|
+
let eventBroadcastName = eventBroadcastNames[i];
|
|
110
|
+
if (eventName !== undefined && eventBroadcastName !== undefined) {
|
|
111
|
+
handleEventBroadcast(eventName, eventBroadcastName);
|
|
112
|
+
}
|
|
103
113
|
}
|
|
104
114
|
}
|
|
105
115
|
|
|
@@ -117,10 +127,6 @@ function commonValidationCheck() {
|
|
|
117
127
|
}
|
|
118
128
|
}
|
|
119
129
|
|
|
120
|
-
function showError(message: String) {
|
|
121
|
-
console.error(message);
|
|
122
|
-
}
|
|
123
|
-
|
|
124
130
|
var ReactMoE = {
|
|
125
131
|
setEventListener: function (type: any, handler: any) {
|
|
126
132
|
if (!MoEReactBridge) return;
|
|
@@ -132,11 +138,18 @@ var ReactMoE = {
|
|
|
132
138
|
_eventTypeHandler.delete(type);
|
|
133
139
|
},
|
|
134
140
|
|
|
135
|
-
|
|
136
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Initialise the MoEngage SDK, once the hybrid component is mounted
|
|
143
|
+
*
|
|
144
|
+
* @param appId AppId for the application, can be found on MoEngage Dashboard
|
|
145
|
+
* @param initConfig instance of {@link MoEInitConfig}, works only in Android & has no effect for other plaforms.
|
|
146
|
+
*/
|
|
147
|
+
initialize: function (appId: string, initConfig: MoEInitConfig = MoEInitConfig.defaultConfig()) {
|
|
148
|
+
moeAppId = appId;
|
|
149
|
+
MoEngageGlobalCache.updateInitConfig(initConfig);
|
|
137
150
|
commonValidationCheck();
|
|
138
151
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
139
|
-
MoERNAndroid.initialize(
|
|
152
|
+
MoERNAndroid.initialize(getInitConfigJson(appId, initConfig));
|
|
140
153
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
141
154
|
MoERNiOS.initialize(getAppIdJson(appId));
|
|
142
155
|
}
|
|
@@ -151,8 +164,8 @@ var ReactMoE = {
|
|
|
151
164
|
*/
|
|
152
165
|
setAppStatus: function (status: MoEAppStatus) {
|
|
153
166
|
commonValidationCheck();
|
|
154
|
-
|
|
155
|
-
let payload = getAppStatusJson(MoEHelper.appStatusToString(status),moeAppId);
|
|
167
|
+
MoEngageLogger.verbose("Will track whether it is a fresh install or update.");
|
|
168
|
+
let payload = getAppStatusJson(MoEHelper.appStatusToString(status), moeAppId);
|
|
156
169
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
157
170
|
MoERNAndroid.setAppStatus(payload);
|
|
158
171
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -173,12 +186,12 @@ var ReactMoE = {
|
|
|
173
186
|
}
|
|
174
187
|
|
|
175
188
|
if (!(properties instanceof MoEProperties)) {
|
|
176
|
-
|
|
189
|
+
MoEngageLogger.warn("trackEvent: properties must of MoEProperties type");
|
|
177
190
|
return;
|
|
178
191
|
}
|
|
179
192
|
|
|
180
|
-
|
|
181
|
-
|
|
193
|
+
MoEngageLogger.verbose("trackEvent with properties", properties);
|
|
194
|
+
let payload = getMoEPropertiesJson(properties, eventName, moeAppId);
|
|
182
195
|
|
|
183
196
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
184
197
|
MoERNAndroid.trackEvent(payload);
|
|
@@ -193,8 +206,8 @@ var ReactMoE = {
|
|
|
193
206
|
*/
|
|
194
207
|
setUserUniqueID: function (uniqueId: string) {
|
|
195
208
|
commonValidationCheck();
|
|
196
|
-
|
|
197
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID,uniqueId,GENERAL,moeAppId)
|
|
209
|
+
MoEngageLogger.verbose("Will set unique ID: ", uniqueId);
|
|
210
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID, uniqueId, GENERAL, moeAppId);
|
|
198
211
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
199
212
|
MoERNAndroid.setUserAttribute(payload);
|
|
200
213
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -208,8 +221,8 @@ var ReactMoE = {
|
|
|
208
221
|
*/
|
|
209
222
|
setAlias: function (alias: string) {
|
|
210
223
|
commonValidationCheck();
|
|
211
|
-
|
|
212
|
-
let payload = getAliasJson(alias,moeAppId);
|
|
224
|
+
MoEngageLogger.verbose("Will set alias: ", alias);
|
|
225
|
+
let payload = getAliasJson(alias, moeAppId);
|
|
213
226
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
214
227
|
MoERNAndroid.setAlias(payload);
|
|
215
228
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -223,8 +236,8 @@ var ReactMoE = {
|
|
|
223
236
|
*/
|
|
224
237
|
setUserName: function (userName: string) {
|
|
225
238
|
commonValidationCheck();
|
|
226
|
-
|
|
227
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME,userName,GENERAL,moeAppId)
|
|
239
|
+
MoEngageLogger.verbose("Will set username: ", userName);
|
|
240
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME, userName, GENERAL, moeAppId);
|
|
228
241
|
|
|
229
242
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
230
243
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -239,8 +252,8 @@ var ReactMoE = {
|
|
|
239
252
|
*/
|
|
240
253
|
setUserFirstName: function (firstName: string) {
|
|
241
254
|
commonValidationCheck();
|
|
242
|
-
|
|
243
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME,firstName,GENERAL,moeAppId)
|
|
255
|
+
MoEngageLogger.verbose("Will set first name: ", firstName);
|
|
256
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME, firstName, GENERAL, moeAppId);
|
|
244
257
|
|
|
245
258
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
246
259
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -255,8 +268,8 @@ var ReactMoE = {
|
|
|
255
268
|
*/
|
|
256
269
|
setUserLastName: function (lastName: string) {
|
|
257
270
|
commonValidationCheck();
|
|
258
|
-
|
|
259
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME,lastName,GENERAL,moeAppId)
|
|
271
|
+
MoEngageLogger.verbose("Will set last name: ", lastName);
|
|
272
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME, lastName, GENERAL, moeAppId);
|
|
260
273
|
|
|
261
274
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
262
275
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -271,8 +284,8 @@ var ReactMoE = {
|
|
|
271
284
|
*/
|
|
272
285
|
setUserEmailID: function (emailId: string) {
|
|
273
286
|
commonValidationCheck();
|
|
274
|
-
|
|
275
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL,emailId,GENERAL,moeAppId)
|
|
287
|
+
MoEngageLogger.verbose("Will set email-id ", emailId);
|
|
288
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL, emailId, GENERAL, moeAppId);
|
|
276
289
|
|
|
277
290
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
278
291
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -287,8 +300,8 @@ var ReactMoE = {
|
|
|
287
300
|
*/
|
|
288
301
|
setUserContactNumber: function (mobileNumber: string) {
|
|
289
302
|
commonValidationCheck();
|
|
290
|
-
|
|
291
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE,mobileNumber,GENERAL,moeAppId)
|
|
303
|
+
MoEngageLogger.verbose("Will set Mobile Number: ", mobileNumber);
|
|
304
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE, mobileNumber, GENERAL, moeAppId)
|
|
292
305
|
|
|
293
306
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
294
307
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -303,8 +316,8 @@ var ReactMoE = {
|
|
|
303
316
|
*/
|
|
304
317
|
setUserBirthday: function (birthday: string) {
|
|
305
318
|
commonValidationCheck();
|
|
306
|
-
|
|
307
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY,birthday,TIMESTAMP,moeAppId)
|
|
319
|
+
MoEngageLogger.verbose("Will set birthday: ", birthday);
|
|
320
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY, birthday, TIMESTAMP, moeAppId);
|
|
308
321
|
|
|
309
322
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
310
323
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -319,9 +332,8 @@ var ReactMoE = {
|
|
|
319
332
|
*/
|
|
320
333
|
setUserGender: function (gender: Object) {
|
|
321
334
|
commonValidationCheck();
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER,gender,GENERAL,moeAppId)
|
|
335
|
+
MoEngageLogger.verbose("Will set gender: ", gender);
|
|
336
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER, gender, GENERAL, moeAppId);
|
|
325
337
|
|
|
326
338
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
327
339
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -337,10 +349,10 @@ var ReactMoE = {
|
|
|
337
349
|
setUserLocation: function (location: MoEGeoLocation) {
|
|
338
350
|
commonValidationCheck();
|
|
339
351
|
if (!(location instanceof MoEGeoLocation)) {
|
|
340
|
-
|
|
352
|
+
MoEngageLogger.warn("setUserLocation: location must of type MoEGeoLocation");
|
|
341
353
|
return;
|
|
342
354
|
}
|
|
343
|
-
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION,location.latitude,location.longitude,moeAppId)
|
|
355
|
+
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION, location.latitude, location.longitude, moeAppId);
|
|
344
356
|
|
|
345
357
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
346
358
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -356,13 +368,13 @@ var ReactMoE = {
|
|
|
356
368
|
*/
|
|
357
369
|
setUserAttribute: function (userAttributeName: string, userAttributeValue: Object) {
|
|
358
370
|
commonValidationCheck();
|
|
359
|
-
|
|
371
|
+
MoEngageLogger.verbose(
|
|
360
372
|
"Will track user attribute [attributeName]: " +
|
|
361
373
|
userAttributeName +
|
|
362
374
|
" attributeValue: " +
|
|
363
375
|
userAttributeValue
|
|
364
376
|
);
|
|
365
|
-
const payload = getUserAttributeJson(userAttributeName,userAttributeValue,GENERAL,moeAppId)
|
|
377
|
+
const payload = getUserAttributeJson(userAttributeName, userAttributeValue, GENERAL, moeAppId);
|
|
366
378
|
|
|
367
379
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
368
380
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -381,7 +393,7 @@ var ReactMoE = {
|
|
|
381
393
|
date: String
|
|
382
394
|
) {
|
|
383
395
|
commonValidationCheck();
|
|
384
|
-
const payload = getUserAttributeJson(attributeName,date,TIMESTAMP,moeAppId)
|
|
396
|
+
const payload = getUserAttributeJson(attributeName, date, TIMESTAMP, moeAppId);
|
|
385
397
|
|
|
386
398
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
387
399
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -401,12 +413,10 @@ var ReactMoE = {
|
|
|
401
413
|
) {
|
|
402
414
|
commonValidationCheck();
|
|
403
415
|
if (!(location instanceof MoEGeoLocation)) {
|
|
404
|
-
|
|
405
|
-
"setUserAttributeWithLocation: location must of type MoEGeoLocation"
|
|
406
|
-
);
|
|
416
|
+
MoEngageLogger.warn("setUserAttributeWithLocation: location must of type MoEGeoLocation");
|
|
407
417
|
return;
|
|
408
418
|
}
|
|
409
|
-
const payload = getUserLocAttributeJson(userAttributeName,location.latitude,location.longitude,moeAppId)
|
|
419
|
+
const payload = getUserLocAttributeJson(userAttributeName, location.latitude, location.longitude, moeAppId);
|
|
410
420
|
|
|
411
421
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
412
422
|
MoERNAndroid.setUserAttribute(payload);
|
|
@@ -420,7 +430,7 @@ var ReactMoE = {
|
|
|
420
430
|
*/
|
|
421
431
|
logout: function () {
|
|
422
432
|
commonValidationCheck();
|
|
423
|
-
|
|
433
|
+
MoEngageLogger.verbose("Will logout user");
|
|
424
434
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
425
435
|
MoERNAndroid.logout(getAppIdJson(moeAppId));
|
|
426
436
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -433,7 +443,7 @@ var ReactMoE = {
|
|
|
433
443
|
*/
|
|
434
444
|
showInApp: function () {
|
|
435
445
|
commonValidationCheck();
|
|
436
|
-
|
|
446
|
+
MoEngageLogger.verbose("Will try to show in-app.");
|
|
437
447
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
438
448
|
MoERNAndroid.showInApp(getAppIdJson(moeAppId));
|
|
439
449
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -460,12 +470,10 @@ var ReactMoE = {
|
|
|
460
470
|
selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
461
471
|
commonValidationCheck();
|
|
462
472
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
463
|
-
|
|
464
|
-
"selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
465
|
-
);
|
|
473
|
+
MoEngageLogger.warn("selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
466
474
|
return;
|
|
467
475
|
}
|
|
468
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"impression",moeAppId);
|
|
476
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "impression", moeAppId);
|
|
469
477
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
470
478
|
MoERNAndroid.selfHandledShown(campaignJson);
|
|
471
479
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -480,12 +488,10 @@ var ReactMoE = {
|
|
|
480
488
|
selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
|
|
481
489
|
commonValidationCheck();
|
|
482
490
|
if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
|
|
483
|
-
|
|
484
|
-
"selfHandledClicked: inAppCampaign must of MoEClickData type"
|
|
485
|
-
);
|
|
491
|
+
MoEngageLogger.warn("selfHandledClicked: inAppCampaign must of MoEClickData type");
|
|
486
492
|
return;
|
|
487
493
|
}
|
|
488
|
-
let campaignJson = getSelfHandledJson(moEClickData,"click",moeAppId);
|
|
494
|
+
let campaignJson = getSelfHandledJson(moEClickData, "click", moeAppId);
|
|
489
495
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
490
496
|
MoERNAndroid.selfHandledClicked(campaignJson);
|
|
491
497
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -500,12 +506,10 @@ var ReactMoE = {
|
|
|
500
506
|
selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
501
507
|
commonValidationCheck();
|
|
502
508
|
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
503
|
-
|
|
504
|
-
"selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
505
|
-
);
|
|
509
|
+
MoEngageLogger.warn("selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type");
|
|
506
510
|
return;
|
|
507
511
|
}
|
|
508
|
-
let campaignJson = getSelfHandledJson(inAppCampaign,"dismissed",moeAppId);
|
|
512
|
+
let campaignJson = getSelfHandledJson(inAppCampaign, "dismissed", moeAppId);
|
|
509
513
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
510
514
|
MoERNAndroid.selfHandledDismissed(campaignJson);
|
|
511
515
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -520,12 +524,10 @@ var ReactMoE = {
|
|
|
520
524
|
setCurrentContext: function (contexts: Array<String>) {
|
|
521
525
|
commonValidationCheck();
|
|
522
526
|
if (!MoEHelper.validateArrayOfString(contexts)) {
|
|
523
|
-
|
|
524
|
-
"setCurrentContext: contexts must be a non empty array of strings"
|
|
525
|
-
);
|
|
527
|
+
MoEngageLogger.warn("setCurrentContext: contexts must be a non empty array of strings");
|
|
526
528
|
return;
|
|
527
529
|
}
|
|
528
|
-
let payload = getInAppContextJson(contexts,moeAppId);
|
|
530
|
+
let payload = getInAppContextJson(contexts, moeAppId);
|
|
529
531
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
530
532
|
MoERNAndroid.setAppContext(payload);
|
|
531
533
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -553,13 +555,13 @@ var ReactMoE = {
|
|
|
553
555
|
*/
|
|
554
556
|
passFcmPushToken: function (pushToken: string) {
|
|
555
557
|
commonValidationCheck();
|
|
556
|
-
|
|
557
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_FCM,PLATFORM_ANDROID,moeAppId);
|
|
558
|
+
MoEngageLogger.verbose("Will process push token");
|
|
559
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_FCM, PLATFORM_ANDROID, moeAppId);
|
|
558
560
|
|
|
559
561
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
560
562
|
MoERNAndroid.passFcmPushToken(payload);
|
|
561
563
|
} else {
|
|
562
|
-
|
|
564
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
563
565
|
}
|
|
564
566
|
},
|
|
565
567
|
/**
|
|
@@ -570,13 +572,13 @@ var ReactMoE = {
|
|
|
570
572
|
*/
|
|
571
573
|
passFcmPushPayload: function (pushPayload: object) {
|
|
572
574
|
commonValidationCheck();
|
|
573
|
-
|
|
574
|
-
let payload = getMoEPushCampaignJson(pushPayload,PUSH_SERVICE_FCM,moeAppId)
|
|
575
|
+
MoEngageLogger.verbose("Will process push payload.");
|
|
576
|
+
let payload = getMoEPushCampaignJson(pushPayload, PUSH_SERVICE_FCM, moeAppId);
|
|
575
577
|
|
|
576
578
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
577
579
|
MoERNAndroid.passFcmPushPayload(payload);
|
|
578
580
|
} else {
|
|
579
|
-
|
|
581
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
580
582
|
}
|
|
581
583
|
},
|
|
582
584
|
|
|
@@ -585,9 +587,9 @@ var ReactMoE = {
|
|
|
585
587
|
*/
|
|
586
588
|
registerForPush: function () {
|
|
587
589
|
commonValidationCheck();
|
|
588
|
-
|
|
590
|
+
MoEngageLogger.verbose("Will registerForPush");
|
|
589
591
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
590
|
-
|
|
592
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
591
593
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
592
594
|
MoERNiOS.registerForPush();
|
|
593
595
|
}
|
|
@@ -598,9 +600,9 @@ var ReactMoE = {
|
|
|
598
600
|
*/
|
|
599
601
|
disableInbox: function () {
|
|
600
602
|
commonValidationCheck();
|
|
601
|
-
|
|
603
|
+
MoEngageLogger.verbose("Will disableInbox");
|
|
602
604
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
603
|
-
|
|
605
|
+
MoEngageLogger.debug("This api is not supported on android platform.");
|
|
604
606
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
605
607
|
MoERNiOS.disableInbox(getAppIdJson(moeAppId));
|
|
606
608
|
}
|
|
@@ -618,8 +620,8 @@ var ReactMoE = {
|
|
|
618
620
|
},
|
|
619
621
|
|
|
620
622
|
optOutDataTracking: function (shouldOptOutDataTracking: boolean) {
|
|
621
|
-
|
|
622
|
-
let payload = getOptOutTrackingJson("data",shouldOptOutDataTracking,moeAppId);
|
|
623
|
+
MoEngageLogger.verbose("Will opt out data tracking");
|
|
624
|
+
let payload = getOptOutTrackingJson("data", shouldOptOutDataTracking, moeAppId);
|
|
623
625
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
624
626
|
MoERNAndroid.optOutDataTracking(payload);
|
|
625
627
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -635,19 +637,19 @@ var ReactMoE = {
|
|
|
635
637
|
*/
|
|
636
638
|
passPushKitPushToken: function (pushToken: string) {
|
|
637
639
|
commonValidationCheck();
|
|
638
|
-
|
|
639
|
-
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_PUSH_KIT,PLATFORM_ANDROID,moeAppId);
|
|
640
|
+
MoEngageLogger.verbose("Will process push-kit push token");
|
|
641
|
+
let payload = getMoEPushTokenJson(pushToken, PUSH_SERVICE_PUSH_KIT, PLATFORM_ANDROID, moeAppId);
|
|
640
642
|
|
|
641
643
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
642
644
|
MoERNAndroid.passPushKitPushToken(payload);
|
|
643
645
|
} else {
|
|
644
|
-
|
|
646
|
+
MoEngageLogger.debug("This api is not supported on iOS platform.");
|
|
645
647
|
}
|
|
646
648
|
},
|
|
647
649
|
|
|
648
650
|
enableSdk: function () {
|
|
649
|
-
|
|
650
|
-
let payload = getSdkStateJson(true,moeAppId)
|
|
651
|
+
MoEngageLogger.verbose("Will enable SDK");
|
|
652
|
+
let payload = getSdkStateJson(true, moeAppId);
|
|
651
653
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
652
654
|
MoERNAndroid.updateSdkState(payload);
|
|
653
655
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -656,8 +658,8 @@ var ReactMoE = {
|
|
|
656
658
|
},
|
|
657
659
|
|
|
658
660
|
disableSdk: function () {
|
|
659
|
-
|
|
660
|
-
let payload = getSdkStateJson(false,moeAppId)
|
|
661
|
+
MoEngageLogger.verbose("Will disable SDK");
|
|
662
|
+
let payload = getSdkStateJson(false, moeAppId);
|
|
661
663
|
|
|
662
664
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
663
665
|
MoERNAndroid.updateSdkState(payload);
|
|
@@ -667,7 +669,7 @@ var ReactMoE = {
|
|
|
667
669
|
},
|
|
668
670
|
|
|
669
671
|
onOrientationChanged: function () {
|
|
670
|
-
|
|
672
|
+
MoEngageLogger.verbose("Will process screen rotation.");
|
|
671
673
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
672
674
|
MoERNAndroid.onOrientationChanged();
|
|
673
675
|
}
|
|
@@ -677,8 +679,8 @@ var ReactMoE = {
|
|
|
677
679
|
* API to enable Advertising Id tracking for Android.
|
|
678
680
|
*/
|
|
679
681
|
enableAdIdTracking: function () {
|
|
680
|
-
|
|
681
|
-
let payload = getAdIdTrackingJson(true,moeAppId);
|
|
682
|
+
MoEngageLogger.verbose("Will enable advertising-id tracking");
|
|
683
|
+
let payload = getAdIdTrackingJson(true, moeAppId);
|
|
682
684
|
|
|
683
685
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
684
686
|
MoERNAndroid.enableAdIdTracking(payload);
|
|
@@ -692,8 +694,8 @@ var ReactMoE = {
|
|
|
692
694
|
* Advertising Id tracking at some point.
|
|
693
695
|
*/
|
|
694
696
|
disableAdIdTracking: function () {
|
|
695
|
-
|
|
696
|
-
let payload = getAdIdTrackingJson(false,moeAppId);
|
|
697
|
+
MoEngageLogger.verbose("Will disable advertising-id tracking");
|
|
698
|
+
let payload = getAdIdTrackingJson(false, moeAppId);
|
|
697
699
|
|
|
698
700
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
699
701
|
MoERNAndroid.disableAdIdTracking(payload);
|
|
@@ -704,8 +706,8 @@ var ReactMoE = {
|
|
|
704
706
|
* API to enable Android Id tracking for Android.
|
|
705
707
|
*/
|
|
706
708
|
enableAndroidIdTracking: function () {
|
|
707
|
-
|
|
708
|
-
let payload = getAndroidIdTrackingJson(true,moeAppId);
|
|
709
|
+
MoEngageLogger.verbose("Will enable android-id tracking");
|
|
710
|
+
let payload = getAndroidIdTrackingJson(true, moeAppId);
|
|
709
711
|
|
|
710
712
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
711
713
|
MoERNAndroid.enableAndroidIdTracking(payload);
|
|
@@ -719,8 +721,8 @@ var ReactMoE = {
|
|
|
719
721
|
* Advertising Id tracking at some point.
|
|
720
722
|
*/
|
|
721
723
|
disableAndroidIdTracking: function () {
|
|
722
|
-
|
|
723
|
-
let payload = getAndroidIdTrackingJson(false,moeAppId);
|
|
724
|
+
MoEngageLogger.verbose("Will disable android-id tracking");
|
|
725
|
+
let payload = getAndroidIdTrackingJson(false, moeAppId);
|
|
724
726
|
|
|
725
727
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
726
728
|
MoERNAndroid.disableAndroidIdTracking(payload);
|
|
@@ -728,28 +730,28 @@ var ReactMoE = {
|
|
|
728
730
|
},
|
|
729
731
|
|
|
730
732
|
pushPermissionResponseAndroid: function (isGranted: boolean) {
|
|
731
|
-
|
|
733
|
+
MoEngageLogger.verbose("Will track permission response");
|
|
732
734
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
733
735
|
MoERNAndroid.permissionResponse(isGranted, MoEngagePermissionType.PUSH)
|
|
734
736
|
}
|
|
735
737
|
},
|
|
736
738
|
|
|
737
739
|
setupNotificationChannelsAndroid: function () {
|
|
738
|
-
|
|
740
|
+
MoEngageLogger.verbose("Will setup notification");
|
|
739
741
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
740
742
|
MoERNAndroid.setupNotificationChannels();
|
|
741
743
|
}
|
|
742
744
|
},
|
|
743
745
|
|
|
744
746
|
navigateToSettingsAndroid: function () {
|
|
745
|
-
|
|
747
|
+
MoEngageLogger.verbose("Will navigate to settings");
|
|
746
748
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
747
749
|
MoERNAndroid.navigateToSettings();
|
|
748
750
|
}
|
|
749
751
|
},
|
|
750
752
|
|
|
751
753
|
requestPushPermissionAndroid: function () {
|
|
752
|
-
|
|
754
|
+
MoEngageLogger.verbose("Will request push permission.");
|
|
753
755
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
754
756
|
MoERNAndroid.requestPushPermission();
|
|
755
757
|
}
|
|
@@ -762,7 +764,7 @@ var ReactMoE = {
|
|
|
762
764
|
* @param {number} count - number of times push permission requested
|
|
763
765
|
*/
|
|
764
766
|
updatePushPermissionRequestCountAndroid: function (count: number) {
|
|
765
|
-
|
|
767
|
+
MoEngageLogger.verbose("Will increment push permission request count");
|
|
766
768
|
let payload = getPushPermissionRequestCountJson(count, moeAppId);
|
|
767
769
|
|
|
768
770
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -776,7 +778,7 @@ var ReactMoE = {
|
|
|
776
778
|
* Note: By default Device Id tracking is enabled
|
|
777
779
|
*/
|
|
778
780
|
enableDeviceIdTracking: function () {
|
|
779
|
-
|
|
781
|
+
MoEngageLogger.verbose("Will enable device id tracking");
|
|
780
782
|
let payload = getDeviceIdTrackingJson(true, moeAppId);
|
|
781
783
|
|
|
782
784
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -788,7 +790,7 @@ var ReactMoE = {
|
|
|
788
790
|
* API to disable Device Id tracking for Android.
|
|
789
791
|
*/
|
|
790
792
|
disableDeviceIdTracking: function () {
|
|
791
|
-
|
|
793
|
+
MoEngageLogger.verbose("Will disable device id tracking");
|
|
792
794
|
let payload = getDeviceIdTrackingJson(false, moeAppId);
|
|
793
795
|
|
|
794
796
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
@@ -805,5 +807,10 @@ export {
|
|
|
805
807
|
MoEGeoLocation,
|
|
806
808
|
MoEProperties,
|
|
807
809
|
MoEAppStatus,
|
|
810
|
+
MoEInitConfig,
|
|
811
|
+
MoEPushConfig,
|
|
812
|
+
MoEngageLogConfig,
|
|
813
|
+
MoEngageLogLevel,
|
|
814
|
+
MoEngageLogger
|
|
808
815
|
};
|
|
809
816
|
export default ReactMoE;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import MoEngageGlobalCache from "../utils/MoEngageGlobalCache";
|
|
2
|
+
import { MoEngageLogLevel } from "../models/MoEngageLogConfig";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Logger to print the ReactNative Plugin log
|
|
6
|
+
* Notes: To Configure the log check {@link MoEInitConfig}
|
|
7
|
+
*/
|
|
8
|
+
namespace MoEngageLogger {
|
|
9
|
+
|
|
10
|
+
function isLoggable(logLevel: MoEngageLogLevel): boolean {
|
|
11
|
+
return (__DEV__ || MoEngageGlobalCache.getInitConfig().logConfig.isEnabledForReleaseBuild)
|
|
12
|
+
&& MoEngageGlobalCache.getInitConfig().logConfig.logLevel >= logLevel;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Console error log
|
|
17
|
+
*
|
|
18
|
+
* @param {any} message - log message which need to be logged
|
|
19
|
+
* @param {any} data - additional message or data
|
|
20
|
+
*/
|
|
21
|
+
export function error(message: any, data?: any): void {
|
|
22
|
+
if (!isLoggable(MoEngageLogLevel.ERROR)) return;
|
|
23
|
+
if (data === undefined) console.error(message);
|
|
24
|
+
else console.error(message, data);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Console warn log
|
|
29
|
+
*
|
|
30
|
+
* @param {any} message - log message which need to be logged
|
|
31
|
+
* @param {any} data - additional message or data
|
|
32
|
+
*/
|
|
33
|
+
export function warn(message: any, data?: any): void {
|
|
34
|
+
if (!isLoggable(MoEngageLogLevel.WARN)) return;
|
|
35
|
+
if (data === undefined) console.warn(message);
|
|
36
|
+
else console.warn(message, data);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Console info log
|
|
41
|
+
*
|
|
42
|
+
* @param {any} message - log message which need to be logged
|
|
43
|
+
* @param {any} data - additional message or data
|
|
44
|
+
*/
|
|
45
|
+
export function info(message: any, data?: any): void {
|
|
46
|
+
if (!isLoggable(MoEngageLogLevel.INFO)) return;
|
|
47
|
+
if (data === undefined) console.info(message);
|
|
48
|
+
else console.info(message, data);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Console debug log
|
|
53
|
+
*
|
|
54
|
+
* @param {any} message - log message which need to be logged
|
|
55
|
+
* @param {any} data - additional message or data
|
|
56
|
+
*/
|
|
57
|
+
export function debug(message: any, data?: any): void {
|
|
58
|
+
if (!isLoggable(MoEngageLogLevel.DEBUG)) return;
|
|
59
|
+
if (data === undefined) console.debug(message);
|
|
60
|
+
else console.debug(message, data);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Console verbose log
|
|
65
|
+
* Notes: On Console it will be clubbed with debug log
|
|
66
|
+
*
|
|
67
|
+
* @param {any} message - log message which need to be logged
|
|
68
|
+
* @param {any} data - additional message or data
|
|
69
|
+
*/
|
|
70
|
+
export function verbose(message: any, data?: any): void {
|
|
71
|
+
if (!isLoggable(MoEngageLogLevel.VERBOSE)) return;
|
|
72
|
+
if (data === undefined) console.debug(message);
|
|
73
|
+
else console.debug(message, data);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export default MoEngageLogger;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import MoEngageLogConfig from "./MoEngageLogConfig";
|
|
2
|
+
import MoEPushConfig from "./MoEPushConfig";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Config class for MoEngage SDK
|
|
6
|
+
* Note: This Config is only for Android platform and is a no-operation method for other plaforms.
|
|
7
|
+
*/
|
|
8
|
+
export default class MoEInitConfig {
|
|
9
|
+
|
|
10
|
+
pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig();
|
|
11
|
+
|
|
12
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig();
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Create an instance of {@link MoEInitConfig}
|
|
16
|
+
*
|
|
17
|
+
* @param pushConfig instance of {@link MoEPushConfig}
|
|
18
|
+
* @param logConfig instance of {@link MoEngageLogConfig}
|
|
19
|
+
*/
|
|
20
|
+
constructor(pushConfig: MoEPushConfig = MoEPushConfig.defaultConfig(),
|
|
21
|
+
logConfig: MoEngageLogConfig = MoEngageLogConfig.defaultConfig()
|
|
22
|
+
) {
|
|
23
|
+
this.pushConfig = pushConfig;
|
|
24
|
+
this.logConfig = logConfig;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Default Config for {@link MoEInitConfig}
|
|
29
|
+
*/
|
|
30
|
+
static defaultConfig() {
|
|
31
|
+
return new MoEInitConfig(
|
|
32
|
+
MoEPushConfig.defaultConfig(),
|
|
33
|
+
MoEngageLogConfig.defaultConfig()
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
}
|