Skip to content

Latest commit

 

History

History
616 lines (414 loc) · 12.7 KB

configuration-api-reference.md

File metadata and controls

616 lines (414 loc) · 12.7 KB

Configuration API reference

clearUpdatedConfiguration

{% hint style="info" %} This API is only available in Android and iOS (AEP 3.x). {% endhint %}

You can clear any programmatic updates made to the configuration via the clearUpdatedConfiguration API. This will clear programmatic updates to configuration made via the updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict:)(iOS) API. It will also clear any updates to the MobilePrivacyStatus(Android)/ PrivacyStatus(iOS) made via setPrivacyStatus(privacyStatus)(Android)/ setPrivacyStatus(_ status:)(iOS).

Here are some examples of scenarios:

  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict:)(iOS) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithAppId(appId)(Android)/ configureWith(appId:)(iOS)

  • configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS)

  • configureWithFileInAssets(fileName)(Android) -> updateConfiguration(configMap)(Android) -> clearUpdatedConfiguration(): In this example, you end up with the initial configuration set via configureWithFileInAssets(fileName)(Android)

  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android) -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS) -> clearUpdatedConfiguration() -> updateConfiguration(configMap)(Android)/ updateConfigurationWith(configDict)(iOS): In this example, the configuration will be the most recently updated configuration and will not have any keys from the first update unless they are included in the most recent update.

  • configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android) -> setPrivacyStatus(privacyStatus)(Android)/ setPrivacyStatus(_ status:)(iOS) -> clearUpdatedConfiguration(): In this example, the configuration will have the initial MobilePrivacyStatus(Android)/ PrivacyStatus(iOS) set via configureWithAppId(appId)(Android)/configureWith(appId:)(iOS) or configureWithFileInPath(filePath)(Android)/ configureWith(filePath:)(iOS) or configureWithFileInAssets(fileName)(Android).

{% tabs %} {% tab title="Android" %}

Java

Syntax

public static void clearUpdatedConfiguration();

Example

MobileCore.clearUpdatedConfiguration();

{% endtab %}

{% tab title="iOS (AEP 3.x)" %}

Swift

Syntax

static func clearUpdatedConfiguration()

Example

MobileCore.clearUpdatedConfiguration()

Objective-C

Syntax

+ (void) clearUpdatedConfiguration(); 

Example

[AEPMobileCore clearUpdatedConfiguration];

{% endtab %} {% endtabs %}

configureWithAppID

This API causes the SDK to download the configuration for the provided app ID and apply the configuration to the current session.

{% tabs %} {% tab title="Android" %}

Java

Syntax

public static void configureWithAppID(final String appId);

Example

MobileCore.configureWithAppId("1423ae38-8385-8963-8693-28375403491d");

{% endtab %}

{% tab title="iOS (AEP 3.x)" %}

Swift

Syntax

 static func configureWith(appId: String)

Example

 MobileCore.configureWith(appId: "1423ae38-8385-8963-8693-28375403491d")

Objective-C

Syntax

+ (void) configureWithAppId: (NSString* appId);

Example

 [AEPMobileCore configureWithAppId: @"1423ae38-8385-8963-8693-28375403491d"];

{% endtab %}

{% tab title="iOS (ACP 2.x)" %}

Swift

Syntax

static func configure(withAppId: String)

Example

ACPCore.configure(withAppId: "1423ae38-8385-8963-8693-28375403491d")

Objective-C

Syntax

+ (void) configureWithAppId: (NSString* __nullable) appid;

Example

[ACPCore configureWithAppId:@"1423ae38-8385-8963-8693-28375403491d"];

{% endtab %}

{% tab title="Unity" %}

C#

Syntax

public static void ConfigureWithAppID(string appId)

Example

ACPCore.ConfigureWithAppID("1423ae38-8385-8963-8693-28375403491d");

{% endtab %}

{% tab title="Xamarin" %}

C#

Android Syntax

public unsafe static void ConfigureWithAppID (string appId);

iOS Syntax

public static void ConfigureWithAppID (string appid);

Example

ACPCore.ConfigureWithAppID("1423ae38-8385-8963-8693-28375403491d");

{% endtab %} {% endtabs %}

configureWithFileInAssets

{% hint style="info" %} This API is only available in Android and was added in Android was added in Android Core version 1.7.0. {% endhint %}

You can bundle a JSON configuration file in the app's Assets folder to replace or complement the configuration that was downloaded by using the Configure with App ID per environment approach.

{% tabs %} {% tab title="Android" %}

Java

Syntax

public static void configureWithFileInAssets(final String fileName);

Example

MobileCore.configureWithFileInAssets("exampleJSONfile.json");

{% endtab %} {% endtabs %}

configureWithFileInPath

You can include a bundled JSON configuration file in your app package to replace or complement the configuration that was downloaded by using the Configure with App ID per environment approach.

To pass in a bundled path and file name:

{% tabs %} {% tab title="Android" %}

Java

Syntax

public static void configureWithFileInPath(final String filePath);

Example

MobileCore.configureWithFileInPath("absolute/path/to/exampleJSONfile.json");

{% endtab %}

{% tab title="iOS (AEP 3.x)" %}

Swift

Syntax

 static func configureWith(filePath: String)

Example

 let filePath = Bundle.main.path(forResource: "ExampleJSONFile", ofType: "json")
 MobileCore.configureWith(filePath: filePath)

Objective-C

Syntax

+ (void) configureWithFileInPath: (NSString* __nullable) filepath;

Example

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ExampleJSONFile" ofType:@"json"];
 [AEPMobileCore configureWithFilePath:filePath];

{% endtab %}

