SDK changelog
11.1.0
Expo
Added configuration field
shouldUseNonNullableIntentto control whether the MainActivity'sonNewIntentmethod uses a nullable or non-nullable Intent parameter on Android. This is required for compatibility with AndroidX Activity 1.9+ which uses non-nullable Intent types. By default, it is set tofalse(nullable Intent) for backwards compatibility. Set it totrueif you're using AndroidX Activity 1.9 or higher.
11.0.0
Plugin
Updated Batch to 3.1
Batch requires iOS 15.0 or higher and Xcode 16.4
Batch now compiles with SDK 36 (Android 16 'Baklava').
This is the last version to support the legacy architecture, as React-Native 0.82 no longer allows opting out, and Expo SDK 54 is the final release to include it.
Push
Added
setShowNotificationsmethod to control whether android push notifications should be displayed.Added
shouldShowNotificationsmethod to check current android notification display settings.Removed
AndroidNotificationTypesenum and related methodsetNotificationTypes. You should now usesetShowNotificationsto control whether Batch should display notifications or not. Note that Batch still preserves your previous values andshouldShowNotificationswill reflect them.
Messaging
Added support for Mobile Landings within the Customer Engagement Platform.
Added support for In-App Automations within the Customer Engagement Platform.
10.1.2
Expo
Fixed a build issue on iOS after pre-building with Expo SDK 53.
Messaging
Fixed an issue on Android (old arch only) where
setFontOverridewas not working.
10.1.1
Expo
Fixed an issue preventing Expo from pre-building on iOS
10.1.0
Plugin
Added Swift/Objective-C module compatibility. You can now directly import module
RNBatchPushinto your Swift files.
Expo
Added support for Expo SDK 53. Since, as of writing, it is still under preview version, this may not works in future versions.
Core
Fixed an issue where opting the SDK after been opted-out would unexpectedly reset default configurations, such as Do Not Disturb setting.
10.0.1
Plugin
Fixed a build issue related to Codegen.
Batch now publish TypeScript source files since Codegen does not support DTS files for Turbo Module Specifications.
10.0.0
Plugin
Updated Batch to 2.1
Batch requires iOS 13.0 or higher.
Batch requires to compile with SDK 35 (Android 15).
Added support for React-Native New Architecture Turbo Module. This requires React-Native 0.71+ when running with new architecture enabled, as Codegen and Turbo Module are fully supported. Batch is still backwards compatible with legacy Native Modules.
Expo
Batch now automatically adds Apple push notification entitlement since it was removed from Expo SDK 51.
Push
Removed deprecated API
registerForRemoteNotifications. Please userequestNotificationAuthorizationto request permission when needed, andrequestTokenat each app launch.
Profile
Added
setPhoneNumberAPI to theBatchProfileAttributeEditorclass. This requires to have a user identifier registered or to call theidentifymethod beforehand.Added
setSMSMarketingSubscriptionAPI to theBatchProfileAttributeEditorclass.
Messaging
Added
messagingCustomPayloadproperty toBatchMessagingEventPayload(only for In-App Message).Added
pushPayloadproperty toBatchMessagingEventPayload(only for Landing Mobile).
Inbox
Added
isSilentproperty toIInboxNotification.Added
setFilterSilentNotificationsmethod toBatchInboxFetcher. Default value is true.⚠️ BREAKING:
bodyproperty fromIInboxNotificationis now nullable since the inbox fetcher may not filter silent notifications.
9.0.2
Expo
Fixed an issue where Batch could miss the first activity start.
9.0.1
Expo
Fixed an issue on iOS where the
RNBatchimport was not added during the Expo pre-build.
9.0.0
This is a major release, please see our migration guide for more info on how to update your current Batch implementation.
Plugin
Batch requires iOS 13.0 or higher.
Batch requires a
minSdklevel of 21 or higher.
iOS
The Batch React-Native plugin now automatically registers its own
UNUserNotificationCenterDelegateand forwards it to the previous one if it exists. This means you no longer need to add[BatchUNUserNotificationCenterDelegate registerAsDelegate]in yourAppDelegate, please delete it. It can be disabled by callingBatchBridgeNotificationCenterDelegate.automaticallyRegister = falsebefore[RNBatch start].
Core
Added method
isOptedOutto checks whether Batch has been opted out from or not.Added method
updateAutomaticDataCollectionto fine-tune the data you authorize to be tracked by Batch.
User
Removed method
trackTransactionwith no equivalent.Removed method
BatchUser.editorand the related classBatchUserEditor, you should now useBatchProfile.editorwhich return an instance ofBatchProfileAttributeEditor.Added method
clearInstallationDatawhich allows you to remove the installation data without modifying the current profile.
Event
This version introduced two new types of attribute that can be attached to an event : Array and Object.
Removed
trackEventAPIs from the user module. You should now useBatchProfile.trackEvent.BatchEventDatahas been renamed intoBatchEventAttributes.Removed
addTagAPI fromBatchEventDataYou should now use the$tagskey withputmethod.Removed parameter
labelfromtrackEventAPI. You should now use the$labelkey inBatchEventAttributeswith theput(string, string)method.Added support for values of type: Array and Object to the
putmethod.
Profile
Introduced BatchProfile, a new module that enables interacting with profiles. Its functionality replaces most of BatchUser used to do.
Added
identifyAPI as replacement ofBatchUser.editor().setIdentifier.Added
editormethod to get a new instance of aBatchProfileAttributeEditoras replacement ofBatchUserEditor.Added
trackEventAPI as replacement of theBatchUser.trackEventmethods.Added
trackLocationAPI as replacement of theBatchUser.trackLocationmethod.
Expo
Added configuration field
enableDefaultOptOutto control whether Batch is opted out from by default. (default: false)Added configuration fields
enableProfileCustomIDMigrationandenableProfileCustomDataMigrationto control whether Batch should trigger the profile migrations (default: true).
8.2.0
Plugin
Updated Batch 1.21.
Batch requires iOS 12.0 or higher.
Batch now compiles with and targets SDK 34 (Android 14).
Added support for react-native 0.73+
Added support for Expo 50.
Fixed an issue on iOS where
refreshTokenwas not running on main thread.
User
Removed automatic collection of the advertising id. You need to collect it from your side and pass it to Batch via the added
BatchUser.editor().setAttributionIdentifier(id)method.Added
setEmailmethod toBatchUserEditor. This requires to have a user identifier registered or to call thesetIdentifiermethod on the editor instance beforehand.Added
setEmailMarketingSubscriptionStatemethod toBatchUserEditor.
Inbox
Added
hasLandingMessageproperty toIInboxNotification.Added
displayNotificationLandingMessagemethod toBatchInboxFetcher.
8.1.2
Plugin
Fixed an issue on Android where
openpush message events queued on cold start were sent before we could register a listener.
8.1.1
Plugin
Fixed an issue where listening for
openpush message events wasn't working on cold start.
8.1.0
Plugin
Plugin now compiles with and targets SDK 33 (Android 13).
Push
Added a new API:
BatchPush.requestNotificationAuthorization(). This allows you to request for the new notification permission introduced in Android 13. See the documentation for more info.
8.0.2
Plugin
Fixed autolinking on react-native 0.69+ and Expo 46
8.0.0 - 8.0.1
Plugin
Updated Batch 1.19. Batch requires Xcode 13.3.1 and iOS 10.0 or higher.
Updated how Batch is imported to support React-Native v0.68 wich now uses Objective-C++.
Added support for Expo 45
User
Added getters for
identifier,language,region,attributesandtagCollectionsinBatchUser.Added a fix where you couldn't use
setLanguageorsetRegionwith a nil value on iOS.
7.0.3
Add support for expo 44
Add ios expo plugin
7.0.2
Add check for active catalyst instance on react context
7.0.1
Add support for Expo plugins for Android (no changes for regular usage)
7.0.0
Batch SDK version
Migrated to Batch SDK v1.18
For iOS:
[BREAKING] Make sure to update your Podfile Batch SDK version
[BREAKING] Batch requires Xcode 13 or higher
Events
Added URL type in event data with
putURL.Added Date type in event data with
putDate.
Attributes
Added URL type in custom attributes with
setURLAttribute.
Messaging
Added
BatchMessaging.addListenerto listen for messaging notifications events. See documentation.
Push
Added
BatchPush.addListenerto listen for push notifications events. See documentation to see platform differences.iOS: Deprecated
BatchPush.registerForRemoteNotificationsby splitting it into two methods:BatchPush.refreshToken, which should be called on every app start after opt-in if you're opted out by default.BatchPush.requestNotificationAuthorization, which should be called whenever you want to ask the user the permission to display notifications.
iOS: Added
requestProvisionalNotificationAuthorizationto request a provisional authorization on iOS 11 and higher.
Bug Fixes
Fix
isUnreadproperty of a Batch inbox notification : it was previously always undefined, now it is correctly set.Fix crash in
trackTransactionwhen it was called without data as second parameter.
6.0.0
Batch SDK version
Migrated to Batch SDK v1.17
For iOS:
[BREAKING] Make sure to update your Podfile Batch SDK version
[BREAKING] Batch requires Xcode 12 and iOS 10.0 or higher
[BREAKING] Make sure to follow again the Extra steps on iOS, a new section has been added about the
BatchUNUserNotificationCenterDelegate(if you haven't implemented a delegate yet)
For Android:
[BREAKING] Make sure to have up-to-date android build tools (see Android blog)
[Android] You can now update the Batch SDK manually with the rootProject ext property
batchSdkVersion. On iOS this was already possible (you set the version in your Podfile)
Mobile landings / In-App messages
Added
BatchMessaging.setFontOverride()so that you can change the font of messaging views (eg. In-app campaigns landings)Added
disableDoNotDisturbAndShowPendingMessagefor quicker setup and to minimize any race condition between disabling do not disturb and showing the pending messageDo not disturb (for mobile landings/in app messages) can now be enabled natively on Android and iOS. 99% of the time on a regular React Native app, you should enable it. See README) to see why and how to handle the new behavior (call
disableDoNotDisturbAndShowPendingMessagewhen ready, or disable do not disturb manually).[BREAKING]
Batch.startis now useless so it has been removed. You must remove any call toBatch.startin your javascript code.[BREAKING] [iOS] the optional argument to
[RNBatch start]native method is now useless so it has been removed. You must replace any[RNBatch start:false]to[RNBatch start]
DX improvements
Chaining Batch User editor is now optional
Added
Batch.showDebugView()so that you can easily debug your Batch installation
Inbox
[BREAKING] [Inbox] Rewrote inbox API to expose every native SDK Inbox methods such as
markNotificationAsRead. You can now implement an infinite loading list of notifications with this API. (see migration examples)
Bug Fixes
[Android] Fix resume count
This removes an error in the logs when receiving a push while in background and potentially fixes issues related to the app going from background to foreground
[BREAKING] In order to migrate, make sure to follow the new
READMEsection on configuring auto-linking
Fixed a GDPR scenario case where the Batch iOS/Android SDK might not be started
Added
BatchPush.getInitialURLto workaround issues on iOS to get the deeplink associated to the notification that opened the app initially.Linking.getInitialURLcan be replaced byBatchPush.getInitialURLon every platforms.[iOS] [Inbox] Fixed a crash when a notification's source was unknown
Exposed promises in critical methods such as
optInin order to prevent potential race conditions[iOS]
showPendingMessagewill now work correctly[Android] Fixed potential crash in
showPendingMessagewhen the activity is not found
Documentation
Added a guide in the doc for GDPR compliance
[iOS] Added a guide in the doc for showing notifications on foreground
Last updated

