react-native-moengage
Advanced tools
Comparing version
@@ -0,1 +1,9 @@ | ||
# 30-09-2024 | ||
## 11.1.0 | ||
- Added support for Multiple SelfHandled InApps. | ||
- iOS | ||
- Added support for Provisional Push. | ||
- MoEngage-iOS-SDK version updated to `9.20.0`. | ||
# 07-08-2024 | ||
@@ -2,0 +10,0 @@ |
{ | ||
"name": "react-native-moengage", | ||
"version": "11.0.0", | ||
"version": "11.1.0", | ||
"description": "MoEngage is a mobile marketing automation company. This react-native SDK helps you track events, trigger smart notifications and in-apps, provides a drop-in Inbox Controller for notifications.", | ||
@@ -5,0 +5,0 @@ "main": "src/index.ts", |
@@ -61,2 +61,3 @@ import { NativeEventEmitter, Platform } from "react-native"; | ||
import { MoESupportedAttributes } from "./models/MoESupportedAttributes"; | ||
import * as MoECoreHandler from "./utils/MoECoreHandler"; | ||
@@ -388,3 +389,3 @@ const PLATFORM_IOS = "ios"; | ||
* Call this method when you show the self handled in-app so we can update impressions. | ||
* @param {MoESelfHandledCampaignData}campInfo : campaign information object | ||
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object | ||
*/ | ||
@@ -402,3 +403,3 @@ selfHandledShown: function (inAppCampaign: MoESelfHandledCampaignData) { | ||
* Call this method to track when self handled in app widget(other than Primary Widget) is clicked. | ||
* @param {MoESelfHandledCampaignData}campInfo : campaign information object | ||
* @param {MoESelfHandledCampaignData}moEClickData : campaign information object | ||
*/ | ||
@@ -416,3 +417,3 @@ selfHandledClicked: function (moEClickData: MoESelfHandledCampaignData) { | ||
* Call this method to track dismiss actions on the inApp. | ||
* @param {MoESelfHandledCampaignData}campInfo : campaign information object | ||
* @param {MoESelfHandledCampaignData}inAppCampaign : campaign information object | ||
*/ | ||
@@ -430,3 +431,3 @@ selfHandledDismissed: function (inAppCampaign: MoESelfHandledCampaignData) { | ||
* Call this method to the current context for inApp module. | ||
* @param {Array{String}}contexts : Name of all the contexts | ||
* @param{Array{String}}contexts : Name of all the contexts | ||
*/ | ||
@@ -734,2 +735,25 @@ setCurrentContext: function (contexts: Array<String>) { | ||
}, | ||
/** | ||
* Call this method to get the multiple self handled campaigns. | ||
* @since TODO | ||
*/ | ||
getSelfHandledInApps: async function () { | ||
MoEngageLogger.verbose("Will try to fetch multiple self handled inapps", moeAppId); | ||
return await MoECoreHandler.getSelfHandledInApps(moeAppId); | ||
}, | ||
/** | ||
* Call this method to register for provisional push notification in iOS | ||
* Note: This API is only for iOS platform and is a no-operation method for other plaforms. | ||
* @since TODO | ||
*/ | ||
registerForProvisionalPush: function () { | ||
if (Platform.OS == PLATFORM_IOS) { | ||
MoEngageLogger.verbose("Will call registerForProvisionalPush"); | ||
MoEReactBridge.registerForProvisionalPush(); | ||
} else { | ||
MoEngageLogger.debug("This api is not supported on Android platform."); | ||
} | ||
}, | ||
}; | ||
@@ -736,0 +760,0 @@ |
@@ -0,10 +1,13 @@ | ||
import MoEInAppRules from "../models/MoEInAppRules"; | ||
export default class MoESelfHandledCampaign { | ||
payload: string; | ||
dismissInterval: Number; | ||
displayRules: MoEInAppRules | ||
constructor(payload: string, dismissInterval: Number) { | ||
constructor(payload: string, dismissInterval: Number, displayRules: MoEInAppRules) { | ||
this.payload = payload; | ||
this.dismissInterval = dismissInterval; | ||
this.displayRules = displayRules; | ||
} | ||
} |
@@ -8,4 +8,7 @@ import MoEngageLogger from "../logger/MoEngageLogger"; | ||
import MoEInAppNavigation from "../models/MoEInAppNavigation"; | ||
import MoEInAppRules from "../models/MoEInAppRules"; | ||
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign"; | ||
import MoESelfHandledCampaignData from "../models/MoESelfHandledCampaignData"; | ||
import MoESelfHandledCampaignsData from "../models/MoESelfHandledCampaignsData"; | ||
import { | ||
@@ -28,3 +31,8 @@ ACTION_TYPE, | ||
MOE_SELF_HANDLED, | ||
MOE_NAVIGATION_VALUE | ||
MOE_NAVIGATION_VALUE, | ||
MOE_INAPP_DISPLAY_RULES, | ||
MOE_INAPP_SCREEN_NAME, | ||
MOE_INAPP_CONTEXTS, | ||
MOE_DATA, | ||
ACCOUNT_META | ||
} from "../utils/MoEConstants"; | ||
@@ -69,5 +77,17 @@ import { isValidObject } from "../utils/MoEHelper"; | ||
var dismissInterval = selfHandled[MOE_DISMISSINTERVAL]; | ||
return new MoESelfHandledCampaign(payload, dismissInterval); | ||
let displayRulesPayload = selfHandled[MOE_INAPP_DISPLAY_RULES]; | ||
let displayRules = getMoEInAppRules(displayRulesPayload); | ||
return new MoESelfHandledCampaign(payload, dismissInterval, displayRules); | ||
} | ||
function getMoEInAppRules(json: { [k: string]: any }) { | ||
var screenName = null; | ||
if (json[MOE_INAPP_SCREEN_NAME] != undefined) { | ||
screenName = json[MOE_INAPP_SCREEN_NAME]; | ||
} | ||
var contexts = json[MOE_INAPP_CONTEXTS]; | ||
return new MoEInAppRules(screenName, contexts); | ||
} | ||
function getMoEInAppCustomAction(json: { [k: string]: any }) { | ||
@@ -209,5 +229,24 @@ var customAction = json[MOE_CUSTOM_ACTION] | ||
return new MoEClickData(accountMeta, platform, campaignData, action); | ||
} | ||
else return undefined | ||
} | ||
export function getMoESelfHandledCampaignsDataObj(payload: string) { | ||
const jsonPayload = JSON.parse(payload); | ||
const accountMeta = getMoEAccountMeta(jsonPayload[ACCOUNT_META]); | ||
const selfHandledCampaigns: Array<MoESelfHandledCampaignData> = []; | ||
for (let i = 0; i < jsonPayload.campaigns.length; i++) { | ||
const campaignJson = jsonPayload.campaigns[i]; | ||
const campaignPayload = campaignJson[MOE_DATA]; | ||
if (isSelfHandledCampaignValid(campaignPayload)) { | ||
const campaign = getMoESelfHandledCampaign(campaignPayload); | ||
var platform = campaignPayload[MOE_PLATFORM]; | ||
const campaignData = getMoECampaignData(campaignPayload); | ||
const campaignInfo = new MoESelfHandledCampaignData(accountMeta, platform, campaign, campaignData); | ||
selfHandledCampaigns.push(campaignInfo); | ||
} | ||
} | ||
else return undefined | ||
return new MoESelfHandledCampaignsData(accountMeta, selfHandledCampaigns); | ||
} |
@@ -80,2 +80,9 @@ import type { TurboModule } from 'react-native/Libraries/TurboModule/RCTExport'; | ||
/** | ||
* Call this method to get the multiple eligible Self Handled Campaigns. | ||
* @param payload : Stringified JSON payload | ||
* @returns Stringified list of Self Handled campaigns | ||
*/ | ||
getSelfHandledInApps: (payload: string) => Promise<string>; | ||
/** | ||
* Call this method to update the impressions of self handled inapps. | ||
@@ -196,2 +203,8 @@ * | ||
/** | ||
* Registers for iOS Provisional Push. | ||
*/ | ||
registerForProvisionalPush: () => void; | ||
addListener: (eventType: string) => void; | ||
@@ -198,0 +211,0 @@ removeListeners: (count: number) => void; |
@@ -29,3 +29,9 @@ import MoEngageLogLevel from "../models/MoEngageLogLevel" | ||
export const MOE_IS_CANCELLABLE = 'isCancellable' | ||
export const MOE_CAMPAIGNS = 'campaigns' | ||
// INAPP DISPLAY RULES | ||
export const MOE_INAPP_DISPLAY_RULES = 'displayRules' | ||
export const MOE_INAPP_SCREEN_NAME = 'screenName' | ||
export const MOE_INAPP_CONTEXTS = 'contexts' | ||
//IN APP NAVIGATION | ||
@@ -32,0 +38,0 @@ export const MOE_NAVIGATION_TYPE = 'navigationType' |
@@ -6,10 +6,11 @@ import MoEClickData from "../models/MoEClickData"; | ||
import { MOE_LOCATION } from "./MoEConstants"; | ||
import { MoEPropertiesToJson} from "./MoEObjectToJson"; | ||
import {MoEngagePermissionType} from "../models/MoEngagePermissionType"; | ||
import { MoEPropertiesToJson } from "./MoEObjectToJson"; | ||
import { MoEngagePermissionType } from "../models/MoEngagePermissionType"; | ||
import MoEInitConfig from "../models/MoEInitConfig"; | ||
import MoEngageLogger from "../logger/MoEngageLogger"; | ||
import {MoEngageNudgePosition} from "../models/MoEngageNudgePosition"; | ||
import { MoEngageNudgePosition } from "../models/MoEngageNudgePosition"; | ||
import { MoESupportedAttributes } from "../models/MoESupportedAttributes"; | ||
import MoESelfHandledCampaign from "../models/MoESelfHandledCampaign"; | ||
import MoEInAppRules from "../models/MoEInAppRules"; | ||
export function getInAppCampaignJson(moEInAppData: MoEInAppData, type: string, appId: String) { | ||
@@ -41,3 +42,3 @@ var json: { [k: string]: any } = { | ||
campaignContext: moESelfHandledCampaignData.campaignData.context.attributes, | ||
selfHandled: moESelfHandledCampaignData.campaign, | ||
selfHandled: getSelfHandledCampaignJson(moESelfHandledCampaignData.campaign), | ||
platform: moESelfHandledCampaignData.platform | ||
@@ -86,3 +87,3 @@ } | ||
payload: pushPayload, | ||
service:service | ||
service: service | ||
} | ||
@@ -94,3 +95,3 @@ } | ||
export function getMoEPushTokenJson(pushToken: string, pushService: string, platform: string, appId: String) { | ||
var json: { [k: string]: any} = { | ||
var json: { [k: string]: any } = { | ||
accountMeta: { | ||
@@ -234,7 +235,7 @@ appId: appId | ||
export function getPermissionResponseJson(isGranted: boolean, permissionType: MoEngagePermissionType) { | ||
let json: { [k: string]: any } = { | ||
isGranted: isGranted, | ||
type: permissionType.toLowerCase() | ||
} | ||
return JSON.stringify(json); | ||
let json: { [k: string]: any } = { | ||
isGranted: isGranted, | ||
type: permissionType.toLowerCase() | ||
} | ||
return JSON.stringify(json); | ||
} | ||
@@ -294,1 +295,20 @@ | ||
} | ||
export function getSelfHandledCampaignJson(moESelfHandledCampaign: MoESelfHandledCampaign) { | ||
var json: { [k: string]: any } = { | ||
dismissInterval: moESelfHandledCampaign.dismissInterval, | ||
displayRules: moESelfHandledCampaign.displayRules, | ||
payload: moESelfHandledCampaign.payload | ||
} | ||
MoEngageLogger.verbose("getSelfHandledCampaignJson(): payload json: ", json); | ||
return json; | ||
} | ||
export function getDisplayRulesJson(displayRules: MoEInAppRules) { | ||
var json: { [k: string]: any } = { | ||
contexts: displayRules.contexts, | ||
screenName: displayRules.screenName | ||
} | ||
MoEngageLogger.verbose("getDisplayRulesJson(): payload json: ", json); | ||
return json; | ||
} |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
246617
3.56%88
3.53%2274
6.31%