Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment utiliser .NET MAUI pour un scanner de code QR

Avec la montée des applications mobiles utilisant les codes QR pour un accès rapide aux informations, le besoin d'un scanner de codes QR efficace et facile à intégrer ainsi que d'un scanner de codes-barres .NET MAUI pour scanner les codes-barres croît. .NET MAUI (Multi-platform App UI), 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.

IronQR est 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 à travers l'intégration d'IronQR avec .NET MAUI pour créer un scanner de QR/codes-barres qui peut fonctionner en toute transparence sur plusieurs plateformes.

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

  1. Créer un projet .NET MAUI.
  2. Installer le package NuGet IronQR.
  3. Configurer les autorisations pour la caméra et le stockage de fichiers.
  4. Implémenter le scanner de codes 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 de codes QR dans les applications .NET, y compris les applications mobiles .NET MAUI pour les fonctionnalités de numérisation de QR et de codes-barres. Il fournit des solutions rapides et fiables pour intégrer les fonctionnalités de numérisation de codes QR et de codes-barres sur des plateformes telles qu'iOS, Android, macOS et Windows, ce qui est essentiel pour créer des applications mobiles multiplateformes.

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

  • Support multiplateforme : Fonctionne de manière transparente sur les plateformes iOS, Android, macOS et Windows au sein des applications MAUI.
  • Numérisation de codes QR : Décode efficacement divers types de codes QR (URLs, texte, informations de contact, etc.). Il prend également en charge plusieurs lectures de codes-barres avec des algorithmes de détection de codes-barres efficaces.
  • Génération de codes QR : Cela permet la génération facile de codes QR à partir de données telles que des URLs, des textes et plus.
  • Gestion des autorisations de la caméra : Gère automatiquement les demandes d'autorisations de la caméra, simplifiant le processus de numérisation.
  • Haute performance : Numérisation et génération de codes QR rapides et fiables avec une utilisation minimale des ressources.
  • Paramètres personnalisables : Offre des options de personnalisation pour les paramètres de numérisation et l'apparence des codes QR.
  • Intégration facile : API simple et configuration minimale requise pour ajouter la numérisation et la génération de codes QR à votre application .NET MAUI.
  • Gestion des erreurs : Fournit des messages d'erreur détaillés et un dépannage, garantissant un bon fonctionnement dans divers scénarios.
  • Pas de dépendances externes : IronQR fonctionne de manière indépendante, réduisant le besoin de bibliothèques tierces ou de configurations complexes, contrairement au scanner de codes-barres ZXing.
  • Support multi-formats : 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 poursuivre l'implémentation, assurez-vous d'avoir les prérequis suivants :

  1. Visual Studio 2022 ou version ultérieure installé.
  2. .NET 6.0 SDK ou version ultérieure (car .NET MAUI est construit sur .NET 6 et les versions ultérieures).
  3. Package NuGet IronQR 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 simple projet .NET MAUI :

  1. Ouvrez Visual Studio et cliquez sur Créer un nouveau projet.
  2. Sélectionnez le modèle Application .NET MAUI.

Nouveau projet

  1. Nommez le projet (par exemple, MauiQRCodeScanner), sélectionnez un emplacement et cliquez sur Suivant.

Configuration du projet

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

Framework cible

Étape 2 : Installer le package NuGet IronQR

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

  1. Dans Visual Studio, cliquez avec le bouton droit sur Dépendances dans votre Explorateur de solution.
  2. Cliquez sur Gérer les packages NuGet.
  3. Dans l'onglet Parcourir, recherchez IronQR et cliquez sur Installer sur le package pertinent (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 scanne des codes QR, vous devrez demander des autorisations pour la caméra sur les plateformes mobiles (iOS et Android). Voici comment vous pouvez ajouter les autorisations suivantes.

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" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
XML

iOS

Dans le fichier Info.plist, ajoutez la description d'utilisation de la caméra :

<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

Étape 4 : Implémenter le scanner de codes QR

Maintenant, créons une simple interface utilisateur pour notre scanner QR dans l'application du scanner de codes-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.

<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

Maintenant, dans le MainPage.xaml.cs, vous allez gérer les autorisations de la caméra et la logique de numérisation de codes 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";  // 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
$vbLabelText   $csharpLabel

