Pruebas en un entorno real
Pruebe en producción sin marcas de agua.
Funciona donde lo necesites.
Con el auge de las aplicaciones móviles que aprovechan los códigos QR para la recuperación rápida de información, la necesidad de un escáner de códigos QR eficiente y fácil de integrar, así como de un escáner de códigos de barras .NET MAUI para escanear códigos de barras, está creciendo..NETMAUI(Interfaz de usuario multiplataforma), el marco multiplataforma de Microsoft, proporciona un entorno unificado para desarrollar aplicaciones en iOS, Android, macOS y Windows. Al escanear códigos QR en una aplicación .NET MAUI, los desarrolladores necesitan una biblioteca intuitiva y poderosa para gestionar el proceso.
IronQRes una biblioteca popular que permite a los desarrolladores generar y decodificar códigos QR de manera rápida, precisa y confiable. Este artículo te guiará a través de la integración de IronQR con .NET MAUI para construir un escáner de códigos QR y de barras que pueda funcionar perfectamente en múltiples plataformas.
Crear proyecto .NET MAUI.
Instala el paquete NuGet de IronQR.
Configurar permisos para la cámara y el almacenamiento de archivos.
IronQR es una potente y fácil de usar biblioteca que simplifica la generación y decodificación de códigos QR en aplicaciones .NET, incluidas las aplicaciones móviles .NET MAUI para la funcionalidad de escaneo de QR y código de barras. Proporciona soluciones rápidas y fiables para integrar la funcionalidad de escaneo de códigos QR y códigos de barras en plataformas como iOS, Android, macOS y Windows, lo cual es esencial para desarrollar aplicaciones móviles multiplataforma.
a. Compatibilidad entre plataformas: Funciona perfectamente en plataformas iOS, Android, macOS y Windows dentro de las aplicaciones MAUI.
b. Escaneo de códigos QR: Decodifica eficientemente varios tipos de códigos QR(URLs, texto, información de contacto, etc.). También admite la lectura de múltiples códigos de barras con eficientes algoritmos de detección de códigos de barras.
c. Generación de códigos QR: Esto permite la generación fácil de códigos QR a partir de datos como URL, textos y más.
d. Manejo de Permisos de Cámara: Gestiona automáticamente las solicitudes de permisos de cámara, simplificando el proceso de escaneo.
e. Alto Rendimiento**: Escaneo y generación de códigos QR rápida y confiable con un uso mínimo de recursos.
f. Configuraciones personalizables**: Ofrece opciones de personalización para los parámetros de escaneo y la apariencia del código QR.
g. Integración fácil**: API simple y configuración mínima requerida para añadir el escaneo y generación de códigos QR a tu aplicación .NET MAUI.
h. Manejo de Errores: Ofrece mensajes de error detallados y resolución de problemas, asegurando una funcionalidad fluida en varios escenarios.
yo. Sin dependencias externas: IronQR opera de manera independiente, reduciendo la necesidad de bibliotecas de terceros o configuraciones complejas, a diferencia del escáner de códigos de barras ZXing.
j. Soporte Multiformato: Admite múltiples formatos de código QR, asegurando la compatibilidad con una amplia gama de códigos QR usados en el mundo real.
Antes de proceder con la implementación, asegúrese de tener los siguientes requisitos previos:
Visual Studio 2022 o posterior instalado.
SDK de .NET 6.0 o posterior(como .NET MAUI está basado en .NET 6 y versiones posteriores).
Paquete NuGet de IronQR para escaneo de códigos QR y detección de códigos de barras.
Para empezar, vamos a crear un proyecto simple de .NET MAUI:
Abra Visual Studio y haga clic en Crear un nuevo proyecto.
Seleccione la plantilla .NET MAUI App.
Nombrar el proyecto(p. ej., MauiQRCodeScanner), selecciona una ubicación y haz clic en Siguiente.
Seleccione la versión .NET requerida y haga clic en Crear.
IronQR es una biblioteca de terceros que proporciona funcionalidades de generación y escaneo de códigos QR. Para instalar IronQR, necesitas agregarlo a través de NuGet:
En Visual Studio, haz clic derecho en las Dependencias en tu Explorador de Soluciones.
Haz clic en Administrar paquetes NuGet.
En la pestaña Browse, busca IronQR y haz clic en Install en el paquete correspondiente.(normalmente IronQR o IronQR.Maui si está específicamente disponible para MAUI).
Acepte cualquier licencia y asegúrese de que la biblioteca se instale.
Para que su aplicación escanee códigos QR, necesitará solicitar permisos de cámara en plataformas móviles.(iOS y Android). A continuación se muestra cómo puede agregar los siguientes permisos dentro.
Dispositivo Android: En el archivo AndroidManifest.xml, añade el permiso de cámara:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
iOS: En el archivo Info.plist, añade la descripción del uso de la cámara:
<key>NSCameraUsageDescription</key>
<string>Necesitamos acceso a tu cámara para escanear códigos QR.</string>
Ahora, vamos a crear una interfaz de usuario simple para nuestro escáner de QR en la aplicación de escáner de códigos de barras de MAUI. Usaremos un botón para iniciar el proceso de escaneo y una etiqueta para mostrar el texto del código QR escaneado.
Edita el archivo MainPage.xaml en el espacio de nombres XML.
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MauiQRCodeScanner.MainPage">
<StackLayout Padding="20" VerticalOptions="Center">
<Button x:Name="scanButton" Text="Scan QR Code" Clicked="OnScanButtonClicked" />
<Label x:Name="resultLabel" Text="Scan Result will appear here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
</StackLayout>
</ContentPage>
Ahora, en el archivo MainPage.xaml.cs, manejarás los permisos de la cámara y la lógica de escaneo del código QR. Aquí se muestra cómo implementarlo:
using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;
namespace MauiQRCodeScanner;
public partial class MainPage : ContentPage
{
public MainPage()
{
License.LicenseKey = "Your key";
InitializeComponent();
}
// OnScanButtonClicked method with object sender as input
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Check for camera permission for var barcode with clear and valid reason
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
return;
}
// Start scanning QR codes
try
{
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var imageSource = images.FullPath.ToString();
// barcodeImage.Source = imageSource;
var inputBmp = AnyBitmap.FromFile(imageSource);
// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create a QR Reader object
QrReader reader = new QrReader();
// Read the input and get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
if (results.Any())
{
resultLabel.Text = "Scanned Text: " + results.First().Value;
// Display the result
}
else
{
resultLabel.Text = "No QR code detected";
}
}
catch (Exception ex)
{
resultLabel.Text = "Error: " + ex.Message;
}
}
}
using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;
namespace MauiQRCodeScanner;
public partial class MainPage : ContentPage
{
public MainPage()
{
License.LicenseKey = "Your key";
InitializeComponent();
}
// OnScanButtonClicked method with object sender as input
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Check for camera permission for var barcode with clear and valid reason
var status = await Permissions.RequestAsync<Permissions.Camera>();
if (status != PermissionStatus.Granted)
{
await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
return;
}
// Start scanning QR codes
try
{
var images = await FilePicker.Default.PickAsync(new PickOptions
{
PickerTitle = "Pick image",
FileTypes = FilePickerFileType.Images
});
var imageSource = images.FullPath.ToString();
// barcodeImage.Source = imageSource;
var inputBmp = AnyBitmap.FromFile(imageSource);
// Load the asset into QrImageInput
QrImageInput imageInput = new QrImageInput(inputBmp);
// Create a QR Reader object
QrReader reader = new QrReader();
// Read the input and get all embedded QR Codes
IEnumerable<QrResult> results = reader.Read(imageInput);
if (results.Any())
{
resultLabel.Text = "Scanned Text: " + results.First().Value;
// Display the result
}
else
{
resultLabel.Text = "No QR code detected";
}
}
catch (Exception ex)
{
resultLabel.Text = "Error: " + ex.Message;
}
}
}
Imports IronQrCode
Imports Microsoft.Maui.Controls
Imports Microsoft.Maui.Essentials
Namespace MauiQRCodeScanner
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
License.LicenseKey = "Your key"
InitializeComponent()
End Sub
' OnScanButtonClicked method with object sender as input
Private Async Sub OnScanButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
' Check for camera permission for var barcode with clear and valid reason
Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
If status <> PermissionStatus.Granted Then
Await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK")
Return
End If
' Start scanning QR codes
Try
Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
.PickerTitle = "Pick image",
.FileTypes = FilePickerFileType.Images
})
Dim imageSource = images.FullPath.ToString()
' barcodeImage.Source = imageSource;
Dim inputBmp = AnyBitmap.FromFile(imageSource)
' Load the asset into QrImageInput
Dim imageInput As New QrImageInput(inputBmp)
' Create a QR Reader object
Dim reader As New QrReader()
' Read the input and get all embedded QR Codes
Dim results As IEnumerable(Of QrResult) = reader.Read(imageInput)
If results.Any() Then
resultLabel.Text = "Scanned Text: " & results.First().Value
' Display the result
Else
resultLabel.Text = "No QR code detected"
End If
Catch ex As Exception
resultLabel.Text = "Error: " & ex.Message
End Try
End Sub
End Class
End Namespace
Seleccione el código QR necesario o captúrelo desde la transmisión de la cámara.
El resultado se muestra en la interfaz de usuario como se indica a continuación.
Permisos: Solicitamos permisos de cámara utilizando Permissions.RequestAsync
Escáner IronQR: The IronQrCode.Scanner()La clase se utiliza para escanear códigos QR. El ScanAsync()el método activa el escaneo y el resultado se almacena en scanResult. El texto del código QR escaneado se muestra en el resultLabel.
Probando el escáner de códigos QR: Ahora, estás listo para probar el escáner de códigos QR. Cuando se ejecute la aplicación, al hacer clic en el botón "Escanear código QR" se iniciará el proceso de escaneo. Si un código QR válido está frente a la cámara, se decodificará y se mostrará en la pantalla.
IronQR funciona con una clave de licencia en el código de la aplicación móvil. Los desarrolladores pueden obtener fácilmente una licencia de prueba desde el licencia página. Coloca la licencia en algún lugar del código como se muestra a continuación antes de usar la biblioteca IronQR.
License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
En este artículo, recorrimos el proceso de construir un escáner de código QR en una aplicación .NET MAUI utilizando IronQR. Comenzamos configurando una aplicación .NET MAUI, instalamos el paquete IronQR e implementamos la interfaz de usuario y la lógica de escaneo. IronQR hace que el escaneo de códigos QR en una aplicación .NET MAUI sea increíblemente simple y efectivo.
La biblioteca IronQR está diseñada para ser multiplataforma, asegurando que las aplicaciones construidas con .NET MAUI puedan acceder a la funcionalidad de Código QR de manera consistente en todos los dispositivos objetivo, ya sean teléfonos inteligentes, tabletas o sistemas de escritorio. IronQR también admite funciones como la gestión automática de permisos de cámara, lo que facilita la integración del escaneo de códigos QR sin la complicación de gestionar los permisos manualmente.
En resumen, IronQR for .NET MAUI permite a los desarrolladores implementar rápidamente funciones de escaneo y generación de códigos QR en sus aplicaciones móviles, agilizando el desarrollo y mejorando la experiencia del usuario en todas las plataformas.
10 productos API de .NET para sus documentos de oficina