Skip to content
Tauri

Barcode Scanner

Allows your mobile application to use the camera to scan QR codes, EAN-13 and other kinds of barcodes.

Supported Platforms

  • Android
  • iOS

Setup

This plugin requires a Rust version of at least 1.64

Install the barcode-scanner plugin to get started.

Use your project’s package manager to add the dependency:

npm run tauri add barcode-scanner

Usage

The barcode scanner plugin is available in JavaScript.

import { scan, Format } from '@tauri-apps/plugin-barcode-scanner';
// when using `"withGlobalTauri": true`, you may use
// const { scan, Format } = window.__TAURI_PLUGIN_BARCODE_SCANNER__;
// `windowed: true` actually sets the webview to transparent
// instead of opening a separate view for the camera
// make sure your user interface is ready to show what is underneath with a transparent element
scan({ windowed: true, formats: [Format.QRCode] });

Permissions

By default all plugin commands are blocked and cannot be accessed. You must define a list of permissions in your capabilities configuration.

See Permissions Overview for more information.

src-tauri/capabilities/mobile.json
{
"$schema": "../gen/schemas/mobile-schema.json",
"identifier": "mobile-capability",
"windows": ["main"],
"platforms": ["iOS", "android"],
"permissions": ["barcode-scanner:allow-scan", "barcode-scanner:allow-cancel"]
}

Default Permission

This permission set configures which barcode scanning features are by default exposed.

Granted Permissions

It allows all barcode related features.

  • allow-cancel
  • allow-check-permissions
  • allow-open-app-settings
  • allow-request-permissions
  • allow-scan
  • allow-vibrate

Permission Table

Identifier Description

barcode-scanner:allow-cancel

Enables the cancel command without any pre-configured scope.

barcode-scanner:deny-cancel

Denies the cancel command without any pre-configured scope.

barcode-scanner:allow-check-permissions

Enables the check_permissions command without any pre-configured scope.

barcode-scanner:deny-check-permissions

Denies the check_permissions command without any pre-configured scope.

barcode-scanner:allow-open-app-settings

Enables the open_app_settings command without any pre-configured scope.

barcode-scanner:deny-open-app-settings

Denies the open_app_settings command without any pre-configured scope.

barcode-scanner:allow-request-permissions

Enables the request_permissions command without any pre-configured scope.

barcode-scanner:deny-request-permissions

Denies the request_permissions command without any pre-configured scope.

barcode-scanner:allow-scan

Enables the scan command without any pre-configured scope.

barcode-scanner:deny-scan

Denies the scan command without any pre-configured scope.

barcode-scanner:allow-vibrate

Enables the vibrate command without any pre-configured scope.

barcode-scanner:deny-vibrate

Denies the vibrate command without any pre-configured scope.


© 2024 Tauri Contributors. CC-BY / MIT