@adobe/react-native-aepplaces
v6.0.2
Published
Adobe Experience Platform support for React Native apps.
Downloads
13,126
Readme
React Native AEP Places Extension
@adobe/react-native-aepplaces
is a wrapper around the iOS and Android Adobe Experience Platform Places Extension to allow for integration with React Native applications. Functionality to enable Adobe Places is provided entirely through JavaScript documented below.
Peer Dependencies
The Adobe Experience Platform Optimize extension has the following peer dependency, which must be installed prior to installing the optimize extension:
Installation
See Requirements and Installation instructions on the main page
Install the @adobe/react-native-aepplaces
package:
NPM:
npm install @adobe/react-native-aepplaces
Yarn:
yarn add @adobe/react-native-aepplaces
Usage
Initializing and registering the extension
Initialization of the SDK should be done in native code, documentation on how to initialize the SDK can be found here.
Example:
iOS
@import AEPCore;
@import AEPLifecycle;
@import AEPEdge;
@import AEPPlaces;
@implementation AppDelegate
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[AEPMobileCore setLogLevel: AEPLogLevelDebug];
[AEPMobileCore configureWithAppId:@"yourAppID"];
const UIApplicationState appState = application.applicationState;
[AEPMobileCore registerExtensions:@[AEPEdge.class, AEPMobilePlaces.class] completion:^{
if (appState != UIApplicationStateBackground) {
[AEPMobileCore lifecycleStart:nil];
}
}];
return YES;
}
@end
Android
import com.adobe.marketing.mobile.AdobeCallback;
import com.adobe.marketing.mobile.InvalidInitException;
import com.adobe.marketing.mobile.Lifecycle;
import com.adobe.marketing.mobile.LoggingMode;
import com.adobe.marketing.mobile.MobileCore;
import com.adobe.marketing.mobile.Edge;
import com.adobe.marketing.mobile.Places;
...
import android.app.Application;
...
public class MainApplication extends Application implements ReactApplication {
...
@Override
public void on Create(){
super.onCreate();
...
MobileCore.setApplication(this);
MobileCore.setLogLevel(LoggingMode.DEBUG);
MobileCore.configureWithAppID("your-app-ID");
List<Class<? extends Extension>> extensions = Arrays.asList(
Edge.EXTENSION,
Places.EXTENSION);
MobileCore.registerExtensions(extensions, o -> {
MobileCore.lifecycleStart(null);
});
}
}
Importing the extension:
import {
Places,
PlacesAuthStatus,
PlacesGeofence,
PlacesGeofenceTransitionType,
PlacesLocation,
PlacesPOI,
} from "@adobe/react-native-aepplaces";
API reference
Getting the extension version:
Syntax
extensionVersion(): Promise<string>
Example
const version = await Places.extensionVersion();
console.log(`AdobeExperienceSDK: Places version: ${version}`);
Get the nearby points of interest:
Syntax
getNearbyPointsOfInterest(location, <limit>): Promise<Array<PlacesPOI>>
Example
let location = new PlacesLocation(<latitude>, <longitude>, <optional altitude>, <optional speed>, <optional accuracy>);
try {
const pois = await Places.getNearbyPointsOfInterest(location, <limit>);
console.log(`AdobeExperienceSDK: Places pois: ${pois}`)
} catch(error) {
console.log(`AdobeExperienceSDK: Places error: ${error}`
}
Process geofence:
Syntax
processGeofence(geofence, <transitionType>): void
Example
// create a geofence
let geofence = new PlacesGeofence("geofence Identifier", <latitude>, <longitude>, <radius>, <optional expiration-duration>);
Places.processGeofence(geofence, PlacesGeofenceTransitionType.ENTER);
Places.processGeofence(geofence, PlacesGeofenceTransitionType.EXIT);
Get the current point of interests:
Syntax
getCurrentPointsOfInterest(): Promise<Array<PlacesPOI>>
Example
const pois = await Places.getCurrentPointsOfInterest();
console.log('AdobeExperienceSDK: Places pois: ' + pois);
);
Get the last known location
Syntax
getLastKnownLocation(): Promise<PlacesLocation>
Example
const location = await Places.getLastKnownLocation();
console.log('AdobeExperienceSDK: Places location: ' + location)
);
Clear
Syntax
clear(): void
Example
Places.clear();
Set Authorization status:
Syntax
setAuthorizationStatus(authStatus?: PlacesAuthStatus): void;
Example
Places.setAuthorizationStatus(PlacesAuthStatus.ALWAYS);
Places.setAuthorizationStatus(PlacesAuthStatus.DENIED);
Places.setAuthorizationStatus(PlacesAuthStatus.RESTRICTED);
Places.setAuthorizationStatus(PlacesAuthStatus.WHEN_IN_USE);
Places.setAuthorizationStatus(PlacesAuthStatus.UNKNOWN);