Skip to content

capacitor-community/card-scanner

Repository files navigation


Card Scanner

@capacitor-community/card-scanner

Capacitor plugin for card scanner feature using the Google's Maching Learning Toolkit for Text Recoginition. It is bassed on the Natesh Bhat's plugin.


Maintainers

Maintainer GitHub Social
Luis Alaguna SalahAdDin

Installation

Install the package from the repository(by now):

npm install @capacitor-community/card-scanner
ionic cap update && ionic cap copy && ionic cap sync 

On iOS, no further steps are needed.

On Android:

  • Add the UXCam maven repository to your projects build's graddle script:

    maven {
    	url 'https://sdk.uxcam.com/android/'
    }
  • Register the plugin in your main activity:

import com.getcapacitor.community.uxcam.UXCamPlugin;

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(UXCamPlugin.class);
    }});
  }
}

Configuration

No configuration is required for this plugin.

Supported methods

The following are the UXCam implemented methogs on the plugin, for web plugin, FullStory methods are used:

Name Android iOS Web
startWithKey
setUserIdentity
setUserProperty
setMultiSessionRecord
getEnabledMultiSessionRecord
logEvent
tagScreenName
setAutomaticScreenNameTagging
stopSession

You can find the full list of UXCam methods here and FullStory methods here.

Usage

// Must import the package once to make sure the web support initializes
import "@capacitor-community/uxcam"
import { Plugins } from "@capacitor/core"
import { LogEventProperty, UserProperty } from "@capacitor-community/uxcam"

const { UXCamPlugin } = Plugins

/**
 * Platform: Web/Android/iOS
 * Logs and event.
 * @param eventName: String - Event's name.
 * @param properties?: { [key: string]: string | number } - a optional set of event's properties to include in the log.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115000969072-Send-Events-and-Properties
 */
UXCamPlugin.logEvent(options: LogEventProperty)

/**
 * Platform: Android/iOS
 * Start the UXCam service with the API key.
 * @param UXCamKey: String - UXCam's API key.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115001868272
 */
UXCamPlugin.startWithKey(options: { UXCamKey: string })

/**
 * Platform: Web/Android/iOS
 * Set the user's identifier(a name)
 * @param userIdentity: String - User's identifier.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115000968992-Send-Additional-User-Information
 */
UXCamPlugin.setUserIdentity(options: { userIdentity: string })

/**
 * Platform: Web/Android/iOS
 * Set the user's properties.
 * @param properties: { [key: string]: string | number } - a set of user's properties(as email, phone, age, etc.).
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115000968992-Send-Additional-User-Information
 */
UXCamPlugin.setUserProperty(options: UserProperty)

/**
 * Platform: Android/iOS
 * Enables/disables the multisession record for users.
 * @param recordMultipleSessions: boolean - whether enables multi-session record per user or not.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115000968972-Control-Recording
 */
UXCamPlugin.setMultiSessionRecord(options: { recordMultipleSessions: boolean })

/**
 * Platform: Android/iOS
 * Get the multisession record status.
 * @param
 * @returns Promise<{ value: boolean }> - whether multi-session record per user is enabled or not.
 * https://help.uxcam.com/hc/en-us/articles/115000968972-Control-Recording
 */
UXCamPlugin.getEnabledMultiSessionRecord()

/**
 * Platform: Android/iOS
 * Set the name for a screen view in the application, it requires to dissable the automatic screen name tagging.
 * @param screenName: String - Screen view's name.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/360043007412-Tag-Screen-Name
 */
UXCamPlugin.tagScreenName(options: { screenName: string })

/**
 * Platform: Android/iOS
 * Enables/disables the automatic screen name tagging.
 * @param recordMultipleSessions: boolean - whether enables automatic screen name tagging or not.
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/360043007412-Tag-Screen-Name
 */
UXCamPlugin.setAutomaticScreenNameTagging(options: { enable: boolean }): Promise<void>;

/**
 * Platform: Web/Android/iOS
 * Stops the session record.
 * @param 
 * @returns void
 * https://help.uxcam.com/hc/en-us/articles/115000968972-Control-Recording
 */
UXCamPlugin.stopSession(): Promise<void>

Further info