Integrates Adobe Mobile Services SDK as React Native module, enabling applications to use Analytics, Target, Campaign, and Audience Manager.
$ npm install react-native-adbmobile --save
$ react-native link react-native-adbmobile
- In XCode, in the project navigator, right click
Libraries
➜Add Files to [your project's name]
- Go to
node_modules
➜react-native-adbmobile
and addRNADBMobile.xcodeproj
- In XCode, in the project navigator, select your project. Add
libRNADBMobile.a
to your project'sBuild Phases
➜Link Binary With Libraries
- Run your project (
Cmd+R
)
You may also use CocoaPod spec: ios/RNADBMobile.podspec
:
pod "RNADBMobile", :path => '../node_modules/react-native-adbmobile/ios'
- Open up
android/app/src/main/java/[...]/MainActivity.java
- Add
import co.work.RNADBMobilePackage;
to the imports at the top of the file - Add
new RNADBMobilePackage()
to the list returned by thegetPackages()
method
- Append the following lines to
android/settings.gradle
:include ':react-native-adbmobile' project(':react-native-adbmobile').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-adbmobile/android')
- Insert the following lines inside the dependencies block in
android/app/build.gradle
:compile project(':react-native-adbmobile')
Follow
Download the SDK
instructions, we're particularly interested in the ADBMobileConfig.json
,
since is automatically handled by Gradle.
Then add the ADBMobileConfig.json
file to the
android/app/src/main/assets
folder in your Application.
The following permissions are required in your
android/app/src/main/AndroidManifest.xml
:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Life cycle metrics are implemented using React Native's context. If other activities exist, then follow the instructions at Adobe Cloud Center Help: Implement Lifecycle Metrics to ensure accurate crash reporting.
Follow
Download the SDK
instructions, we're particularly interested in the ADBMobileConfig.json
,
since is automatically handled by CocoaPods.
Then add the ADBMobileConfig.json
file as a project asset, it must be
listed under TargetApp ➜ Build Phases ➜ Copy Bundle Resources.
Proceed to TargetApp ➜ Build Phases ➜ Link Binary With Libraries and link to:
libsqlite3.tbd
AdobeMobileLibrary.a // If using manual linkage
libRNADBMobile.a
The last library is the one generated by this project, if using
yarn/npm package react-native-adbmobile
, then include the Xcode
project and it should show in the menu. The project is located at:
node_modules/react-native-adbmobile/ios/RNADBMobile.xcodeproj
The official documentation explains in more detail at Add the SDK and Config File to your Project.
Config.setPushIdentifier()
must be called from your AppDelegate.m
as
in the code snippet below:
- (void) application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
[ADBMobile setPushIdentifier:deviceToken];
}
Analytics.trackBeacon()
needs CLBeacon
and must be called from
one of CLLocationManager.delegate
methods
(reference).
Use the method:
[ADBMobile trackBeacon:beacon data: contextData];
import { Config, Analytics } from 'react-native-adbmobile';
// Setters do not return a value, neither throw errors
Config.setPrivacyStatus(Config.MobilePrivacyStatus.optIn);
// Getters are promises
Config.getUserIdentifier().then(userIdentifier => console.log(userIdentifier));
// Tracking takes an optional 'contextData' as last parameter.
// It's an object to basic types (string, number, boolean)
// or array/object of those.
Analytics.trackAction('anAction')
Analytics.trackState('aState', { key: 'value' })
Open android/
using Android Studio.
This project uses CocoaPods to fetch the SDK:
$ cd ios && pod install