Vue

Accura IDScan Plugin — Vue 3 Integration Guide

This guide walks you through integrating the Accura IDScan Plugin into a Vue 3 project built with Vite.

Step 1: Initialize Project

If you do not have an existing Vue 3 project, scaffold one using Vite:

npm create vite@latest my-id-app -- --template vue
cd my-id-app
npm install

Step 2: Install Plugin

Install the Accura IDScan Plugin package from the npm registry:

npm install accuraidscanplugin

Step 3: Implementation

Create a dedicated scanner component at components/IDScanner.vue. The following snippet shows only the plugin import and initialization logic:

<script setup>
import { onMounted, onUnmounted } from 'vue';

let plugin = null; // Holds the active plugin instance for lifecycle management

onMounted(async () => {
  // Dynamically import the plugin inside onMounted to guarantee browser-only execution.
  // Vue's onMounted lifecycle hook runs exclusively on the client side,
  // making it safe to access browser APIs such as the camera.
  const { default: IDCardPlugin } = await import('accuraidscanplugin');

  // Instantiate the plugin with:
  //   1. The capture callback invoked when the scan is complete
  //   2. A configuration object specifying card target and UI appearance
  plugin = new IDCardPlugin(
    handleCapture,   // Fired automatically upon successful ID card scan
    {
      countryCode: "UGA",    // Country code of the ID card
      cardCode: "UGNIDF",    // Card code ID front Card
      topTextSize: "",       // Top overlay text size (default if empty)
      topTextColor: "",      // Top overlay text color (default if empty)
      topTextWeight: "",     // Top overlay font weight (default if empty)
      bottomTextSize: "",    // Bottom overlay text size (default if empty)
      bottomTextColor: "",   // Bottom overlay text color (default if empty)
      bottomTextWeight: "",  // Bottom overlay font weight (default if empty)
    }
  );

  // Activate the camera and begin the ID card detection session.
  await plugin.start();
});

// Release camera resources and destroy the plugin when the component unmounts.
onUnmounted(() => {
  if (plugin) {
    plugin.destroy();
  }
});
</script>

Step 4: Response Handling

When the plugin completes an ID card scan, it invokes the handleCapture callback with a payload object that may contain one or both of the following properties:

Property
Type
Description

front

string

Base64 Data URL of the front side of the ID card

back

string

Base64 Data URL of the back side of the ID card (if applicable)

What is Base64? Base64 is a binary-to-text encoding scheme that converts raw binary image data into a sequence of printable ASCII characters. Each scanned card image is delivered as a Data URL string (e.g., data:image/jpeg;base64,/9j/...), combining a MIME type prefix with the encoded image payload. Before transmitting to a server, this string must be decoded back into binary form (a Blob) to construct a valid multipart HTTP request.

The following demonstrates the base64-to-Blob conversion and API submission:


Step 5: Demo Implementation

The following is the complete, production-ready component. Copy and paste it directly into components/IDScanner.vue. The original logic is preserved exactly as-is.


Step 6: Usage

Import and render the component in App.vue:


Step 7: Running the Project

Last updated