@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.
The Adobe Experience Platform Optimize extension has the following peer dependency, which must be installed prior to installing the optimize extension:
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
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);
});
}
}
import {
Places,
PlacesAuthStatus,
PlacesGeofence,
PlacesGeofenceTransitionType,
PlacesLocation,
PlacesPOI,
} from "@adobe/react-native-aepplaces";
Syntax
extensionVersion(): Promise<string>
Example
const version = await Places.extensionVersion();
console.log(`AdobeExperienceSDK: Places version: ${version}`);
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}`
}
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);
Syntax
getCurrentPointsOfInterest(): Promise<Array<PlacesPOI>>
Example
const pois = await Places.getCurrentPointsOfInterest();
console.log('AdobeExperienceSDK: Places pois: ' + pois);
);
Syntax
getLastKnownLocation(): Promise<PlacesLocation>
Example
const location = await Places.getLastKnownLocation();
console.log('AdobeExperienceSDK: Places location: ' + location)
);
Syntax
clear(): void
Example
Places.clear();
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);