
Como usar o .NET MAUI para um leitor de código QR
Com o aumento das aplicações móveis utilizando Códigos QR para obtenção rápida de informações, a necessidade por um leitor de Códigos QR eficiente e fácil de integrar, assim como um leitor de Barcode for .NET MAUI, está crescendo. .NET MAUI (Multi-platform App UI), o framework multiplataforma da Microsoft, fornece um ambiente unificado para construção de aplicações para iOS, Android, macOS e Windows. Ao escanear Códigos QR em um aplicativo .NET MAUI, os desenvolvedores precisam de uma biblioteca intuitiva e poderosa para gerenciar o processo.
IronQR é uma biblioteca popular que permite que desenvolvedores gerem e decodifiquem códigos QR rapidamente, com precisão e de forma confiável. Este artigo guiará você na integração do IronQR com .NET MAUI para construir um leitor de Códigos QR/Barcodes que possa trabalhar perfeitamente em várias plataformas.
Como implementar a Escaneamento de Código QR usando IronQR
- Crie um Projeto .NET MAUI.
- Instale o pacote NuGet do IronQR.
- Configure as permissões para câmera e armazenamento de arquivos.
- Implemente o Scanner de Código QR.
Introdução ao IronQR para Aplicativos Móveis .NET MAUI
IronQR é uma biblioteca poderosa e fácil de usar que simplifica a geração e decodificação de Códigos QR em aplicativos .NET, incluindo aplicativos móveis .NET MAUI para funcionalidade de escaneamento de QR e Barcode. Ele oferece soluções rápidas e confiáveis para integrar a funcionalidade de escaneamento de Códigos QR e Barcode em plataformas como iOS, Android, macOS e Windows, o que é essencial para construir aplicativos móveis multiplataforma.
Recursos do IronQR para Aplicativos Móveis .NET MAUI
- Suporte Multiplataforma: Funciona perfeitamente nas plataformas iOS, Android, macOS e Windows dentro de aplicativos MAUI.
- Escaneamento de Código QR: Decodifica eficientemente vários tipos de Códigos QR (URLs, texto, informações de contato, etc.). Ele também suporta múltiplos Barcodes lidos com algoritmos eficientes de detecção de Barcode.
- Geração de Código QR: Permite a fácil geração de Códigos QR a partir de dados como URLs, textos e mais.
- Gerenciamento de Permissão de Câmera: Gera automaticamente as solicitações de permissão de câmera, simplificando o processo de escaneamento.
- Alto Desempenho: Escaneamento e geração de Código QR rápidos e confiáveis com uso mínimo de recursos.
- Configurações Personalizáveis: Oferece opções de personalização para parâmetros de escaneamento e aparência do Código QR.
- Integração Fácil: API simples e configuração mínima são necessárias para adicionar escaneamento e geração de Código QR ao seu aplicativo .NET MAUI.
- Tratamento de Erros: Fornece mensagens de erro detalhadas e resolução de problemas, garantindo uma funcionalidade suave em vários cenários.
- Sem Dependências Externas: O IronQR opera de forma independente, reduzindo a necessidade de bibliotecas de terceiros ou configurações complexas, ao contrário do scanner de Barcode ZXing.
- Suporte a Múltiplos Formatos: Suporta múltiplos formatos de Código QR, garantindo compatibilidade com uma ampla gama de Códigos QR usados no mundo real.
Pré-requisitos
Antes de prosseguir com a implementação, certifique-se de ter os seguintes pré-requisitos:
- Visual Studio 2022 ou posterior instalado.
- .NET 6.0 SDK ou posterior (já que o .NET MAUI é construído no .NET 6 e versões posteriores).
- Pacote NuGet IronQR para escaneamento de Código QR e detecção de Barcode.
- Aplicativo .NET MAUI (Você pode criar um novo aplicativo MAUI no Visual Studio se ainda não tiver um).
Passo 1: Crie um Projeto .NET MAUI
Para começar, vamos criar um projeto simples .NET MAUI:
- Abra o Visual Studio e clique em Criar um novo projeto.
- Selecione o modelo de Aplicativo .NET MAUI.

