February 2025

We are excited to share the February SDK changelog for our product!

πŸ“˜

Note

Click each SDK header to view the corresponding GitHub repository for release details.

February 19

What's New

  • Adds support for encrypting local storage data via a new config option clevertap.enableLocalStorageEncryption(true).
  • Enables selective encryption for specific data keys to improve data protection.

Bug Fixes

  • Fixes a Cross-Site Scripting (XSS) vulnerability in web popups to mitigate security risks.

February 06

What's New

  • Support for Visual Builder
    • Introduces changelog handling.
    • Introduces dynamic element insertion.

Enhancements

  • Supports custom HTML and JSON templates in Web Native display.

Bug Fixes

  • Fixes a duplicate session issue on slow networks by appending session IDs from the first request response to subsequent backup event queries, ensuring consistency.
  • Adds a check to prevent multiple soft prompts from displaying simultaneously, addressing issues with incorrect prompts appearing in Safari.
  • Improves event processing by adding a validation check to ensure that events and notifications are only triggered for the valid account ID.
  • Optimizes offline event processing by adjusting setOffline behavior to only process events, when the offline state changes from true to false, preventing unintended event triggers.
  • Fixes an issue with the Web Inbox badge in Single Page Applications (SPAs), where the badge was not displaying correctly on route changes.

February 05

What's New

Android

  • Supports CleverTap Android SDK v7.1.2.
  • Supports hiding the large icon in Android notifications by including the wzrk_hide_large_icon key in the notification payload.

iOS

Android and iOS

  • Supports triggering In-App campaigns based on a combination of recurring and first-time events. For example, trigger a campaign every time the App Launched event occurs or the Charged event occurs for the first time.
  • Supports user-level event log tracking system with the help of the following new APIs:
    • getUserEventLog(): Retrieves specific event details.
    • getUserEventLogCount(): Retrieves the count of times an event occurred.
    • getUserLastVisitTs(): Retrieves the timestamp of the most recent app visit by a user.
    • getUserAppLaunchCount(): Retrieves the total number of times a user launched the app.
    • getUserEventLogHistory(): Retrieves the complete event history for the current user.

Important API Changes

The following event tracking APIs previously tracked events at the device level, which made it difficult to maintain accurate user-specific event logs, especially in multi-user scenarios. These APIs have now been deprecated in favor of new user-specific APIs. The deprecated methods will be removed from future versions with a prior notice:

  • eventGetDetail(): Use getUserEventLog()instead.
  • eventGetFirstTime(): Use getUserEventLog() instead.
  • eventGetLastTime(): Use getUserEventLog() instead.
  • eventGetOccurrences(): Use getUserEventLogCount() instead.
  • sessionGetPreviousVisitTime(): Use getUserLastVisitTs() instead.
  • sessionGetTotalVisits(): Use getUserAppLaunchCount() instead.
  • getEventHistory(): Use getUserEventLogHistory() instead.

February 04

What's New

  • Adds new public API isInitialized(context), accessible via SignedCallAPI.getInstance() instance, to retrieve the initialization status.
  • Adds new public API dismissMissedCallNotification(context), accessible via SignedCallAPI.getInstance()instance, to dismiss the missed call notification.

Enhancements

  • Addresses limitations related to microphone access during ongoing calls when the user moves the app to the background. To resolve this, added theFOREGROUND_SERVICE_MICROPHONEpermission within the SDK manifest file. Google Play Console prompts you to declare the usage of this permission and submit a demo video link. For more information, refer to FOREGROUND_SERVICE_MICROPHONE Permission.
  • Enforces network quality checks during call initiation and reception and captures the network latency in the SCEnd system event.

Bug Fixes

  • Fixes the Notification trampoline restrictions introduced in Android 12 and above. These restrictions prevent the system from launching activities directly from the onMissedCallNotificationOpened(context, result) callback, which triggers when the user clicks on the missed call notification.
  • Fixes an issue where the call notification disappears upon clicking the back button on certain devices.