Adobe Experience Platform - Places plugin for Cordova apps
Prerequisites
Cordova is distributed via Node Package Management (aka - npm
).
In order to install and build Cordova applications you will need to have Node.js
installed. Install Node.js.
Once Node.js is installed, you can install the Cordova framework from terminal:
sudo npm install -g cordova
Installation
To start using the Places plugin for Cordova, navigate to the directory of your Cordova app and install the plugin:
cordova plugin add https://github.com/adobe/cordova-acpplaces.git
Check out the documentation for help with APIs
Usage
Getting the SDK version:
ACPPlaces.extensionVersion(function(version){
console.log(version);
}, function(error){
console.log(error);
});
Registering the extension with ACPCore:
Note: It is required to initialize the SDK via native code inside your AppDelegate and MainApplication for iOS and Android respectively. For more information see how to initialize Core.
iOS
#import "ACPPlaces.h"
[ACPPlaces registerExtension];
Android:
import com.adobe.marketing.mobile.Places;
Places.registerExtension();
Clear client side Places plugin data:
ACPPlaces.clear(function(response) {
console.log("Successfully cleared Places data.");
}, function(error){
console.log(error);
});
Get the current POI's that the device is currently known to be within:
ACPPlaces.getCurrentPointsOfInterest(function(response){
console.log("Current POI's: ", response);
}, function(error){
console.log(error);
});
Get the last latitude and longitude stored in the Places plugin:
ACPPlaces.getLastKnownLocation(function(response) {
console.log("Last known location: ", response);
}, function(error){
console.log(error);
});
Get a list of nearby POI's:
var location = {latitude:37.3309422, longitude:-121.8939077};
var limit = 10; // max number of POI's to return
ACPPlaces.getNearbyPointsOfInterest(location, limit, function(response){
console.log("Nearby POI's: ", response);
}, function(error){
console.log(error);
});
Pass a Geofence and transition type to be processed by the Places plugin:
var region = {latitude:37.3309422, longitude:-121.8939077, radius:1000};
var geofence = {requestId:"geofence_id", circularRegion:region, expirationDuration:-1};
ACPPlaces.processGeofence(geofence, geo.transitionType, function(response) {
console.log("Successfully processed geofence: ", geofence);
}, function(error){
console.log(error);
});
Set the authorization status:
ACPPlaces.setAuthorizationStatus(ACPPlaces.AuthorizationStatusAlways, function(response) {
console.log("Successfully set the authorization status.");
}, function(error){
console.log(error);
});
Running Tests
Install cordova-paramedic https://github.com/apache/cordova-paramedic
npm install -g cordova-paramedic
Run the tests
cordova-paramedic --platform ios --plugin . --verbose
cordova-paramedic --platform android --plugin . --verbose
Sample App
A Cordova app for testing the plugin is located in the https://github.com/adobe/cordova-acpsample
. The app is configured for both iOS and Android platforms.
Contributing
Looking to contribute to this project? Please review our Contributing guidelines prior to opening a pull request.
We look forward to working with you!
Licensing
This project is licensed under the Apache V2 License. See LICENSE for more information.