2.2.0 • Published 2 months ago

cordova-clarity v2.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

Introduction

A Cordova plugin that allows integrating Clarity with your Cordova/Ionic application.

Installation

Cordova

cordova plugin add cordova-clarity

Ionic (Capacitor)

Run these commands to add the package:

npm i cordova-clarity cordova-plugin-device
ionic cap sync

Ionic (Cordova)

Run this command to add the package:

ionic cordova plugin add cordova-clarity

Usage

Cordova

var success = function(message) {}
var failure = function(message) {}
var idCallback = function(id) {}
var urlCallback = function(url) {}

let clarityConfig = {
    logLevel: ClarityPlugin.LogLevel.None,
    allowMeteredNetworkUsage: true
}

// Initialize Clarity.
ClarityPlugin.initialize("<ProjectId>", success, failure, clarityConfig);

// Set custom user id.
ClarityPlugin.setCustomUserId("<CustomUserId>", success, failure);

// Set custom session id.
ClarityPlugin.setCustomSessionId("<CustomSessionId>",success, failure);

// Get current session id to correlate with other tools.
ClarityPlugin.getCurrentSessionId(idCallback, failure);

// Get current session url to correlate with other tools.
ClarityPlugin.getCurrentSessionUrl(urlCallback, failure);

// Set custom tag for the current session.
ClarityPlugin.setCustomTag("key", "value", success, failure);

Ionic

Follows the same pattern as Cordova, but you have to define ClarityPlugin and using clarityConfig to set isIonic to true:

declare let ClarityPlugin: any;
var success = function(message: string) {}
var failure = function(message: string) {}

let clarityConfig = {
    logLevel: ClarityPlugin.LogLevel.None,
    allowMeteredNetworkUsage: true, 
    isIonic: true
}

// Initialize Clarity.
ClarityPlugin.initialize("<ProjectId>", success, failure, clarityConfig);

// If you're using Capacitor by Ionic, you might need to limit the plugin scope to Android platform only.
if(Capacitor.getPlatform() === "android"){
    // Call Clarity initialize.
}

Configuration and Initialization arguments

/**
 * Initializes the Clarity plugin with the provided parameters.
 * Note: this function has to be called once in your startup page.
 * 
 * @param projectId     [REQUIRED] The Clarity project id to send data to.
 * @param success     [REQUIRED] A callback to invoke when the initialization process succeeds.
 * @param error     [REQUIRED] A callback to invoke when the initialization process fails.
 * @param config     [OPTIONAL] The clarity config, if not provided default values are used.
*/
function initialize(projectId, success, failure, config = {})


/**
 * The configuration that will be used to customize the Clarity behaviour.
 * 
 * @param isIonic        [OPTIONAL default = false] A flag that determines if this plugin is being used in an Ionic application.
 * @param userId        [OPTIONAL default = null] A custom identifier for the current user. If passed as null, the user id
 *                      will be auto generated. The user id in general is sticky across sessions.
 *                      The provided user id must follow these conditions:
 *                          1. Cannot be an empty string.
 *                          2. Should be base36 and smaller than "1Z141Z4".
 * @param logLevel      [OPTIONAL default = LogLevel.None] The level of logging to show in the device logcat stream.
 * @param allowMeteredNetworkUsage  [OPTIONAL default = false] Allows uploading session data to the servers on device metered network.
 * @param enableWebViewCapture    [OPTIONAL default = true] Allows Clarity to capture the web views DOM content.
 * @param allowedDomains    [OPTIONAL default = ["*"]] The whitelisted domains to allow Clarity to capture their DOM content.
 *                          If it contains "*" as an element, all domains will be captured.
 * @param disableOnLowEndDevices [OPTIONAL default = false] Disable Clarity on low-end devices.
 * @param maximumDailyNetworkUsageInMB [OPTIONAL default = null] Maximum daily network usage for Clarity (null = No limit). When the limit is reached, Clarity will turn on lean mode.
 */

let clarityConfig = {
    isIonic = false,
    userId = null,
    logLevel = ClarityPlugin.LogLevel.None,
    allowMeteredNetworkUsage = false,
    allowedDomains = ["*"],
    disableOnLowEndDevices = false,
    maximumDailyNetworkUsageInMB = null
}

Notes:

  • Clarity requires cordova-android version +11.0.0.

License

MIT

2.2.0

2 months ago

2.1.0

4 months ago

1.0.1

8 months ago

1.0.0

8 months ago

2.0.0

6 months ago

0.0.6

11 months ago

0.0.5

12 months ago

0.0.3

12 months ago

0.0.2

1 year ago

0.0.4

12 months ago

0.0.1

1 year ago

0.0.1-beta.11

1 year ago

0.0.1-beta.7

1 year ago

0.0.1-beta.6

1 year ago