Custom actions
Batch Actions is a module allowing you to register remotely-configurable runnable code to the SDK, when simple deeplinks wouldn't be enough. They can be triggered at any time by the SDK, allowing you to focus on the action code rather than when to trigger it.
Batch comes with builtin actions (deeplinking, user data edition, etc...)
Registering an action
An action has two components:
An identifier (case-unsensitive string), which will allow you to reference this action
While the identifier string is up to you, it cannot start with "batch.": these identifiers are reserved for built-in actions.
An implementation block
Registering them is easy, and should be done every time your app starts, right before starting Batch:
The source argument represents what caused the action to be triggered. You can use isKindOfClass
(or a swift cast using as?
) to check what source it comes from, and read what you need.
Two sources classes are currently used: BatchPushMessage
and BatchManualUserActionSource
. More will be added in the future.
Unregistering an action
Simply call the unregister method with the previously set identifier:
Triggering an action
You might want to re-use the code you've already registered to Batch from your own code by triggering an action.
Simply give Batch the action identifier and arguments, and it will call your action:
Built-in actions
Batch provide a set of pre-defined actions, allowing you to easily trigger a specific behavior without implementing them yourself.
batch.dismiss
batch.dismiss
Simply dismiss the notification and exit
Arguments
N/A
batch.deeplink
batch.deeplink
Open the provided deeplink (will call the Deeplink Interceptor if one is set).
Arguments (required)
l
String - Required
The deeplink to open
E.g.{"l":"https://google.com"}
li
Boolean - Optional - Default false
If true the Batch SDK will try to open your deeplink inside the app
E.g.{"li":false}
batch.ios_request_notifications
batch.ios_request_notifications
Show the notification permissions pop-up.
Arguments
N/A
batch.ios_redirect_settings
batch.ios_redirect_settings
Open the notifications settings of the current application.
Arguments
N/A
batch.ios_smart_reoptin
batch.ios_smart_reoptin
Checks if the user has already been asked for notifications, if not it shows the notification permissions pop-up, otherwise it opens the notifications settings of the current application.
Arguments
N/A
batch.user.tag
batch.user.tag
Add or remove a tag associated with the current user.
Arguments (required)
a
String - Required
The action to perform.
Acceptable values are add and remove
E.g.{"a":"remove"}
c
String - Required
The collection to use when updating the tag
E.g.{"c":"actions"}
t
String - Required
The tag to update
E.g.{"t":"has_bought"}
batch.user.event
batch.user.event
Send an event with associated tags and data.
Arguments (required)
e
String - Required
The name of the event to send
E.g.{"e":"my_awesome_event"}
l
String - Optional - default null
The label associated with the event
E.g.{"l":"label1"}
t
Array - Optional - default empty list
A list of tags to be send with the event
E.g.{"t":["tag1","tag2","tag3"]}
a
Object - Optional - default empty object
The data to send with the event
E.g.{"a":{"key":"value","key2":12,"key3":true}}
batch.group
batch.group
Execute a list of up to 10 nested actions successively.
Arguments (required)
actions
Array - Required
A list of actions to perform. This list must not be longer than 10 elements and can't contains batch.group actions
E.g.{"actions":[["batch.deeplink",{"l":"https://google.com"}],["batch.user.tag",{"add":"..."}]]}
batch.ios_tracking_consent
batch.ios_tracking_consent
On iOS 14, asks for Tracking consent using the AppTrackingTransparency framework. If the user has already been asked and refused to consent, opens the app's settings where tracking can be enabled. Does nothing on iOS 13 and earlier, or if tracking has been restricted by the device's manager. Your application needs to have a 'NSUserTrackingUsageDescription' key in its Info.plist or else iOS will crash it. Available since Batch 1.16.
Arguments
N/A
batch.clipboard
batch.clipboard
Copy a text to the device's clipboard.
Arguments (required)
t
String - Required
The text to copy
E.g.{"t":"My awesome text !"}
batch.rating
batch.rating
On iOS 10.3+, asks for the user to rate the app using SKStoreReviewController (this API's restrictions apply). Available since Batch 1.17.
Arguments
N/A
Last updated
Was this helpful?