react-native-moengage 7.4.0 → 8.0.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/CHANGELOG.md +57 -3
- package/README.md +29 -6
- package/ReactNativeMoEngage.podspec +3 -3
- package/android/build.gradle +11 -12
- package/android/gradle/wrapper/gradle-wrapper.properties +3 -3
- package/android/gradle.properties +0 -1
- package/android/src/main/java/com/moengage/react/EventEmitterImpl.kt +46 -21
- package/android/src/main/java/com/moengage/react/MoEInitializer.kt +44 -13
- package/android/src/main/java/com/moengage/react/MoEReactBridge.kt +87 -80
- package/android/src/main/java/com/moengage/react/MoEReactHelper.kt +2 -2
- package/android/src/main/java/com/moengage/react/MoEReactPackage.kt +0 -1
- package/android/src/main/java/com/moengage/react/PayloadGenerator.kt +32 -17
- package/iOS/MoEReactBridge/MoEReactBridge.h +1 -1
- package/iOS/MoEReactBridge/MoEReactBridge.m +34 -60
- package/iOS/MoEReactBridge/{MOReactInitializer.h → MoEngageInitializer.h} +11 -11
- package/iOS/MoEReactBridge/MoEngageInitializer.m +153 -0
- package/iOS/MoEReactBridge/{MoEReactConstants.h → MoEngageReactConstants.h} +12 -3
- package/iOS/MoEReactBridge/{MoEReactConstants.m → MoEngageReactConstants.m} +13 -7
- package/iOS/MoEReactBridge/MoEngageReactPluginInfo.h +2 -0
- package/iOS/MoEReactBridge.xcodeproj/project.pbxproj +6 -6
- package/package.json +8 -3
- package/src/index.ts +169 -190
- package/src/models/MoEAccountMeta.ts +8 -0
- package/src/models/MoEAction.ts +4 -0
- package/src/models/MoEActionType.ts +4 -0
- package/src/models/MoECampaignContext.ts +10 -0
- package/src/models/MoECampaignData.ts +14 -0
- package/src/models/MoEClickData.ts +18 -0
- package/src/models/MoEGeoLocation.ts +2 -10
- package/src/models/MoEInAppCustomAction.ts +8 -13
- package/src/models/MoEInAppData.ts +16 -0
- package/src/models/MoEInAppNavigation.ts +14 -24
- package/src/models/MoENavigationType.ts +4 -0
- package/src/models/MoEPlatform.ts +4 -0
- package/src/models/MoEProperties.ts +19 -15
- package/src/models/MoEPushCampaign.ts +6 -22
- package/src/models/MoEPushPayload.ts +14 -0
- package/src/models/MoEPushService.ts +4 -4
- package/src/models/MoEPushToken.ts +6 -15
- package/src/models/MoESelfHandledCampaign.ts +10 -0
- package/src/models/MoESelfHandledCampaignData.ts +18 -0
- package/src/moeParser/MoEInAppParser.ts +192 -0
- package/src/moeParser/MoEPushNotificationParser.ts +78 -0
- package/src/platform/MoERNAndroid.ts +48 -76
- package/src/platform/MoERNiOS.ts +27 -60
- package/src/utils/MoEConstants.ts +59 -0
- package/src/utils/MoEEventHandlerHelper.ts +38 -25
- package/src/utils/MoEJsonBuilder.ts +220 -0
- package/src/utils/MoEObjectToJson.ts +44 -0
- package/iOS/MoEReactBridge/MOReactInitializer.m +0 -172
- package/iOS/MoEReactBridge/MOReactPluginInfo.h +0 -2
- package/src/models/MoEInAppCampaign.ts +0 -46
- package/src/models/MoEInAppSelfHandledCampaign.ts +0 -34
package/src/index.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { Platform, NativeEventEmitter } from "react-native";
|
|
2
|
-
import MoEInAppSelfHandledCampaign from "./models/MoEInAppSelfHandledCampaign";
|
|
3
2
|
import MoEProperties from "./models/MoEProperties";
|
|
4
3
|
import MoEGeoLocation from "./models/MoEGeoLocation";
|
|
5
4
|
import * as MoEHelper from "./utils/MoEHelper";
|
|
@@ -8,15 +7,18 @@ import { MoEAppStatus } from "./models/MoEAppStatus";
|
|
|
8
7
|
import { MoERNAndroid } from "./platform/MoERNAndroid";
|
|
9
8
|
import { MoERNiOS } from "./platform/MoERNiOS";
|
|
10
9
|
|
|
11
|
-
import MoEInAppCampaign from "./models/MoEInAppCampaign";
|
|
12
10
|
import MoEInAppCustomAction from "./models/MoEInAppCustomAction";
|
|
13
11
|
import MoEInAppNavigation from "./models/MoEInAppNavigation";
|
|
14
12
|
import { executeHandler } from "./utils/MoEEventHandlerHelper";
|
|
13
|
+
import { getAdIdTrackingJson, getAliasJson, getAndroidIdTrackingJson, getAppIdJson, getAppStatusJson, getInAppCampaignJson, getInAppClickDataJson, getInAppContextJson, getMoEPropertiesJson, getMoEPushCampaignJson, getMoEPushTokenJson, getOptOutTrackingJson, getSdkStateJson, getSelfHandledJson, getUserAttributeJson, getUserLocAttributeJson } from "./utils/MoEJsonBuilder";
|
|
14
|
+
import { USER_ATTRIBUTE_UNIQUE_ID, USER_ATTRIBUTE_USER_BDAY, USER_ATTRIBUTE_USER_EMAIL, USER_ATTRIBUTE_USER_FIRST_NAME, USER_ATTRIBUTE_USER_GENDER, USER_ATTRIBUTE_USER_LAST_NAME, USER_ATTRIBUTE_USER_LOCATION, USER_ATTRIBUTE_USER_MOBILE, USER_ATTRIBUTE_USER_NAME } from "./utils/MoEConstants";
|
|
15
|
+
import MoESelfHandledCampaignData from "./models/MoESelfHandledCampaignData";
|
|
15
16
|
|
|
16
17
|
const MoEReactBridge = require("react-native").NativeModules.MoEReactBridge;
|
|
17
18
|
const PLATFORM_ANDROID = "android";
|
|
18
19
|
const PLATFORM_IOS = "ios";
|
|
19
20
|
const GENERAL = "general";
|
|
21
|
+
const TIMESTAMP = 'timestamp';
|
|
20
22
|
|
|
21
23
|
const MOE_PUSH_CLICKED = "MoEPushClicked";
|
|
22
24
|
const MOE_PUSH_REGISTERED = "MoEPushTokenGenerated";
|
|
@@ -45,6 +47,9 @@ const INAPP_DISMISSED = "inAppCampaignDismissed";
|
|
|
45
47
|
const INAPP_CUTOM_ACTION = "inAppCampaignCustomAction";
|
|
46
48
|
const INAPP_SELF_HANDLE = "inAppCampaignSelfHandled";
|
|
47
49
|
|
|
50
|
+
const PUSH_SERVICE_FCM = "FCM"
|
|
51
|
+
const PUSH_SERVICE_PUSH_KIT = "PUSH_KIT"
|
|
52
|
+
|
|
48
53
|
const _eventNames = [
|
|
49
54
|
PUSH_CLICKED,
|
|
50
55
|
PUSH_REGISTERED,
|
|
@@ -56,7 +61,8 @@ const _eventNames = [
|
|
|
56
61
|
];
|
|
57
62
|
|
|
58
63
|
var _eventTypeHandler = new Map();
|
|
59
|
-
var MoeEventEmitter;
|
|
64
|
+
var MoeEventEmitter: { addListener: (arg0: any, arg1: (notification: any) => void) => void; };
|
|
65
|
+
var moeAppId = "";
|
|
60
66
|
|
|
61
67
|
if (MoEReactBridge) {
|
|
62
68
|
MoeEventEmitter = new NativeEventEmitter(MoEReactBridge);
|
|
@@ -65,8 +71,8 @@ if (MoEReactBridge) {
|
|
|
65
71
|
}
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
function handleEventBroadcast(type, broadcast) {
|
|
69
|
-
MoeEventEmitter.addListener(broadcast, (notification) => {
|
|
74
|
+
function handleEventBroadcast(type: string | String, broadcast: string) {
|
|
75
|
+
MoeEventEmitter.addListener(broadcast, (notification: any) => {
|
|
70
76
|
executeHandler(_eventTypeHandler.get(type), notification, type);
|
|
71
77
|
});
|
|
72
78
|
}
|
|
@@ -84,22 +90,23 @@ function showError(message: String) {
|
|
|
84
90
|
}
|
|
85
91
|
|
|
86
92
|
var ReactMoE = {
|
|
87
|
-
setEventListener: function (type, handler) {
|
|
93
|
+
setEventListener: function (type: any, handler: any) {
|
|
88
94
|
if (!MoEReactBridge) return;
|
|
89
95
|
_eventTypeHandler.set(type, handler);
|
|
90
96
|
},
|
|
91
97
|
|
|
92
|
-
removeEventListener: function (type) {
|
|
98
|
+
removeEventListener: function (type: any) {
|
|
93
99
|
if (!MoEReactBridge) return;
|
|
94
100
|
_eventTypeHandler.delete(type);
|
|
95
101
|
},
|
|
96
102
|
|
|
97
|
-
initialize: function () {
|
|
103
|
+
initialize: function (appId:string) {
|
|
104
|
+
moeAppId = appId;
|
|
98
105
|
commonValidationCheck();
|
|
99
106
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
100
|
-
MoERNAndroid.initialize();
|
|
107
|
+
MoERNAndroid.initialize(getAppIdJson(appId));
|
|
101
108
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
102
|
-
MoERNiOS.initialize();
|
|
109
|
+
MoERNiOS.initialize(getAppIdJson(appId));
|
|
103
110
|
}
|
|
104
111
|
},
|
|
105
112
|
|
|
@@ -113,9 +120,7 @@ var ReactMoE = {
|
|
|
113
120
|
setAppStatus: function (status: MoEAppStatus) {
|
|
114
121
|
commonValidationCheck();
|
|
115
122
|
console.log("Will track whether it is a fresh install or update.");
|
|
116
|
-
let payload =
|
|
117
|
-
appStatus: MoEHelper.appStatusToString(status),
|
|
118
|
-
};
|
|
123
|
+
let payload = getAppStatusJson(MoEHelper.appStatusToString(status),moeAppId);
|
|
119
124
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
120
125
|
MoERNAndroid.setAppStatus(payload);
|
|
121
126
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -130,22 +135,19 @@ var ReactMoE = {
|
|
|
130
135
|
*/
|
|
131
136
|
trackEvent: function (eventName: String, properties: MoEProperties) {
|
|
132
137
|
commonValidationCheck();
|
|
133
|
-
|
|
134
|
-
if(properties == null) {
|
|
138
|
+
|
|
139
|
+
if (properties == null) {
|
|
135
140
|
properties = new MoEProperties()
|
|
136
141
|
}
|
|
137
|
-
|
|
142
|
+
|
|
138
143
|
if (!(properties instanceof MoEProperties)) {
|
|
139
144
|
showError("trackEvent: properties must of MoEProperties type");
|
|
140
145
|
return;
|
|
141
146
|
}
|
|
142
147
|
|
|
143
|
-
console.log("trackEvent with properties", properties);
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
...properties.toJSON(),
|
|
147
|
-
eventName,
|
|
148
|
-
};
|
|
148
|
+
console.log("trackEvent with properties", properties);
|
|
149
|
+
let payload= getMoEPropertiesJson(properties, eventName, moeAppId);
|
|
150
|
+
|
|
149
151
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
150
152
|
MoERNAndroid.trackEvent(payload);
|
|
151
153
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -160,11 +162,7 @@ var ReactMoE = {
|
|
|
160
162
|
setUserUniqueID: function (uniqueId: string) {
|
|
161
163
|
commonValidationCheck();
|
|
162
164
|
console.log("Will set unique ID: " + uniqueId);
|
|
163
|
-
const payload =
|
|
164
|
-
"USER_ATTRIBUTE_UNIQUE_ID",
|
|
165
|
-
uniqueId,
|
|
166
|
-
GENERAL
|
|
167
|
-
);
|
|
165
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_UNIQUE_ID,uniqueId,GENERAL,moeAppId)
|
|
168
166
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
169
167
|
MoERNAndroid.setUserAttribute(payload);
|
|
170
168
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -179,9 +177,7 @@ var ReactMoE = {
|
|
|
179
177
|
setAlias: function (alias: string) {
|
|
180
178
|
commonValidationCheck();
|
|
181
179
|
console.log("Will set alias: " + alias);
|
|
182
|
-
let payload =
|
|
183
|
-
alias: alias,
|
|
184
|
-
};
|
|
180
|
+
let payload = getAliasJson(alias,moeAppId);
|
|
185
181
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
186
182
|
MoERNAndroid.setAlias(payload);
|
|
187
183
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -196,11 +192,8 @@ var ReactMoE = {
|
|
|
196
192
|
setUserName: function (userName: string) {
|
|
197
193
|
commonValidationCheck();
|
|
198
194
|
console.log("Will set username: " + userName);
|
|
199
|
-
const payload =
|
|
200
|
-
|
|
201
|
-
userName,
|
|
202
|
-
GENERAL
|
|
203
|
-
);
|
|
195
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_NAME,userName,GENERAL,moeAppId)
|
|
196
|
+
|
|
204
197
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
205
198
|
MoERNAndroid.setUserAttribute(payload);
|
|
206
199
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -215,11 +208,8 @@ var ReactMoE = {
|
|
|
215
208
|
setUserFirstName: function (firstName: string) {
|
|
216
209
|
commonValidationCheck();
|
|
217
210
|
console.log("Will set first name: " + firstName);
|
|
218
|
-
const payload =
|
|
219
|
-
|
|
220
|
-
firstName,
|
|
221
|
-
GENERAL
|
|
222
|
-
);
|
|
211
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_FIRST_NAME,firstName,GENERAL,moeAppId)
|
|
212
|
+
|
|
223
213
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
224
214
|
MoERNAndroid.setUserAttribute(payload);
|
|
225
215
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -234,11 +224,8 @@ var ReactMoE = {
|
|
|
234
224
|
setUserLastName: function (lastName: string) {
|
|
235
225
|
commonValidationCheck();
|
|
236
226
|
console.log("Will set last name: " + lastName);
|
|
237
|
-
const payload =
|
|
238
|
-
|
|
239
|
-
lastName,
|
|
240
|
-
GENERAL
|
|
241
|
-
);
|
|
227
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_LAST_NAME,lastName,GENERAL,moeAppId)
|
|
228
|
+
|
|
242
229
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
243
230
|
MoERNAndroid.setUserAttribute(payload);
|
|
244
231
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -253,11 +240,8 @@ var ReactMoE = {
|
|
|
253
240
|
setUserEmailID: function (emailId: string) {
|
|
254
241
|
commonValidationCheck();
|
|
255
242
|
console.log("Will set email-id " + emailId);
|
|
256
|
-
const payload =
|
|
257
|
-
|
|
258
|
-
emailId,
|
|
259
|
-
GENERAL
|
|
260
|
-
);
|
|
243
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_EMAIL,emailId,GENERAL,moeAppId)
|
|
244
|
+
|
|
261
245
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
262
246
|
MoERNAndroid.setUserAttribute(payload);
|
|
263
247
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -272,11 +256,8 @@ var ReactMoE = {
|
|
|
272
256
|
setUserContactNumber: function (mobileNumber: string) {
|
|
273
257
|
commonValidationCheck();
|
|
274
258
|
console.log("Will set Mobile Number: " + mobileNumber);
|
|
275
|
-
const payload =
|
|
276
|
-
|
|
277
|
-
mobileNumber,
|
|
278
|
-
GENERAL
|
|
279
|
-
);
|
|
259
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_MOBILE,mobileNumber,GENERAL,moeAppId)
|
|
260
|
+
|
|
280
261
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
281
262
|
MoERNAndroid.setUserAttribute(payload);
|
|
282
263
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -291,11 +272,8 @@ var ReactMoE = {
|
|
|
291
272
|
setUserBirthday: function (birthday: string) {
|
|
292
273
|
commonValidationCheck();
|
|
293
274
|
console.log("Will set birthday: " + birthday);
|
|
294
|
-
const payload =
|
|
295
|
-
|
|
296
|
-
birthday,
|
|
297
|
-
"timestamp"
|
|
298
|
-
);
|
|
275
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_BDAY,birthday,TIMESTAMP,moeAppId)
|
|
276
|
+
|
|
299
277
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
300
278
|
MoERNAndroid.setUserAttribute(payload);
|
|
301
279
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -307,14 +285,12 @@ var ReactMoE = {
|
|
|
307
285
|
* Sets the gender of the user.
|
|
308
286
|
* @param gender gender to be set
|
|
309
287
|
*/
|
|
310
|
-
setUserGender: function (gender) {
|
|
288
|
+
setUserGender: function (gender: Object) {
|
|
311
289
|
commonValidationCheck();
|
|
312
290
|
console.log("Will set gender: " + gender);
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
GENERAL
|
|
317
|
-
);
|
|
291
|
+
|
|
292
|
+
const payload = getUserAttributeJson(USER_ATTRIBUTE_USER_GENDER,gender,GENERAL,moeAppId)
|
|
293
|
+
|
|
318
294
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
319
295
|
MoERNAndroid.setUserAttribute(payload);
|
|
320
296
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -332,11 +308,8 @@ var ReactMoE = {
|
|
|
332
308
|
showError("setUserLocation: location must of type MoEGeoLocation");
|
|
333
309
|
return;
|
|
334
310
|
}
|
|
335
|
-
const payload =
|
|
336
|
-
|
|
337
|
-
location.latitude,
|
|
338
|
-
location.longitude
|
|
339
|
-
);
|
|
311
|
+
const payload = getUserLocAttributeJson(USER_ATTRIBUTE_USER_LOCATION,location.latitude,location.longitude,moeAppId)
|
|
312
|
+
|
|
340
313
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
341
314
|
MoERNAndroid.setUserAttribute(payload);
|
|
342
315
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -349,19 +322,16 @@ var ReactMoE = {
|
|
|
349
322
|
* @param userAttributeName attribute name
|
|
350
323
|
* @param userAttributeValue attribute value
|
|
351
324
|
*/
|
|
352
|
-
setUserAttribute: function (userAttributeName: string, userAttributeValue) {
|
|
325
|
+
setUserAttribute: function (userAttributeName: string, userAttributeValue: Object) {
|
|
353
326
|
commonValidationCheck();
|
|
354
327
|
console.log(
|
|
355
328
|
"Will track user attribute [attributeName]: " +
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
);
|
|
360
|
-
const payload = MoEHelper.createUserAttributeParam(
|
|
361
|
-
userAttributeName,
|
|
362
|
-
userAttributeValue,
|
|
363
|
-
GENERAL
|
|
329
|
+
userAttributeName +
|
|
330
|
+
" attributeValue: " +
|
|
331
|
+
userAttributeValue
|
|
364
332
|
);
|
|
333
|
+
const payload = getUserAttributeJson(userAttributeName,userAttributeValue,GENERAL,moeAppId)
|
|
334
|
+
|
|
365
335
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
366
336
|
MoERNAndroid.setUserAttribute(payload);
|
|
367
337
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -379,11 +349,8 @@ var ReactMoE = {
|
|
|
379
349
|
date: String
|
|
380
350
|
) {
|
|
381
351
|
commonValidationCheck();
|
|
382
|
-
const payload =
|
|
383
|
-
|
|
384
|
-
date,
|
|
385
|
-
"timestamp"
|
|
386
|
-
);
|
|
352
|
+
const payload = getUserAttributeJson(attributeName,date,TIMESTAMP,moeAppId)
|
|
353
|
+
|
|
387
354
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
388
355
|
MoERNAndroid.setUserAttribute(payload);
|
|
389
356
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -407,11 +374,8 @@ var ReactMoE = {
|
|
|
407
374
|
);
|
|
408
375
|
return;
|
|
409
376
|
}
|
|
410
|
-
const payload =
|
|
411
|
-
|
|
412
|
-
location.latitude,
|
|
413
|
-
location.longitude
|
|
414
|
-
);
|
|
377
|
+
const payload = getUserLocAttributeJson(userAttributeName,location.latitude,location.longitude,moeAppId)
|
|
378
|
+
|
|
415
379
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
416
380
|
MoERNAndroid.setUserAttribute(payload);
|
|
417
381
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -426,9 +390,9 @@ var ReactMoE = {
|
|
|
426
390
|
commonValidationCheck();
|
|
427
391
|
console.log("Will logout user");
|
|
428
392
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
429
|
-
MoERNAndroid.logout();
|
|
393
|
+
MoERNAndroid.logout(getAppIdJson(moeAppId));
|
|
430
394
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
431
|
-
MoERNiOS.logout();
|
|
395
|
+
MoERNiOS.logout(getAppIdJson(moeAppId));
|
|
432
396
|
}
|
|
433
397
|
},
|
|
434
398
|
|
|
@@ -439,9 +403,9 @@ var ReactMoE = {
|
|
|
439
403
|
commonValidationCheck();
|
|
440
404
|
console.log("Will try to show in-app.");
|
|
441
405
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
442
|
-
MoERNAndroid.showInApp();
|
|
406
|
+
MoERNAndroid.showInApp(getAppIdJson(moeAppId));
|
|
443
407
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
444
|
-
MoERNiOS.showInApp();
|
|
408
|
+
MoERNiOS.showInApp(getAppIdJson(moeAppId));
|
|
445
409
|
}
|
|
446
410
|
},
|
|
447
411
|
|
|
@@ -451,25 +415,25 @@ var ReactMoE = {
|
|
|
451
415
|
getSelfHandledInApp: function () {
|
|
452
416
|
commonValidationCheck();
|
|
453
417
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
454
|
-
MoERNAndroid.getSelfHandledInApp();
|
|
418
|
+
MoERNAndroid.getSelfHandledInApp(getAppIdJson(moeAppId));
|
|
455
419
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
456
|
-
MoERNiOS.getSelfHandledInApp();
|
|
420
|
+
MoERNiOS.getSelfHandledInApp(getAppIdJson(moeAppId));
|
|
457
421
|
}
|
|
458
422
|
},
|
|
459
423
|
|
|
460
424
|
/**
|
|
461
425
|
* Call this method when you show the self handled in-app so we can update impressions.
|
|
462
|
-
* @param {
|
|
426
|
+
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
|
|
463
427
|
*/
|
|
464
|
-
selfHandledShown: function (inAppCampaign:
|
|
428
|
+
selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
465
429
|
commonValidationCheck();
|
|
466
|
-
if (!(inAppCampaign instanceof
|
|
430
|
+
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
467
431
|
showError(
|
|
468
|
-
"selfHandledShown: inAppCampaign must of
|
|
432
|
+
"selfHandledShown: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
469
433
|
);
|
|
470
434
|
return;
|
|
471
435
|
}
|
|
472
|
-
let campaignJson = inAppCampaign
|
|
436
|
+
let campaignJson = getSelfHandledJson(inAppCampaign,"impression",moeAppId);
|
|
473
437
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
474
438
|
MoERNAndroid.selfHandledShown(campaignJson);
|
|
475
439
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -477,39 +441,19 @@ var ReactMoE = {
|
|
|
477
441
|
}
|
|
478
442
|
},
|
|
479
443
|
|
|
480
|
-
/**
|
|
481
|
-
* Call this method to track when self handled in app primary widget is clicked.
|
|
482
|
-
* @param {MoEInAppCampaign}campInfo : campaign information object
|
|
483
|
-
*/
|
|
484
|
-
selfHandledPrimaryClicked: function (inAppCampaign: MoEInAppCampaign) {
|
|
485
|
-
commonValidationCheck();
|
|
486
|
-
if (!(inAppCampaign instanceof MoEInAppCampaign)) {
|
|
487
|
-
showError(
|
|
488
|
-
"selfHandledClicked: inAppCampaign must of MoEInAppCampaign type"
|
|
489
|
-
);
|
|
490
|
-
return;
|
|
491
|
-
}
|
|
492
|
-
let campaignJson = inAppCampaign.toJSON();
|
|
493
|
-
if (Platform.OS == PLATFORM_ANDROID) {
|
|
494
|
-
MoERNAndroid.selfHandledPrimaryClicked(campaignJson);
|
|
495
|
-
} else if (Platform.OS == PLATFORM_IOS) {
|
|
496
|
-
MoERNiOS.selfHandledPrimaryClicked(campaignJson);
|
|
497
|
-
}
|
|
498
|
-
},
|
|
499
|
-
|
|
500
444
|
/**
|
|
501
445
|
* Call this method to track when self handled in app widget(other than Primary Widget) is clicked.
|
|
502
|
-
* @param {
|
|
446
|
+
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
|
|
503
447
|
*/
|
|
504
|
-
selfHandledClicked: function (
|
|
448
|
+
selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) {
|
|
505
449
|
commonValidationCheck();
|
|
506
|
-
if (!(
|
|
450
|
+
if (!(moEClickData instanceof MoESelfHandledCampaignData)) {
|
|
507
451
|
showError(
|
|
508
|
-
"selfHandledClicked: inAppCampaign must of
|
|
452
|
+
"selfHandledClicked: inAppCampaign must of MoEClickData type"
|
|
509
453
|
);
|
|
510
454
|
return;
|
|
511
455
|
}
|
|
512
|
-
let campaignJson =
|
|
456
|
+
let campaignJson = getSelfHandledJson(moEClickData,"click",moeAppId);
|
|
513
457
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
514
458
|
MoERNAndroid.selfHandledClicked(campaignJson);
|
|
515
459
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -519,17 +463,17 @@ var ReactMoE = {
|
|
|
519
463
|
|
|
520
464
|
/**
|
|
521
465
|
* Call this method to track dismiss actions on the inApp.
|
|
522
|
-
* @param {
|
|
466
|
+
* @param {MoESelfHandledCampaignData}campInfo : campaign information object
|
|
523
467
|
*/
|
|
524
|
-
selfHandledDismissed: function (inAppCampaign:
|
|
468
|
+
selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) {
|
|
525
469
|
commonValidationCheck();
|
|
526
|
-
if (!(inAppCampaign instanceof
|
|
470
|
+
if (!(inAppCampaign instanceof MoESelfHandledCampaignData)) {
|
|
527
471
|
showError(
|
|
528
|
-
"selfHandledDismissed: inAppCampaign must of
|
|
472
|
+
"selfHandledDismissed: inAppCampaign must of MoESelfHandledCampaignData type"
|
|
529
473
|
);
|
|
530
474
|
return;
|
|
531
475
|
}
|
|
532
|
-
let campaignJson = inAppCampaign
|
|
476
|
+
let campaignJson = getSelfHandledJson(inAppCampaign,"dismissed",moeAppId);
|
|
533
477
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
534
478
|
MoERNAndroid.selfHandledDismissed(campaignJson);
|
|
535
479
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -549,9 +493,7 @@ var ReactMoE = {
|
|
|
549
493
|
);
|
|
550
494
|
return;
|
|
551
495
|
}
|
|
552
|
-
let payload =
|
|
553
|
-
contexts: contexts,
|
|
554
|
-
};
|
|
496
|
+
let payload = getInAppContextJson(contexts,moeAppId);
|
|
555
497
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
556
498
|
MoERNAndroid.setAppContext(payload);
|
|
557
499
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
@@ -565,9 +507,9 @@ var ReactMoE = {
|
|
|
565
507
|
resetCurrentContext: function () {
|
|
566
508
|
commonValidationCheck();
|
|
567
509
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
568
|
-
MoERNAndroid.resetAppContext();
|
|
510
|
+
MoERNAndroid.resetAppContext(getAppIdJson(moeAppId));
|
|
569
511
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
570
|
-
MoERNiOS.resetAppContext();
|
|
512
|
+
MoERNiOS.resetAppContext(getAppIdJson(moeAppId));
|
|
571
513
|
}
|
|
572
514
|
},
|
|
573
515
|
|
|
@@ -580,8 +522,10 @@ var ReactMoE = {
|
|
|
580
522
|
passFcmPushToken: function (pushToken: string) {
|
|
581
523
|
commonValidationCheck();
|
|
582
524
|
console.log("Will process push token");
|
|
525
|
+
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_FCM,PLATFORM_ANDROID,moeAppId);
|
|
526
|
+
|
|
583
527
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
584
|
-
MoERNAndroid.passFcmPushToken(
|
|
528
|
+
MoERNAndroid.passFcmPushToken(payload);
|
|
585
529
|
} else {
|
|
586
530
|
console.log("This api is not supported on iOS platform.");
|
|
587
531
|
}
|
|
@@ -595,23 +539,15 @@ var ReactMoE = {
|
|
|
595
539
|
passFcmPushPayload: function (pushPayload: object) {
|
|
596
540
|
commonValidationCheck();
|
|
597
541
|
console.log("Will process push payload.");
|
|
542
|
+
let payload = getMoEPushCampaignJson(pushPayload,PUSH_SERVICE_FCM,moeAppId)
|
|
543
|
+
|
|
598
544
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
599
|
-
MoERNAndroid.passFcmPushPayload(
|
|
545
|
+
MoERNAndroid.passFcmPushPayload(payload);
|
|
600
546
|
} else {
|
|
601
547
|
console.log("This api is not supported on iOS platform.");
|
|
602
548
|
}
|
|
603
549
|
},
|
|
604
550
|
|
|
605
|
-
enableSDKLogs: function () {
|
|
606
|
-
commonValidationCheck();
|
|
607
|
-
console.log("Enabling SDK logs");
|
|
608
|
-
if (Platform.OS == PLATFORM_ANDROID) {
|
|
609
|
-
MoERNAndroid.enableSDKLogs();
|
|
610
|
-
} else if (Platform.OS == PLATFORM_IOS) {
|
|
611
|
-
MoERNiOS.enableSDKLogs();
|
|
612
|
-
}
|
|
613
|
-
},
|
|
614
|
-
|
|
615
551
|
/**
|
|
616
552
|
* Call this method to register for push notification in iOS
|
|
617
553
|
*/
|
|
@@ -634,7 +570,7 @@ var ReactMoE = {
|
|
|
634
570
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
635
571
|
console.log("This api is not supported on android platform.");
|
|
636
572
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
637
|
-
MoERNiOS.disableInbox();
|
|
573
|
+
MoERNiOS.disableInbox(getAppIdJson(moeAppId));
|
|
638
574
|
}
|
|
639
575
|
},
|
|
640
576
|
|
|
@@ -645,84 +581,127 @@ var ReactMoE = {
|
|
|
645
581
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
646
582
|
//Android code
|
|
647
583
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
648
|
-
MoERNiOS.startGeofenceMonitoring();
|
|
584
|
+
MoERNiOS.startGeofenceMonitoring(getAppIdJson(moeAppId));
|
|
649
585
|
}
|
|
650
586
|
},
|
|
651
587
|
|
|
652
588
|
optOutDataTracking: function (shouldOptOutDataTracking: boolean) {
|
|
653
589
|
console.log("Will opt out data tracking");
|
|
590
|
+
let payload = getOptOutTrackingJson("data",shouldOptOutDataTracking,moeAppId);
|
|
654
591
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
655
|
-
MoERNAndroid.optOutDataTracking(
|
|
592
|
+
MoERNAndroid.optOutDataTracking(payload);
|
|
656
593
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
657
|
-
MoERNiOS.optOutDataTracking(
|
|
594
|
+
MoERNiOS.optOutDataTracking(payload);
|
|
658
595
|
}
|
|
659
596
|
},
|
|
660
597
|
|
|
661
|
-
|
|
662
|
-
|
|
598
|
+
/**
|
|
599
|
+
* Pass the HMS PushKit push token to the MoEngage SDK.
|
|
600
|
+
* Note: This API is only for Android platform and is a no-operation method for other plaforms.
|
|
601
|
+
*
|
|
602
|
+
* @param {String} pushToken
|
|
603
|
+
*/
|
|
604
|
+
passPushKitPushToken: function (pushToken: string) {
|
|
605
|
+
commonValidationCheck();
|
|
606
|
+
console.log("Will process push-kit push token");
|
|
607
|
+
let payload = getMoEPushTokenJson(pushToken,PUSH_SERVICE_PUSH_KIT,PLATFORM_ANDROID,moeAppId);
|
|
608
|
+
|
|
609
|
+
if (Platform.OS == PLATFORM_ANDROID) {
|
|
610
|
+
MoERNAndroid.passPushKitPushToken(payload);
|
|
611
|
+
} else {
|
|
612
|
+
console.log("This api is not supported on iOS platform.");
|
|
613
|
+
}
|
|
614
|
+
},
|
|
615
|
+
|
|
616
|
+
enableSdk: function () {
|
|
617
|
+
console.log("Will enable SDK");
|
|
618
|
+
let payload = getSdkStateJson(true,moeAppId)
|
|
663
619
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
664
|
-
MoERNAndroid.
|
|
620
|
+
MoERNAndroid.updateSdkState(payload);
|
|
665
621
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
666
|
-
MoERNiOS.
|
|
622
|
+
MoERNiOS.updateSdkState(payload);
|
|
667
623
|
}
|
|
668
624
|
},
|
|
669
625
|
|
|
670
|
-
|
|
671
|
-
console.log("Will
|
|
626
|
+
disableSdk: function () {
|
|
627
|
+
console.log("Will disable SDK");
|
|
628
|
+
let payload = getSdkStateJson(false,moeAppId)
|
|
629
|
+
|
|
672
630
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
673
|
-
MoERNAndroid.
|
|
631
|
+
MoERNAndroid.updateSdkState(payload);
|
|
674
632
|
} else if (Platform.OS == PLATFORM_IOS) {
|
|
675
|
-
MoERNiOS.
|
|
633
|
+
MoERNiOS.updateSdkState(payload);
|
|
676
634
|
}
|
|
677
635
|
},
|
|
678
636
|
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
* Note: This API is only for Android platform and is a no-operation method for other plaforms.
|
|
682
|
-
*
|
|
683
|
-
* @param {String} pushToken
|
|
684
|
-
*/
|
|
685
|
-
passPushKitPushToken: function (pushToken: string) {
|
|
686
|
-
commonValidationCheck();
|
|
687
|
-
console.log("Will process push-kit push token");
|
|
637
|
+
onOrientationChanged: function () {
|
|
638
|
+
console.log("Will process screen rotation.");
|
|
688
639
|
if (Platform.OS == PLATFORM_ANDROID) {
|
|
689
|
-
MoERNAndroid.
|
|
690
|
-
} else {
|
|
691
|
-
console.log("This api is not supported on iOS platform.");
|
|
640
|
+
MoERNAndroid.onOrientationChanged();
|
|
692
641
|
}
|
|
693
642
|
},
|
|
694
643
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
644
|
+
/**
|
|
645
|
+
* API to enable Advertising Id tracking for Android.
|
|
646
|
+
*/
|
|
647
|
+
enableAdIdTracking: function () {
|
|
648
|
+
console.log("Will enable advertising-id tracking");
|
|
649
|
+
let payload = getAdIdTrackingJson(true,moeAppId);
|
|
650
|
+
|
|
651
|
+
if (Platform.OS == PLATFORM_ANDROID) {
|
|
652
|
+
MoERNAndroid.enableAdIdTracking(payload);
|
|
701
653
|
}
|
|
702
654
|
},
|
|
703
655
|
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
656
|
+
/**
|
|
657
|
+
* API to disable Advertising Id tracking for Android.
|
|
658
|
+
*
|
|
659
|
+
* By default Advertising Id tracking is disabled, call this method only if you have enabled
|
|
660
|
+
* Advertising Id tracking at some point.
|
|
661
|
+
*/
|
|
662
|
+
disableAdIdTracking: function () {
|
|
663
|
+
console.log("Will disable advertising-id tracking");
|
|
664
|
+
let payload = getAdIdTrackingJson(false,moeAppId);
|
|
665
|
+
|
|
666
|
+
if (Platform.OS == PLATFORM_ANDROID) {
|
|
667
|
+
MoERNAndroid.disableAdIdTracking(payload);
|
|
668
|
+
}
|
|
669
|
+
},
|
|
670
|
+
|
|
671
|
+
/**
|
|
672
|
+
* API to enable Android Id tracking for Android.
|
|
673
|
+
*/
|
|
674
|
+
enableAndroidIdTracking: function () {
|
|
675
|
+
console.log("Will enable android-id tracking");
|
|
676
|
+
let payload = getAndroidIdTrackingJson(true,moeAppId);
|
|
677
|
+
|
|
678
|
+
if (Platform.OS == PLATFORM_ANDROID) {
|
|
679
|
+
MoERNAndroid.enableAndroidIdTracking(payload);
|
|
710
680
|
}
|
|
711
681
|
},
|
|
712
682
|
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
683
|
+
/**
|
|
684
|
+
* API to disable Android Id tracking for Android.
|
|
685
|
+
*
|
|
686
|
+
* By default Android Id tracking is disabled, call this method only if you have enabled
|
|
687
|
+
* Advertising Id tracking at some point.
|
|
688
|
+
*/
|
|
689
|
+
disableAndroidIdTracking: function () {
|
|
690
|
+
console.log("Will disable android-id tracking");
|
|
691
|
+
let payload = getAndroidIdTrackingJson(false,moeAppId);
|
|
692
|
+
|
|
693
|
+
if (Platform.OS == PLATFORM_ANDROID) {
|
|
694
|
+
MoERNAndroid.disableAndroidIdTracking(payload);
|
|
717
695
|
}
|
|
718
696
|
}
|
|
697
|
+
|
|
698
|
+
|
|
719
699
|
};
|
|
720
700
|
|
|
721
701
|
export {
|
|
722
|
-
MoEInAppCampaign,
|
|
723
702
|
MoEInAppCustomAction,
|
|
724
703
|
MoEInAppNavigation,
|
|
725
|
-
|
|
704
|
+
MoESelfHandledCampaignData,
|
|
726
705
|
MoEGeoLocation,
|
|
727
706
|
MoEProperties,
|
|
728
707
|
MoEAppStatus,
|