Ir para o conteúdo do rodapé
USANDO O IRONQR

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

  1. Crie um Projeto .NET MAUI.
  2. Instale o pacote NuGet do IronQR.
  3. Configure as permissões para câmera e armazenamento de arquivos.
  4. 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:

  1. Visual Studio 2022 ou posterior instalado.
  2. .NET 6.0 SDK ou posterior (já que o .NET MAUI é construído no .NET 6 e versões posteriores).
  3. Pacote NuGet IronQR para escaneamento de Código QR e detecção de Barcode.
  4. 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:

  1. Abra o Visual Studio e clique em Criar um novo projeto.
  2. Selecione o modelo de Aplicativo .NET MAUI.

Novo Projeto

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

Configuração do Projeto

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

Framework de Destino

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:

  1. No Visual Studio, clique com o botão direito em Dependências no seu Explorador de Soluções.
  2. Clique em Gerenciar Pacotes NuGet.
  3. Na aba Procurar, pesquise por IronQR e clique em Instalar no pacote relevante (geralmente IronQR ou IronQr.Maui se disponível especificamente para MAUI).
  4. Aceite quaisquer licenças e certifique-se de que a biblioteca seja instalada.

IronQR

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" />
XML

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>
XML

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>
XML

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;
        }
        }
    }
}
$vbLabelText   $csharpLabel

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

Entrada de Código QR

Saída

Saída de Código QR

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

Selecionar Código QR

O resultado é exibido na UI conforme abaixo.

UI de Saída de Código QR

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";
$vbLabelText   $csharpLabel

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.

Jordi Bardia
Engenheiro de Software
Jordi é extremamente proficiente em Python, C# e C++, e quando não está utilizando suas habilidades na Iron Software, dedica-se à programação de jogos. Compartilhando as responsabilidades por testes, desenvolvimento e pesquisa de produtos, Jordi agrega imenso valor à melhoria contínua dos produtos. Essa experiência diversificada o mantém ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me