UNPKG

@leciseau/react-native-emarsys

Version:

A simple bridge between emarsys sdk and react-native

125 lines (100 loc) 2.66 kB
# @leciseau/react-native-emarsys ## 1. Install the React Native Emarsys plugin `$ npm install @leciseau/react-native-emarsys --save` OR `$ yarn add @leciseau/react-native-emarsys` ## 2 Install the native SDK #### iOS (Cocoapods) 1. Go to `/ios` 2. If you don't have a Podfile yet run `pod init` 3. Run `pod install` 4. You should now open your project with the `.xcworkspace` instead of the `.xcodeproj` #### Android (Gradle) 1. Go to `src/app/build.gradle` 2. In `dependencies` add ```gradle dependencies { ... implementation 'com.emarsys:emarsys-sdk:3.1.0' ... } ``` ## 3 Init SDK #### iOS 1. Go to `AppDelegate.m` 2. Add ```objective-c ... #import "EMSConfig.h" #import "Emarsys.h" - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ... EMSConfig *config = [EMSConfig makeWithBuilder:^(EMSConfigBuilder *builder) { [builder setMobileEngageApplicationCode:<applicationCode: NSString>]; [builder setMerchantId:<predictMerchantId: NSString>]; [builder enableConsoleLogLevels:@[<EMSLogLevel.trace, EMSLogLevel.debug, EMSLogLevel.info, EMSLogLevel.warn, EMSLogLevel.error, EMSLogLevel.basic>]]; }]; [Emarsys setupWithConfig:config]; ... } ``` #### Android 1. You should target api 24 as your min SDK in `android/build.gralde` 2. Update ```gradle minSdkVersion = 24 <--- there compileSdkVersion = 29 targetSdkVersion = 29 ``` 3. Go to `MainApplication.java` 4. Add ```java ... import com.emarsys.Emarsys; import com.emarsys.config.EmarsysConfig; @Override public void onCreate() { super.onCreate(); ... EmarsysConfig config = new EmarsysConfig.Builder() .application(this) .applicationCode(<applicationCode:String?>) .merchantId(<merchantId:String?>) .build(); Emarsys.setup(config); } ``` ## Usage ```javascript import RNEmarsys from '@leciseau/react-native-emarsys'; // or import { trackCustomEvent, trackTag, setContact, clearContact, trackCart, trackPurchase, trackItemView, trackCategoryView, trackSearchTerm, } from '@leciseau/react-native-emarsys'; RNEmarsys.trackCustomEvent('myEvent', { toto: "titi" }); RNEmarsys.trackTag('myTag', { toto: "titi" }); RNEmarsys.setContact(contactFieldId, 'userId'); RNEmarsys.clearContact(); RNEmarsys.trackCart([{ item: 'myItem', quantity: '1', price: '12.34', }]); RNEmarsys.trackPurchase('idPurchase', [{ item: 'myItem', quantity: '1', price: '12.34', }]); RNEmarsys.trackItemView('myItemId'); RNEmarsys.trackCategoryView('myCategoryPath'); RNEmarsys.trackSearchTerm('mySearchTerm'); ```