UTILISATION D'IRONQR

Comment utiliser .NET MAUI pour le scanner de codes QR ?

Publié janvier 13, 2025
Partager:

Introduction

Avec l'essor des applications mobiles utilisant les QR Codes pour une récupération rapide d'informations, le besoin d'un scanner de QR Code efficace et facile à intégrer, ainsi que d'un scanner de codes-barres .NET MAUI pour scanner les codes-barres, est en augmentation..NETMAUI(L'interface utilisateur des applications multiplateformes), le framework multiplateforme de Microsoft, offre un environnement unifié pour créer des applications sur iOS, Android, macOS et Windows. Lors de la numérisation des codes QR dans une application .NET MAUI, les développeurs ont besoin d'une bibliothèque intuitive et puissante pour gérer le processus.

IronQRest une bibliothèque populaire qui permet aux développeurs de générer et de décoder des codes QR rapidement, précisément et de manière fiable. Cet article vous guidera dans l'intégration d'IronQR avec .NET MAUI pour construire un scanner QR/Code-barres qui fonctionne parfaitement sur plusieurs plateformes.

Comment implémenter la numérisation de code-barres QR avec IronQR

  1. Créer un projet .NET MAUI.

  2. Installez le package NuGet IronQR.

  3. Configurer les autorisations pour la caméra et le stockage des fichiers.

  4. Mise en œuvre du scanner de code QR.

Introduction à IronQR pour les applications mobiles .NET MAUI

IronQR est une bibliothèque puissante et facile à utiliser qui simplifie la génération et le décodage des codes QR dans les applications .NET, y compris les applications mobiles .NET MAUI pour la fonctionnalité de numérisation de codes QR et de codes-barres. Il offre des solutions rapides et fiables pour intégrer la fonctionnalité de lecture de codes QR et de codes-barres sur des plateformes telles que iOS, Android, macOS et Windows, ce qui est essentiel pour développer des applications mobiles multiplateformes.

Fonctionnalités d'IronQR pour les applications mobiles .NET MAUI

a. Support multiplateforme** : Fonctionne parfaitement sur les plateformes iOS, Android, macOS et Windows au sein des applications MAUI.

b. Numérisation de QR Code** : Décode efficacement plusieurs types de QR Codes(URLs, texte, informations de contact, etc.). Il prend également en charge la lecture de plusieurs codes-barres avec des algorithmes de détection de codes-barres efficaces.

c. Génération de QR Code : Cela permet la création facile de QR Codes à partir de données telles que les URL, les textes, et plus encore.

d. Gestion des autorisations de la caméra : Gère automatiquement les demandes d'autorisation de la caméra, simplifiant ainsi le processus de numérisation.

**e. Haute performance : Numérisation et génération rapides et fiables de codes QR avec une utilisation minimale des ressources.

f. Paramètres personnalisables : Offre des options de personnalisation pour les paramètres de numérisation et l'apparence des codes QR.

g. Intégration facile** : API simple et configuration minimale requises pour ajouter la numérisation et la génération de codes QR à votre application .NET MAUI.

h. Gestion des erreurs**: Fournit des messages d'erreur détaillés et des conseils de dépannage, garantissant un fonctionnement fluide dans divers scénarios.

i. Aucune dépendance externe : IronQR fonctionne de manière indépendante, réduisant ainsi le besoin de bibliothèques tierces ou de configurations complexes, contrairement au scanner de code-barres ZXing.

**j. Prise en charge multi-format : Prend en charge plusieurs formats de codes QR, garantissant une compatibilité avec une large gamme de codes QR utilisés dans le monde réel.

Pré-requis

Avant de procéder à la mise en œuvre, assurez-vous d'avoir les prérequis suivants :

  1. Visual Studio 2022 ou version ultérieure installé.

  2. SDK .NET 6.0 ou ultérieur(comme .NET MAUI est construit sur .NET 6 et les versions ultérieures).

  3. IronQR NuGet Package pour la numérisation de codes QR et la détection de codes-barres.

  4. Application .NET MAUI(Vous pouvez créer une nouvelle application MAUI dans Visual Studio si vous n'en avez pas déjà une.).

Étape 1 : Créer un projet .NET MAUI

Pour commencer, créons un projet .NET MAUI simple :

  1. Ouvrez Visual Studio et cliquez sur Créer un nouveau projet.

  2. Sélectionnez le modèle .NET MAUI App.

    Nouveau projet

  3. Nommer le projet(par exemple, MauiQRCodeScanner), sélectionnez un emplacement, puis cliquez sur Suivant.

    Configuration du projet

  4. Sélectionnez la version .NET requise et cliquez sur Créer.

    Cadre cible

Étape 2 : Installez le package NuGet IronQR

IronQR est une bibliothèque tierce qui offre des fonctionnalités de génération et de balayage de codes QR. Pour installer IronQR, vous devez l'ajouter via NuGet :

  1. Dans Visual Studio, faites un clic droit sur Dépendances dans votre Explorateur de solutions.

  2. Cliquez sur Gérer les packages NuGet.

  3. Dans l'onglet Parcourir, recherchez IronQR et cliquez sur Installer sur le package correspondant.(habituellement IronQR ou IronQR.Maui si spécifiquement disponible pour MAUI).

  4. Acceptez les licences et assurez-vous que la bibliothèque est installée.

    IronQR

Étape 3 : Configurer les autorisations pour la caméra et le stockage de fichiers

Pour que votre application puisse scanner des codes QR, vous devrez demander les autorisations de la caméra sur les plateformes mobiles.(iOS et Android). Voici comment vous pouvez ajouter les autorisations suivantes à l'intérieur.


Appareil Android : Dans le fichier AndroidManifest.xml, ajoutez l'autorisation de la caméra :
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />

iOS : Dans le fichier Info.plist, ajoutez la description de l'utilisation de la caméra :
<key>NSCameraUsageDescription</key>
<string>Nous avons besoin d'accéder à votre caméra pour scanner des codes QR.</string>

Étape 4 : Implémentation du scanner de code QR

Maintenant, créons une interface utilisateur simple pour notre scanner QR dans l'application de scanner de code-barres MAUI. Nous utiliserons le bouton pour déclencher le processus de numérisation et une étiquette pour afficher le texte du code QR scanné.

Modifiez le fichier MainPage.xaml dans l'espace de noms XML.


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

Maintenant, dans le fichier MainPage.xaml.cs, vous allez gérer les autorisations de la caméra et la logique de numérisation du code QR. Voici comment l'implémenter :

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
VB   C#

Entrer le code QR

Entrée du code QR

Sortie

Sortie du code QR

Sélectionnez le QR Code requis ou capturez-le depuis le flux de la caméra.

Sélectionner le code QR

Le résultat est affiché dans l'interface utilisateur comme suit.

Affichage de l'interface utilisateur de QR Code

Explication du code

Autorisations : Nous demandons les autorisations de la caméra en utilisant Permissions.RequestAsync.(). Si la permission est refusée, une alerte est affichée à l'utilisateur.

Scanner IronQR : Le IronQrCode.Scanner()La classe est utilisée pour scanner les QR Codes. Le ScanAsync()La méthode déclenche la numérisation, et le résultat est stocké dans scanResult. Le texte du code QR scanné est affiché dans le résultatLabel.

Tester le scanner de code QR : Maintenant, vous êtes prêt à tester le scanner de code QR. Lorsque l'application s'exécute, cliquer sur le bouton "Scanner le code QR" lancera le processus de numérisation. Si un code QR valide se trouve devant la caméra, il sera décodé et affiché à l'écran.

Licence IronQR (Essai Disponible)

IronQR fonctionne avec une clé de licence dans le code de l'application mobile. Les développeurs peuvent facilement obtenir une licence d'essai de la part de l'entreprise.licence page. Placez la licence quelque part dans le code comme indiqué ci-dessous avant d'utiliser la bibliothèque IronQR.

License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
VB   C#

Conclusion

Dans cet article, nous avons parcouru le processus de création d'un scanner de code QR dans une application .NET MAUI en utilisant IronQR. Nous avons commencé par configurer une application .NET MAUI, installé le package IronQR et implémenté l'interface utilisateur ainsi que la logique de numérisation. IronQR rend le scan des codes QR dans une application .NET MAUI incroyablement simple et efficace.

La bibliothèque IronQR est conçue pour être multiplateforme, garantissant que les applications développées avec .NET MAUI peuvent accéder aux fonctionnalités du code QR de manière cohérente sur tous les appareils cibles, qu'il s'agisse de smartphones, de tablettes ou de systèmes de bureau. IronQR prend également en charge des fonctionnalités telles que la gestion automatique des autorisations de la caméra, facilitant ainsi l'intégration du scan de codes QR sans avoir à gérer les autorisations manuellement.

En bref, IronQR pour .NET MAUI permet aux développeurs d'implémenter rapidement des fonctionnalités de numérisation et de génération de codes QR dans leurs applications mobiles, simplifiant ainsi le développement et améliorant l'expérience utilisateur sur toutes les plateformes.

< PRÉCÉDENT
Scanner de code QR pour montre intelligente (Tutoriel développeur .NET)
SUIVANT >
Comment générer des codes QR en ASP .NET Core ?