- Nomeie o projeto (por exemplo, MauiQRCodeScanner), selecione um local e clique em Próximo.

Selecione a versão do .NET necessária e clique em Criar.

Passo 2: Instale o pacote NuGet do IronQR
IronQR é uma biblioteca de terceiros que fornece funcionalidades de geração e escaneamento de Código QR. Para instalar o IronQR, você precisa adicioná-lo via NuGet:
- No Visual Studio, clique com o botão direito em Dependências no seu Explorador de Soluções.
- Clique em Gerenciar Pacotes NuGet.
- Na aba Procurar, pesquise por IronQR e clique em Instalar no pacote relevante (geralmente IronQR ou IronQr.Maui se disponível especificamente para MAUI).
- Aceite quaisquer licenças e certifique-se de que a biblioteca seja instalada.

Passo 3: Configure as Permissões para câmera e armazenamento de arquivos
Para que seu aplicativo escaneie Códigos QR, será necessário solicitar permissões de câmera em plataformas móveis (iOS e Android). Veja como você pode adicionar as seguintes permissões.
Android
No arquivo AndroidManifest.xml, adicione a permissão de câmera:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
iOS
No arquivo Info.plist, adicione a descrição de uso da câmera:
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan QR codes</string>
Passo 4: Implemente o Scanner de Código QR
Agora, vamos criar uma interface de usuário simples para o nosso scanner de QR no aplicativo de escaneamento de Barcode MAUI. Usaremos o Botão para acionar o processo de escaneamento e um Rótulo para exibir o texto escaneado do Código QR.
Edite o arquivo MainPage.xaml no namespace 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>
Agora, no MainPage.xaml.cs, você irá lidar com as permissões da câmera e a lógica de leitura do Código QR. Veja como implementá-lo:
using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;
namespace MauiQRCodeScanner
{
public partial class MainPage : ContentPage
{
public MainPage()
{
License.LicenseKey = "Your key"; // Add your IronQR license key here
InitializeComponent();
}
// OnScanButtonClicked method with object sender as input
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Check for camera permission
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();
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" ' Add your IronQR license key here
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
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()
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 NamespaceExplicação do código
- Permissões: Solicitamos permissões de câmera usando
Permissions.RequestAsync<Permissions.Camera>(). Se a permissão for negada, é mostrada um alerta ao usuário. - Scanner IronQR: Use objetos e métodos da biblioteca IronQR para escanear Códigos QR. O método
QrReader.Read()tenta decodificar os Códigos QR, e o resultado é mostrado no rótulo.
Insira o código QR

Saída

Selecione o Código QR necessário ou capture-o do feed da Câmera.

O resultado é exibido na UI conforme abaixo.

Licença IronQR (Versão de Avaliação Disponível)
O IronQR funciona com uma chave de licença no código do aplicativo móvel. Os desenvolvedores podem obter facilmente uma licença de avaliação na página de licença. Coloque a licença em algum lugar no código como abaixo antes de usar a biblioteca IronQR.
License.LicenseKey = "Your License";License.LicenseKey = "Your License"Conclusão
Neste artigo, percorremos o processo de construção de um scanner de Código QR em uma aplicação .NET MAUI usando IronQR. Começamos configurando um aplicativo .NET MAUI, instalamos o pacote IronQR e implementamos a UI e a lógica de escaneamento. O IronQR torna o escaneamento de Código QR em um aplicativo .NET MAUI incrivelmente simples e eficaz.
A biblioteca IronQR é projetada para ser multiplataforma, garantindo que aplicativos construídos com .NET MAUI possam acessar a funcionalidade de Código QR de maneira consistente em todos os dispositivos-alvo, sejam eles smartphones, tablets ou sistemas de desktop. O IronQR também suporta recursos como o manuseio automático de permissões de câmera, tornando mais fácil integrar o escaneamento de Código QR sem o incômodo de gerenciar permissões manualmente.
Em resumo, o IronQR for .NET MAUI permite que desenvolvedores implementem rapidamente recursos de escaneamento e geração de Código QR em seus aplicativos móveis, simplificando o desenvolvimento e melhorando a experiência do usuário em todas as plataformas.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.
Artigos relacionados


