Como usar o .NET MAUI para um leitor de código QR
Com o aumento de aplicativos móveis aproveitando Códigos QR para recuperação rápida de informações, a necessidade de um scanner de Código QR eficiente e fácil de integrar, bem como um scanner de Código de Barras .NET MAUI para escanear Códigos de Barras está crescendo..NET MAUI (Interface de Aplicativos Multiplataforma), o framework cross-platform da Microsoft, fornece um ambiente unificado para construir aplicativos em 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 aos desenvolvedores gerar e decodificar códigos QR rapidamente, com precisão e confiabilidade. Este artigo irá guiá-lo através da integração do IronQR com .NET MAUI para construir um scanner de Código QR/ Código de Barras que possa funcionar perfeitamente em múltiplas 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 da câmera:
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<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>
<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>
<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ê lidará com as permissões da câmera e a lógica de escaneamento 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;
}
}
}
}
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 Namespace
Explicação do código
- Permissões: Solicitamos permissões da 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";
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.
Perguntas frequentes
Como posso integrar um leitor de código QR em um aplicativo .NET MAUI?
Para integrar um leitor de código QR em um aplicativo .NET MAUI, utilize a biblioteca IronQR, instalando-a via NuGet, e use QrReader.Read() para decodificar os códigos QR.
Quais são os passos para criar um projeto .NET MAUI para leitura de QR Code?
Comece abrindo o Visual Studio, crie um novo projeto usando o modelo de aplicativo .NET MAUI e escolha a versão .NET necessária. Em seguida, instale a biblioteca IronQR para implementar a leitura de QR Code.
Quais permissões são essenciais para a leitura de QR Code em aplicativos .NET MAUI?
A leitura de QR Codes requer permissões da câmera. No Android, adicione as permissões necessárias no AndroidManifest.xml e, no iOS, atualize o Info.plist com uma descrição do uso da câmera.
Como gerenciar as permissões da câmera em um aplicativo .NET MAUI?
Use Permissions.RequestAsync para solicitar permissões de câmera. Lide com a recusa exibindo um alerta para informar o usuário.
Quais são os benefícios de usar a biblioteca IronQR para leitura de QR codes?
O IronQR oferece suporte multiplataforma, alto desempenho, configurações personalizáveis, gerenciamento automático de permissões da câmera e suporte a vários formatos, tornando-o ideal para aplicativos .NET MAUI.
Como posso solucionar problemas de leitura de código QR no meu aplicativo .NET MAUI?
Certifique-se de que a biblioteca IronQR esteja instalada corretamente, que as permissões da câmera estejam concedidas e que a câmera do dispositivo esteja funcionando. Verifique se há erros no código usando blocos try-catch.
O que é necessário para começar a desenvolver com .NET MAUI e leitura de QR Code?
Você precisa do Visual Studio 2022 ou posterior, do SDK .NET 6.0 ou mais recente e do pacote NuGet IronQR para facilitar a leitura de códigos QR e a detecção de códigos de barras.
Como faço para obter uma licença de avaliação para uma biblioteca de códigos QR?
Acesse a página de licenças do IronQR para obter uma chave de licença de avaliação. Insira a chave de licença no seu código antes de utilizar os recursos do IronQR.
Quais formatos a biblioteca IronQR suporta para leitura de QR Code?
O IronQR suporta vários formatos de código QR e código de barras, garantindo sua utilização em diferentes aplicações e plataformas.
Como posso gerar códigos QR em uma aplicação .NET?
Utilize os métodos da biblioteca IronQR para gerar códigos QR de forma eficiente, permitindo que você personalize as configurações de acordo com as necessidades da sua aplicação.



