Use this array to declare the specific URL protocols that the SDK can expect to see on incoming links from Iterable, so it knows that it can safely handle them as needed. This array helps prevent the SDK from opening links that use unexpected URL protocols.
To allow the SDK to handle http, tel, and custom links, use code similar to this:
const config = new IterableConfig();
config.allowedProtocols = ["http", "tel", "custom"];
IMPORTANT: Iterable's React Native SDK handles https, action, itbl, and iterable links, regardless of the contents of this array. However, you must explicitly declare any other types of URL protocols you'd like the SDK to handle (otherwise, the SDK won't open them in the web browser or as deep links).
DEPRECATED - please use useInMemoryStorageForInApps as a replacement for this config option.
NOTE: until this option is removed, it will still function with useInMemoryStorageForInApps by
doing an OR operation, so if either this or useInMemoryStorageForInApps are set to true,
the native Android SDK layer will use in memory storage for in-apps.
This specifies the useInMemoryStorageForInApps config option downstream to the Android SDK layer.
OptionalauthA function expression that provides a valid JWT for the app's current user to Iterable's React Native SDK.
Provide an implementation for this method only if your app uses a JWT-enabled API key.
A promise that resolves to an IterableAuthResponse, a string,
or undefined.
To make requests to Iterable's API using a JWT-enabled API key, you should
first fetch a valid JWT for your app's current user from your own server,
which must generate it. The authHandler provides this JWT to Iterable's
React Native SDK, which can then append the JWT to subsequent API requests.
The SDK automatically calls authHandler at various times:
expiringAuthTokenRefreshPeriod)InvalidJwtPayload error code. However, if the SDK receives a second
consecutive 401 with an InvalidJwtPayload error when it makes a request
with the new token, it won't call the authHandler again until you call
setEmail or setUserId without passing in an auth token.TIP: The setEmail and setUserId mobile SDK methods accept an
optional, prefetched auth token. If you encounter SDK errors related to
auth token requests, try using this parameter.
For more information about JWT-enabled API keys, read JWT-Enabled API Keys.
This example demonstrates how an app that uses a JWT-enabled API key might initialize the SDK.
const config = new IterableConfig();
config.authHandler = () => {
// ... Fetch a JWT from your server, or locate one you've already retrieved
return new Promise(function (resolve, reject) {
// Resolve the promise with a valid auth token for the current user
resolve("<AUTH_TOKEN>")
});
};
config.autoPushRegistration = false;
Iterable.initialize('<YOUR_API_KEY>', config);
When set to true (which is the default value), IterableSDK will automatically register and deregister
notification tokens when you provide email or userId values to the SDK using Iterable.setEmail or Iterable.setUserId.
OptionalcustomA function expression used to handle action:// URLs for in-app buttons
and links.
Use this method to determine whether or not the app can handle the clicked
custom action URL. If it can, it should handle the action and return true.
Otherwise, it should return false.
The custom action that was triggered.
The context in which the action was triggered. In other words, information about where the action was invoked.
A boolean indicating whether the action was handled.
A custom action URL has format action://customActionName: an action://
prefix, followed by a custom action name. Decide with your marketing team
on a set of known custom actions your app should support.
WARNING: Earlier versions of the SDK used the itbl:// prefix for custom
action URLs. The SDK still supports these custom actions, but they are
deprecated and will not be supported forever. Migrate to action:// as it's
possible to do so.
This example responds to the action://achievedPremierStatus custom action URL by updating the app's styles and return true. Since this is the only custom action handled by the method, it returns false for anything else.
const config = new IterableConfig();
config.customActionHandler = (action, context) => {
if (action.type == "achievedPremierStatus") {
// For this action, update the app's styles
this.updateAppStyles("premier");
return true;
}
return false;
}
Iterable.initialize('<YOUR_API_KEY>', config);
This specifies the data region which determines the data center and associated endpoints used by the SDK
Android only feature: This controls whether the SDK should enforce encryption for all PII stored on disk. By default, the SDK will not enforce encryption and may fallback to unencrypted storage in case the encryption fails.
The number of seconds before the current JWT's expiration that the SDK should call the
authHandler to get an updated JWT.
Number of seconds between each in-app message when displaying multiple in-app messages in sequence.
Defaults to 30 seconds.
OptionalinImplement this callback to override default in-app behavior.
By default, every single in-app will be shown as soon as it is available. If more than 1 in-app is available, we show the first.
The in-app message to be processed.
A response indicating how the in-app message should be shown.
Set the verbosity of Android and iOS project's log system.
By default, you will be able to see info level logs printed in IDE when running the app.
Set whether the React Native SDK should print function calls to console.
This is for calls within the React Native layer, and is separate from logLevel
which affects the Android and iOS native SDKs
OptionalonA callback function that is called when the SDK encounters an error while validing the JWT.
The retry for JWT should be automatically handled by the native SDK, so this is just for logging/transparency purposes.
The details of the auth failure.
OptionalpushThe name of the Iterable push integration that will send push notifications to your app.
Defaults to your app's application ID or bundle ID for iOS.
Note: Don't specify this value unless you are using an older Iterable push integration that has a custom name. To view your existing integrations, navigate to Settings > Mobile Apps.
This specifies the push platform to use for push notifications. Either sandbox, production, or auto.
The default value is auto, which means the SDK will automatically determine the push platform to use.
However, you can also set this to sandbox or production to force the SDK to use a specific platform.
OptionalretryConfiguration for JWT refresh retry behavior. If not specified, the SDK will use default retry behavior.
OptionalurlA callback function used to handle deep link URLs and in-app message button and link URLs.
The URL to be processed (likely from a click).
The context in which the URL action is being performed. Describes the source of the URL (push, in-app, or universal link) and information about any associated custom actions.
A boolean indicating whether the URL was successfully handled.
Use this method to determine whether or not the app can handle the clicked
URL. If it can, the method should navigate the user to the right content in
the app and return true. Otherwise, it should return false to have the web
browser open the URL.
This example searches for URLs that contain product/, followed by more text. Upon finding this sequence of text, the code displays the appropriate screen and returns true. When it's not found, the app returns false.
const config = new IterableConfig();
config.urlHandler = (url, context) => {
if (url.match(/product/([^/]+)/i)) {
this.navigate(match[1]);
return true; // handled
}
return false; // not handled
};
Iterable.initialize('<YOUR_API_KEY>', config);
This specifies the useInMemoryStorageForInApps config option downstream to the native SDK layers.
It determines whether Android and iOS apps should store in-app messages in memory, rather than in an unencrypted local file (defaults to false).
Please read the respective IterableConfig files for specific details on this config option.
For more information about this option, and the deprecated-but-related
androidSdkUseInMemoryStorageForInApps available in version 1.3.7 of
Iterable's React Native SDK, read the release notes for version 1.3.9.
Converts the IterableConfig instance to a dictionary object.
An object representing the configuration.
A boolean indicating if an authentication handler is present.
TODO: Figure out if this is purposeful
A boolean indicating if a custom action handler is present.
TODO: Figure out if this is purposeful
A boolean indicating if an in-app handler is present.
TODO: Figure out if this is purposeful
The log level for the SDK.
A boolean indicating if a URL handler is present.
TODO: Figure out if this is purposeful
An IterableConfig object sets various properties of the SDK.
An IterableConfig object is passed into the static initialize method on the Iterable class when initializing the SDK.