Explication du code

  • Autorisations : Nous demandons les permissions de la caméra en utilisant Permissions.RequestAsync<Permissions.Camera>(). Si la permission est refusée, l'utilisateur voit une alerte.
  • Scanner IronQR : Utilisez des objets et des méthodes de la bibliothèque IronQR pour scanner les codes QR. La méthode QrReader.Read() tente de décoder les codes QR, et le résultat est affiché sur l'étiquette.

Entrée du code QR

Entrée du code QR

Sortie

Sortie du code QR

Sélectionnez le code QR requis ou capturez-le à partir du flux de la caméra.

Sélectionnez le code QR

Le résultat est affiché dans l'interface utilisateur comme ci-dessous.

Sortie de l'interface utilisateur du code QR

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 sur la page de la licence. Placez la licence quelque part dans le code comme ci-dessous avant d'utiliser la bibliothèque IronQR.

License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
$vbLabelText   $csharpLabel

Conclusion

Dans cet article, nous avons parcouru le processus de création d'un scanner de codes 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 et la logique de numérisation. IronQR rend la numérisation de 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 construites avec .NET MAUI peuvent accéder aux fonctionnalités des codes 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, ce qui facilite l'intégration de la numérisation de codes QR sans la contrainte de gérer manuellement les autorisations.

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

Questions Fréquemment Posées

Comment puis-je intégrer un scanner de code QR dans une application .NET MAUI ?

Pour intégrer un scanner de code QR dans une application .NET MAUI, utilisez la bibliothèque IronQR en l'installant via NuGet, et utilisez QrReader.Read() pour décoder les codes QR.

Quelles sont les étapes pour créer un projet .NET MAUI pour numériser des QR ?

Commencez par ouvrir Visual Studio, créez un nouveau projet en utilisant le modèle d'Application .NET MAUI, et choisissez la version .NET nécessaire. Ensuite, installez la bibliothèque IronQR pour implémenter la numérisation de QR.

Quelles autorisations sont essentielles pour la numérisation de QR dans les applications .NET MAUI ?

La numérisation de QR nécessite des autorisations pour la caméra. Sur Android, ajoutez les autorisations nécessaires dans AndroidManifest.xml, et sur iOS, mettez à jour le Info.plist avec une description de l'utilisation de la caméra.

Comment gérer les autorisations de caméra dans une application .NET MAUI ?

Utilisez Permissions.RequestAsync<Permissions.Camera>() pour demander les autorisations de caméra. Gérez le refus en affichant une alerte pour informer l'utilisateur.

Quels sont les avantages d'utiliser la bibliothèque IronQR pour la numérisation de QR ?

IronQR offre une prise en charge multiplateforme, une haute performance, des paramètres personnalisables, une gestion automatique des autorisations de caméra et une prise en charge multi-format, ce qui le rend idéal pour les applications .NET MAUI.

Comment puis-je dépanner les problèmes de numérisation de code QR dans mon application .NET MAUI ?

Assurez-vous que la bibliothèque IronQR est correctement installée, que les autorisations pour la caméra sont accordées et que la caméra de l'appareil fonctionne. Vérifiez les erreurs éventuelles dans le code en utilisant des blocs try-catch.

Que faut-il pour commencer à développer avec .NET MAUI et la numérisation de QR ?

Vous avez besoin de Visual Studio 2022 ou d'une version ultérieure, du SDK .NET 6.0 ou plus récent, et du package NuGet IronQR pour faciliter la numérisation de codes QR et la détection de codes-barres.

Comment obtenir une licence d'essai pour une bibliothèque de codes QR ?

Visitez la page de licence IronQR pour obtenir une clé de licence d'essai. Insérez la clé de licence dans votre code avant d'utiliser les fonctionnalités d'IronQR.

Quels formats la bibliothèque IronQR prend-elle en charge pour la numérisation de QR ?

IronQR prend en charge plusieurs formats de codes QR et de codes-barres, assurant son utilisation sur différentes applications et plateformes.

Comment puis-je générer des codes QR dans une application .NET ?

Utilisez les méthodes de la bibliothèque IronQR pour générer des codes QR efficacement, vous permettant de personnaliser les paramètres selon les besoins de votre application.

Jordi Bardia
Ingénieur logiciel
Jordi est le plus compétent en Python, C# et C++, et lorsqu'il ne met pas à profit ses compétences chez Iron Software, il programme des jeux. Partageant les responsabilités des tests de produit, du développement de produit et de la recherche, Jordi apporte une immense valeur à l'amé...
Lire la suite