Releases: braze-inc/braze-react-native-sdk
Releases · braze-inc/braze-react-native-sdk
9.0.0
Breaking
- Bumps React Native minimum requirement version to 0.71.0.
- For further details about levels of support for each React Native release, refer to Releases Support Policy in the React Working Group.
- Bumps the minimum required iOS version to 12.0.
- Updates the native iOS version bindings from Braze Swift SDK 7.5.0 to 8.1.0.
- Updates the native Android version bindings from Braze Android SDK 29.0.1 to 30.1.1.
8.4.0
Added
- Adds support to modify the allow list for Braze tracking properties via the following TypeScript properties and methods:
TrackingProperty
string enumTrackingPropertyAllowList
object interfaceupdateTrackingPropertyAllowList
method- For details, refer to the Braze iOS Privacy Manifest documentation.
- Deprecates the
setGoogleAdvertisingId
method in favor ofsetAdTrackingEnabled
.- This new method will now set
adTrackingEnabled
flag on iOS and both theadTrackingEnabled
flag and the Google Advertising ID on Android.
- This new method will now set
- Exposes the
ContentCardTypes
enum through the public TypeScript interface inindex.d.ts
. - Updates the native iOS bridge from Braze Swift SDK 7.5.0 to 7.7.0.
Fixed
- Fixes the
hasListeners
property in the iOS native layer to prevent duplicate symbol errors with other libraries. - Addresses redefinition build errors when using the iOS Turbo Module with statically linked frameworks.
8.3.0
Added
- Adds example integrations for Braze Rich Push Notifications and Braze Push Stories to the iOS sample app.
- Updates the native iOS bridge from Braze Swift SDK 7.3.0 to 7.5.0.
- Adds support for React Native 0.73.
- Removes strict Java version dependencies in the
build.gradle
file of the Braze library. - Updates the Braze sample app to use React Native version 0.73.1.
- Removes strict Java version dependencies in the
8.2.0
Added
- Updates the native iOS bridge from Braze Swift SDK 7.1.0 to 7.3.0.
- This release includes compatibility with Expo Notifications. Refer to the push notification setup documentation for more details.
Fixed
- Adds a missing update from Braze Android SDK 29.0.0 to 29.0.1 in the
8.1.0
release.
8.1.0
Added
- Push notification objects are now accessible in the JavaScript layer via new fields on the
PushNotificationEvent
interface.- Deprecates the following fields from the
PushNotificationEvent
interface in favor of the new names that can be used on both iOS and Android:push_event_type
-> Usepayload_type
instead.deeplink
-> Useurl
instead.content_text
-> Usebody
instead.raw_android_push_data
-> Use theandroid
object instead.kvp_data
-> Usebraze_properties
instead.
- Deprecates the following fields from the
- Adds iOS support for the listener event
Braze.Events.PUSH_NOTIFICATION_EVENT
.- On iOS, only
"push_opened"
events are supported, indicating the user interacted with the received notification. - The iOS event does not support the deprecated legacy fields mentioned above.
- On iOS, only
- Adds methods to manually perform the action of an In-App Message or Content Card when using a custom UI.
Braze.performInAppMessageButtonAction(inAppMessage, buttonId)
Braze.performInAppMessageAction(inAppMessage)
Braze.processContentCardClickAction(id)
- Updates the native iOS bridge from Braze Swift SDK 7.0.0 to 7.1.0.
Fixed
- Fixes the
setLastKnownLocation
method to sanitize null inputs before calling the native layer.- This previously caused an issue when calling this method on the legacy React Native architecture.
- Updates the native Android bridge from Braze Android SDK 29.0.0 to 29.0.1.
8.0.0
8.0.0
Breaking
- Updates the native Android bridge from Braze Android SDK 27.0.1 to 29.0.0.
- Updates the native iOS bridge from Braze Swift SDK 6.6.0 to 7.0.0.
- Renames the
Banner
Content Card type toImageOnly
:BannerContentCard
→ImageOnlyContentCard
ContentCardTypes.BANNER
→ContentCardTypes.IMAGE_ONLY
- On Android, if the XML files in your project contain the word
banner
for Content Cards, it should be replaced withimage_only
.
Braze.getFeatureFlag(id)
will now returnnull
if the feature flag does not exist.Braze.Events.FEATURE_FLAGS_UPDATED
will only trigger when a refresh request completes with success or failure, and upon initial subscription if there was previously cached data from the current session.
Added
- Adds
Braze.getUserId()
to get the ID of the current user.
7.0.0
Breaking
- Updates the native Android bridge from Braze Android SDK 26.3.2 to 27.0.1.
Fixed
- Fixes the Android layer to record date custom user attributes as ISO strings instead of integers.
- Fixes a bug introduced in
6.0.0
whereBraze.getInitialUrl()
may not trigger the callback on Android.
Added
- Updates the native iOS bridge from Braze Swift SDK 6.4.0 to 6.6.0.
- Adds support for nested custom user attributes.
- The
setCustomUserAttribute
now accepts objects and arrays of objects. - Adds an optional
merge
parameter to thesetCustomUserAttribute
method. This is a non-breaking change. - Reference our public docs for more information.
- The
- Adds
Braze.setLastKnownLocation()
to set the last known location for the user. - Adds
Braze.registerPushToken()
in the JavaScript layer to post a push token to Braze's servers.- Deprecates
Braze.registerAndroidPushToken()
in favor ofBraze.registerPushToken()
.
- Deprecates
- Adds
Braze.getCachedContentCards()
to get the most recent content cards from the cache, without a refresh. - Adds support for the Feature Flag method
logFeatureFlagImpression(id)
.
6.0.2
Fixed
- Updates the native Android bridge from Braze Android SDK 26.3.1 to 26.3.2.
6.0.1
6.0.0
Breaking
- If you are using the New Architecture, this version requires React Native
0.70
or higher. - Fixes the sample setup steps for iOS apps conforming to
RCTAppDelegate
.⚠️ If your app conforms toRCTAppDelegate
and was following our previousAppDelegate
setup in the sample project or Braze documentation, you will need to reference our updated samples to prevent any crashes from occurring when subscribing to events in the new Turbo Module.⚠️
- If your project contains unit tests that depend on the Braze React Native module, you will need to update your imports to the
NativeBrazeReactModule
file to properly mock the Turbo Module functions in Jest.- For an example, refer to the sample test setup here.
- Updates the native Android bridge from Braze Android SDK 25.0.0 to 26.3.1.
- Fixes the presentation of in-app messages to match the documented behavior.
- Calling
subscribeToInAppMessages
oraddListener
in the Javascript layer will no longer cause a customBrazeInAppMessageUIDelegate
implementation on iOS to be ignored. - Calling
Braze.addListener
for theinAppMessageReceived
event will subscribe in both the Javascript and the native layers (iOS + Android). This means it is no longer required to callBraze.subscribeToInAppMessage
.- Per the Braze documentation, you do not need to explicitly call
subscribeToInAppMessage
to use the default In-App Message UI.
- Per the Braze documentation, you do not need to explicitly call
- See our documentation for more details around Advanced customization.
- Calling
Added
- Migrates the Braze bridge to a backwards-compatible New Architecture Turbo Module.
- This is a non-breaking change to your existing imports of the Braze SDK if you are using React Native
0.70
+. - The Braze SDK continues to be compatible with both the New Architecture and old React Native architecture.
- This is a non-breaking change to your existing imports of the Braze SDK if you are using React Native
- Adds the
getDeviceId
method to replacegetInstallTrackingId
, which is now deprecated. - Updates the native iOS bridge from Braze Swift SDK 6.3.1 to 6.4.0.
- Adds a conditional library namespace to the Android
build.gradle
file to prepare for React Native 0.73, which uses AGP 8.x.- For more details, refer to this React Native announcement.