UNPKG

emma-react-native-sdk

Version:

React Native EMMA SDK libs and examples

154 lines (145 loc) 4.96 kB
import { NativeModules, Platform } from 'react-native'; import { AddProductParams, IN_APP_TYPE, InAppMessageParams, LoginRegisterUserParams, NativeAd, OpenNativeAdParams, PERMISSION_STATUS, PurchaseRequest, SendInAppParams, SetUserProfileParams, StartOrderParams, StartPushParams, StartSessionParams, TrackEventParams, TrackUserExtraInfoParams, UpdateConversionValueSkad4, } from './types/index.types'; export * from './types/index.types'; const { EmmaReactNative } = NativeModules; export default class EmmaSdk { static startSession(startSessionParams: StartSessionParams): Promise<void> { return EmmaReactNative.startSession(startSessionParams); } static startPush(startPushParams: StartPushParams): void { EmmaReactNative.startPush(startPushParams); } static trackEvent(trackEventParams: TrackEventParams): void { EmmaReactNative.trackEvent(trackEventParams); } /** * @deprecated Use trackUserTags instead */ static trackUserExtraInfo(trackUserExtraInfoParams: TrackUserExtraInfoParams): void { EmmaReactNative.trackUserExtraInfo(trackUserExtraInfoParams); } static trackUserTags(tags: Record<string, string>): void { EmmaReactNative.trackUserTags({ userTags: tags }); } static setEmail(email: string): void { EmmaReactNative.setEmail(email); } static setUserProfile(setUserProfileParams: SetUserProfileParams): void { EmmaReactNative.setUserProfile(setUserProfileParams); } static trackUserLocation(): void { EmmaReactNative.trackUserLocation(); } static loginUser(loginUserParams: LoginRegisterUserParams): void { EmmaReactNative.loginUser(loginUserParams); } static registerUser(registerUserParams: LoginRegisterUserParams): void { EmmaReactNative.registerUser(registerUserParams); } /** * @deprecated Use trackPurchase instead */ static startOrder(startOrderParams: StartOrderParams): void { EmmaReactNative.startOrder(startOrderParams); } /** * @deprecated Use trackPurchase instead */ static addProduct(addProductParams: AddProductParams): void { EmmaReactNative.addProduct(addProductParams); } /** * @deprecated Use trackPurchase instead */ static trackOrder(): void { EmmaReactNative.trackOrder(); } static trackPurchase(purchaseRequest: PurchaseRequest): Promise<void> { return EmmaReactNative.trackPurchase(purchaseRequest); } static inAppMessage(inAppMessageParams: InAppMessageParams): Promise<Array<NativeAd> | null> { if (inAppMessageParams.type === IN_APP_TYPE.BANNER && Platform.OS !== 'android') { return Promise.reject('Banner is unsupported on this device'); } return EmmaReactNative.inAppMessage(inAppMessageParams); } static enableUserTracking(): void { EmmaReactNative.enableUserTracking(); } static disableUserTracking(deleteUser: boolean): void { EmmaReactNative.disableUserTracking(deleteUser); } static isUserTrackingEnabled(): Promise<boolean> { return EmmaReactNative.isUserTrackingEnabled(); } static sendPushToken(token: string): void { EmmaReactNative.sendPushToken(token); } static unregisterPushSystem(): void { EmmaReactNative.unregisterPushSystem(); } static setCustomerId(customerId: string): void { EmmaReactNative.setCustomerId(customerId); } static setUserLanguage(language: string): void { EmmaReactNative.setUserLanguage(language); } static sendInAppImpression(sendInAppParams: SendInAppParams): void { EmmaReactNative.sendInAppImpression(sendInAppParams); } static sendInAppClick(sendInAppParams: SendInAppParams): void { EmmaReactNative.sendInAppClick(sendInAppParams); } static sendInAppDismissedClick(sendInAppParams: SendInAppParams): void { EmmaReactNative.sendInAppDismissedClick(sendInAppParams); } static openNativeAd(openNativeParams: OpenNativeAdParams): void { EmmaReactNative.openNativeAd(openNativeParams); } static requestTrackingWithIdfa(): void { if (Platform.OS === 'ios') { EmmaReactNative.requestTrackingWithIdfa(); } else { console.error(`Unsupported platform: ${Platform.OS}`); } } static areNotificationsEnabled(): Promise<boolean> { if (Platform.OS === 'android') { return EmmaReactNative.areNotificationsEnabled(); } return Promise.resolve(false); } static requestNotificationPermission(): Promise<PERMISSION_STATUS> { if (Platform.OS === 'android') { return EmmaReactNative.requestNotificationPermission(); } return Promise.resolve(PERMISSION_STATUS.UNSUPPORTED); } static updateConversionValue(conversionValue: number) { if (Platform.OS === 'ios') { EmmaReactNative.updateConversionValue(conversionValue); } } static updateConversionValueSkad4(conversionModel: UpdateConversionValueSkad4) { if (Platform.OS === 'ios') { EmmaReactNative.updateConversionValueSkad4(conversionModel); } } }