Releases: CleverTap/clevertap-react-native
3.4.0
⚠️ NOTE
Please refer to this guide for changed integration steps for Huawei PushProvider for android.
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v7.3.1.
-
[iOS Platform]
- Supports CleverTap iOS SDK v7.1.1.
API changes
- [Android and iOS Platform]
- Adds new API to register push tokens
- Removes: The legacy token registration APIs have been removed to make push providers injectable. The above mentioned APIs should be used in it's place. The removed APIs include:
setPushToken(value, type)
3.3.0
Refer to the troubleshoot guide if you encounter any errors while upgrading to this version.
What's new
- [Android Platform]
- Supports CleverTap Android SDK v7.2.2.
- Adds support for Android 15, making it compliant with Android 15 requirements. Details here.
- Upgrades the algorithm used for encryption of PII data, making it compliant with OWASP. Uses
AndroidKeyStore
for securely backing up encryption key on API levels 23+. - Updates
minSdkVersion
to API 21 (Android 5.0).
3.2.0
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v7.1.2.
- Adds support to hide large icon in android notifications by sending
wzrk_hide_large_icon
key in notification payload.
-
[iOS Platform]
- Supports CleverTap iOS SDK v7.1.0.
-
[Android and iOS Platform]
- Adds support for triggering InApps based on first-time event filtering in multiple triggers. Now you can create campaign triggers that combine recurring and first-time events. For example: Trigger a campaign when "Charged" occurs (every time) OR "App Launched" occurs (first time only).
- Adds new user-level event log tracking system to store and manage user event history. New APIs include:
getUserEventLog(<eventName>)
: Get details about a specific eventgetUserEventLogCount(<eventName>)
: Get count of times an event occurredgetUserLastVisitTs()
: Get timestamp of user's last app visitgetUserAppLaunchCount()
: Get total number of times user has launched the appgetUserEventLogHistory()
: Get full event history for current user
API Changes
- Deprecates: The old event tracking APIs tracked events at the device level rather than the user level, making it difficult to maintain accurate user-specific event histories, especially in multi-user scenarios. The following methods have been deprecated in favor of new user-specific event tracking APIs that provide more accurate, user-level analytics. These deprecated methods will be removed in future versions with prior notice:
eventGetDetail()
: UsegetUserEventLog()
instead for user-specific event detailseventGetOccurrences()
: UsegetUserEventLogCount()
instead for user-specific event countseventGetFirstTime()
: UsegetUserEventLog()
instead for user-specific first occurrence timestampeventGetLastTime()
: UsegetUserEventLog()
instead for user-specific last occurrence timestampsessionGetPreviousVisitTime()
: UsegetUserLastVisitTs()
instead for user-specific last visit timestampsessionGetTotalVisits()
: UsegetUserAppLaunchCount()
instead for user-specific app launch countgetEventHistory()
: UsegetUserEventLogHistory()
instead for user-specific event history
3.1.1
3.1.0
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v7.0.2.
- Adds support for custom handshake domain configuration in android manifest
-
[iOS Platform]
- Supports CleverTap iOS SDK v7.0.2.
- Adds support for custom handshake domains.
-
[Android and iOS Platform]
- Adds support for File Type Variables in Remote Config. Please refer to the Remote Config Variables doc to read more on how to integrate this in your app.
- Adds support for Custom Code Templates. Please refer to the CustomCodeTemplates.md doc to read more on how to integrate this in your app.
- Adds support for custom code in-app templates definitions through a json scheme.
Bug Fixes
3.0.0
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v7.0.1.
- Removes character limit of maximum 3 lines from
AppInbox
messages. - Deprecates
CleverTapModule.setInitialUri()
in favour ofCleverTapRnAPI.setInitialUri()
. Refer to step 4
-
[iOS Platform]
- Supports CleverTap iOS SDK v7.0.1.
-
[Android and iOS Platform]
- Adds support for triggering InApps based on user attribute changes.
- Migrates the bridge to a backwards-compatible New Architecture Turbo Module.
- The CleverTap ReactNative SDK continues to be compatible with both the Old and the New Architecture.
Breaking Changes
- [Android Platform]
- Ensure that your custom
Application
class, extends theCleverTapApplication
or callsCleverTapRnAPI.initReactNativeIntegration(this);
to enable the functionality ofClevertapPushNotificationClicked
and few other callbacks linked to killed state. Refer to step 3
- Ensure that your custom
Bug Fixes
- [Android Platform]
- Fixes an ANR caused by extremely old InApp campaigns.
- Fixes an issue where incorrect callbacks were sent for InApps when the phone was rotated.
- Fixes an issue where an InApp was displayed even after all the campaigns were stopped.
- Fixes an issue where the InApp image was not shown when the phone was rotated to landscape.
- Fixes an issue where certain URLs loaded incorrectly in custom HTML InApp templates.
2.2.1
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v6.2.1.
-
[iOS Platform]
- Supports CleverTap iOS SDK v6.2.1.
Bug Fixes
-
[Android Platform]
- Fixes a crash due to
IllegalArgumentException
caused by allowedPushTypeXPS
enum.
- Fixes a crash due to
-
[iOS Platform]
- Fixes a build error related to privacy manifests when statically linking the SDK using Cocoapods.
2.2.0
⚠️ NOTE
2.2.0 produces a crash, please update to 2.2.1 and above.
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v6.2.0.
-
[iOS Platform]
- Supports CleverTap iOS SDK v6.2.0.
- Updates privacy manifests.
API Changes
- Removes all Xiaomi related public methods as the Xiaomi SDK has been discontinued. Details here.
- Changes the function definition of
setPushToken
tosetPushToken: function (token, type)
i.e it no more acceptsregion
as a parameter.
Bug Fixes
-
[Android Platform]
- Extends the push primer callback to notify permission denial when cancel button is clicked on
PromptForSettings
alert dialog. - Fixes a crash due to
NullPointerException
related todeviceInfo.deviceId
. - Fixes an ANR related to
isMainProcess
check. - Fixes an ANR due to eager initialisation of
CtApi
triggered by DeviceId generation. - Fixes an android build issue related to
package name not found
for apps withReactNative
version 0.70 or lower.
- Extends the push primer callback to notify permission denial when cancel button is clicked on
-
[iOS Platform]
- Fixes a bug where client side in-apps were not discarded when rendering status is set to "discard".
2.1.0
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v6.1.1.
- Supports Android 14, made it compliant with Android 14 requirements. Details here
- Upgrades AGP to 8.2.2 for building the SDK and adds related consumer proguard rules
- Deprecates Xiaomi public methods as we are sunsetting SDK. Details here.
- Adds Accessibility ids for UI components of SDK
- Migrates JobScheduler to WorkManager for Pull Notifications.
-
[iOS Platform]
- Supports CleverTap iOS SDK v6.1.0.
- Adds privacy manifests for CleverTap-iOS-SDK & CleverTapLocation.
Bug Fixes
-
[Android Platform]
- Fixes InApps crash in a rare activity destroyed race condition
- Fixes Potential ANR in a race condition of SDK initialisation in multithreaded setup
-
[iOS Platform]
- Fixed a crash due to out of bounds in NSLocale implementation.
2.0.0
What's new
-
[Android Platform]
- Supports CleverTap Android SDK v6.0.0.
-
[iOS Platform]
- Supports CleverTap iOS SDK v6.0.0.
-
[Android and iOS Platform]
- Adds support for client-side in-apps.
- Adds new API
clearInAppResources(boolean)
to delete images and gifs which are preloaded for inapps in cs mode - Adds new API
fetchInApps()
to explicitly fetch InApps from the server
Bug Fixes
-
[Android Platform]
- Fixes a bug where JavaScript was not working for custom-html InApp header/footer templates.
- Fixes an NPE related to AppInbox APIs.
- Fixes a ClassCastException in defineVariable API of Product Experiences.
- Fixes a resource name conflict with the firebase library in fcm_fallback_notification_channel_label
- Fixes a StrictMode Violation spawning from ctVariables.init().
- Removes use of lossy conversions leading to an issue in PushTemplates.
- Handles an edge case related to migration of encryption level when local db is out of memory
-
[iOS Platform]
- Fixes a bug where some in-apps were not being dismissed.