Escáner de códigos de barras
Permite que tu aplicación móvil utilice la cámara para escanear códigos QR, EAN-13 y otros tipos de códigos de barras.
Plataformas compatibles
This plugin requires a Rust version of at least 1.77.2
Platform | Level | Notes |
---|---|---|
windows | | |
linux | | |
macos | | |
android | ||
ios |
Instalación
Instala el plugin de escáner de códigos de barras para comenzar.
Usa el gestor de paquetes de tu proyecto para añadir la dependencia:
npm run tauri add barcode-scanner
yarn run tauri add barcode-scanner
pnpm tauri add barcode-scanner
deno task tauri add barcode-scanner
bun tauri add barcode-scanner
cargo tauri add barcode-scanner
-
Ejecuta el siguiente comando en la carpeta
src-tauri
para añadir el plugin a las dependencias del proyecto enCargo.toml
:cargo add tauri-plugin-barcode-scanner --target 'cfg(any(target_os = "android", target_os = "ios"))' -
Modifica
lib.rs
para inicializar el plugin:src-tauri/src/lib.rs #[cfg_attr(mobile, tauri::mobile_entry_point)]pub fn run() {tauri::Builder::default().setup(|app| {#[cfg(mobile)]app.handle().plugin(tauri_plugin_barcode_scanner::init());Ok(())}).run(tauri::generate_context!()).expect("error al ejecutar la aplicación tauri");} -
Instala los enlaces de JavaScript Guest utilizando tu gestor de paquetes de JavaScript preferido:
npm install @tauri-apps/plugin-barcode-scanneryarn add @tauri-apps/plugin-barcode-scannerpnpm add @tauri-apps/plugin-barcode-scannerdeno add npm:@tauri-apps/plugin-barcode-scannerbun add @tauri-apps/plugin-barcode-scanner
Configuración
En iOS, el plugin de escáner de códigos de barras requiere el valor de la propiedad de lista de información NSCameraUsageDescription
, que debe describir por qué tu aplicación necesita utilizar la cámara.
En el archivo src-tauri/Info.ios.plist
, añade el siguiente fragmento:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"> <dict> <key>NSCameraUsageDescription</key> <string>Leer códigos QR</string> </dict></plist>
Uso
El plugin de escáner de códigos de barras está disponible en JavaScript.
import { scan, Format } from '@tauri-apps/plugin-barcode-scanner';// cuando uses `"withGlobalTauri": true`, deberías usar// const { scan, Format } = window.__TAURI__.barcodeScanner;
// `windowed: true` en realidad establece la vista web en transparente// en lugar de abrir una vista separada para la cámara// asegúrate de que tu interfaz de usuario esté lista para mostrar lo que hay debajo con un elemento transparentescan({ windowed: true, formats: [Format.QRCode] });
Permisos
Por defecto, todos los comandos y ámbitos de plugin potencialmente peligrosos están bloqueados y no se pueden acceder. Debes modificar los permisos en tu configuración de capabilities
para habilitar estos.
Consulta la Descripción general de capacidades para obtener más información y la guía paso a paso para utilizar los permisos de plugin.
{ "$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.
This default permission set includes the following:
allow-cancel
allow-check-permissions
allow-open-app-settings
allow-request-permissions
allow-scan
allow-vibrate
Permission Table
Identifier | Description |
---|---|
|
Enables the cancel command without any pre-configured scope. |
|
Denies the cancel command without any pre-configured scope. |
|
Enables the check_permissions command without any pre-configured scope. |
|
Denies the check_permissions command without any pre-configured scope. |
|
Enables the open_app_settings command without any pre-configured scope. |
|
Denies the open_app_settings command without any pre-configured scope. |
|
Enables the request_permissions command without any pre-configured scope. |
|
Denies the request_permissions command without any pre-configured scope. |
|
Enables the scan command without any pre-configured scope. |
|
Denies the scan command without any pre-configured scope. |
|
Enables the vibrate command without any pre-configured scope. |
|
Denies the vibrate command without any pre-configured scope. |
© 2025 Tauri Contributors. CC-BY / MIT