{% tab title="iOS (ACP 2.x)" %}

Swift

Syntax

static func configureWithFile(inPath: String)

Example

let filePath = Bundle.main.path(forResource: "ExampleJSONFile", ofType: "json")
ACPCore.configureWithFile(inPath: filePath)

Objective-C

Syntax

+ (void) configureWithFileInPath: (NSString* __nullable) filepath;

Example

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"ExampleJSONFile"ofType:@"json"];
[ACPCore configureWithFileInPath:filePath];

{% endtab %}

{% tab title="Xamarin" %}

C#

Android Syntax

public unsafe static void ConfigureWithFileInPath (string filepath);

iOS Syntax

public static void ConfigureWithFileInPath (string filepath);

Example

ACPCore.ConfigureWithFileInPath("absolute/path/to/exampleJSONfile.json");

{% endtab %} {% endtabs %}

extensionVersion

The extensionVersion() API returns the version of the Configuration extension.

To get the version of the Configuration extension, use the following code sample:

{% tabs %} {% tab title="Android" %}

Java

String coreExtensionVersion = MobileCore.extensionVersion();

{% endtab %}

{% tab title="iOS (AEP 3.x)" %}

Swift

let version = MobileCore.extensionVersion

Objective C

NSString *version = [AEPMobileCore extensionVersion];

{% endtab %}

{% tab title="iOS (ACP 2.x)" %}

Objective C

NSString *coreExtensionVersion = [ACPCore extensionVersion];

Swift

let coreExtensionVersion  = ACPCore.extensionVersion()

{% endtab %}

{% tab title="React Native" %}

JavaScript

ACPCore.extensionVersion().then(coreExtensionVersion => console.log("AdobeExperienceSDK: ACPCore version: " + coreExtensionVersion));

{% endtab %}

{% tab title="Flutter" %}

Dart

String coreExtensionVersion = await FlutterACPCore.extensionVersion;

{% endtab %}

{% tab title="Cordova" %}

Cordova

ACPCore.extensionVersion(function(version) {  
   console.log("ACPCore version: " + version);
}, function(error) {  
   console.log(error);  
});

{% endtab %}

{% tab title="Unity" %}

C#

string coreExtensionVersion = ACPCore.ExtensionVersion();

{% endtab %}

{% tab title="Xamarin" %}

C#

string coreExtensionVersion = ACPCore.ExtensionVersion();

{% endtab %} {% endtabs %}

updateConfiguration

You can also update the configuration programmatically by passing configuration keys and values to override the existing configuration.

{% hint style="info" %} Keys that are not found on the current configuration are added when this method is followed. Null values are allowed and replace existing configuration values. {% endhint %}

{% hint style="warning" %} Do not use this API to update the build.environment key or any key with an environment prefix, because it can lead to unexpected behaviors. For more information, read Environment-aware configuration properties. {% endhint %}

{% tabs %} {% tab title="Android" %}

Java

Syntax

public static void updateConfiguration(final Map configMap);

Example

HashMap<String, Object> data = new HashMap<String, Object>();
data.put("global.privacy", "optedout");
MobileCore.updateConfiguration(data);

{% endtab %}

{% tab title="iOS (AEP 3.x)" %}

Swift

Syntax

@objc(updateConfiguration:)
static func updateConfigurationWith(configDict: [String: Any])

Example

 let updatedConfig = ["global.privacy":"optedout"]
 MobileCore.updateConfigurationWith(configDict: updatedConfig)

Objective-C

Syntax

 + (void) updateConfiguration: (NSDictionary* __nullable) config;

Example

 NSDictionary *updatedConfig = @{@"global.privacy":@"optedout"};
 [AEPMobileCore updateConfiguration:updatedConfig];

{% endtab %}

{% tab title="iOS (ACP 2.x)" %}

Swift

Syntax

static func updateConfiguration(_: [String: Any])

Example

let updatedConfig = ["global.privacy":"optedout"]
ACPCore.updateConfiguration(updatedConfig)

Objective-C

Syntax

+ (void) updateConfiguration: (NSDictionary* __nullable) config;

Example

NSDictionary *updatedConfig = @{@"global.privacy":@"optedout"};
[ACPCore updateConfiguration:updatedConfig];

{% endtab %}

{% tab title="React Native" %}

JavaScript

Syntax

updateConfiguration(configMap?: { string: any })

Example

ACPCore.updateConfiguration({"global.privacy":"optedout"});

{% endtab %}

{% tab title="Flutter" %}

Dart

Syntax

static Future<void> updateConfiguration(Map<String, Object> configMap);

Example

FlutterACPCore.updateConfiguration({"global.privacy":"optedout"});

{% endtab %}

{% tab title="Cordova" %}

Javascript

ACPCore.updateConfiguration({"newConfigKey":"newConfigValue"}, successCallback, errorCallback);

{% endtab %}

{% tab title="Unity" %}

C#

Syntax

public static void UpdateConfiguration(Dictionary<string, object> config);

Example

var dict = new Dictionary<string, object>();
dict.Add("newConfigKey", "newConfigValue");
ACPCore.UpdateConfiguration(dict);

{% endtab %}

{% tab title="Xamarin" %}

C#

Syntax

void UpdateConfiguration([NullAllowed] NSDictionary config);

iOS Example

 var config = new NSMutableDictionary<NSString, NSObject>
 {
   ["newConfigKey"] = new NSString("newConfigValue")
 };
ACPCore.UpdateConfiguration(config);

Android Example

var config = new Dictionary<string, Java.Lang.Object>();
config.Add("newConfigKey", "newConfigValue");
ACPCore.UpdateConfiguration(config);

{% endtab %} {% endtabs %}