cordova-clarity

2.3.0 • Public • Published

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);

// Pause Clarity capturing.
ClarityPlugin.pause(success, failure);

// Resume Clarity capturing if paused.
ClarityPlugin.resume(success, failure);

// Returns true if clarity was paused.
ClarityPlugin.isPaused(success, failure);

// 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

Versions

Current Tags

VersionDownloads (Last 7 Days)Tag
2.3.0619latest

Version History

VersionDownloads (Last 7 Days)Published
2.3.0619
2.2.08
2.1.01
2.0.00
1.0.113
1.0.00
0.0.60
0.0.51
0.0.41
0.0.30
0.0.216
0.0.11
0.0.1-beta.110
0.0.1-beta.71
0.0.1-beta.60

Package Sidebar

Install

npm i cordova-clarity

Weekly Downloads

661

Version

2.3.0

License

MIT

Unpacked Size

21.5 kB

Total Files

6

Last publish

Collaborators

  • microsoft1es
  • mshalaby
  • ibrahim_radwan
  • amralaa-msft