Passer au contenu du pied de page
UTILISATION D'IRONQR

Comment utiliser .NET MAUI pour un scanner de code QR

With the rise of mobile applications leveraging QR Codes for quick information retrieval, the need for an efficient and easy-to-integrate QR Code scanner as well as a .NET MAUI Barcode scanner to scan Barcodes is growing..NETMAUI (Multi-platform App UI), Microsoft's cross-platform framework, provides a unified environment for building applications across iOS, Android, macOS, and Windows. Lorsqu'ils scannent 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 de manière rapide, précise et fiable. Cet article vous guidera dans l'intégration d'IronQRavec .NET MAUI pour construire un scanner QR/ BarCode qui peut fonctionner de manière transparente sur plusieurs plateformes.

Comment mettre en œuvre la lecture de codes-barres QR à l'aide d'IronQR

  1. Créer un projet .NET MAUI.
  2. Installez le paquet NuGet IronQR.
  3. Configurer les autorisations pour l'appareil photo et le stockage des fichiers.
  4. Mettre en œuvre le scanner de code QR.

Introduction à IronQR for .NET MAUI Mobile Apps (en anglais)

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 lecture des codes QR et des codes-barres. Elle fournit des solutions rapides et fiables pour intégrer les fonctionnalités de lecture de QR Code et de BarCode sur des plateformes telles qu'iOS, Android, macOS et Windows, ce qui est essentiel pour la création d'applications mobiles multiplateformes.

Caractéristiques d'IronQR for .NET MAUI Mobile Apps (en anglais)

  • <Prise en charge multiplateforme : Fonctionne de manière transparente sur les plateformes iOS, Android, macOS et Windows au sein des apps MAUI.
  • Scanning QR Code : décode efficacement divers types de QR Codes (URL, texte, informations de contact, etc.). Il prend également en charge plusieurs BarCodes lus avec des algorithmes de détection de codes-barres efficaces.
  • Génération de codes QR : cette fonction permet de générer facilement des codes QR à partir de données telles que des URL, des textes, etc.
  • Gestion des autorisations des caméras : Traite automatiquement les demandes d'autorisation des caméras, ce qui simplifie le processus de numérisation.
  • Hautes performances : 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 du code QR.
  • Intégration facile : une API simple et une configuration minimale sont nécessaires 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 des solutions de dépannage, garantissant un fonctionnement sans heurts dans divers scénarios.
  • Aucune dépendance externe : IronQR fonctionne de manière indépendante, ce qui réduit le besoin de bibliothèques tierces ou de configurations complexes, contrairement au lecteur de codes-barres ZXing.
  • <Prise en charge de plusieurs formats : la prise en charge de plusieurs formats de codes QR garantit la compatibilité avec un large éventail de codes QR utilisés dans le monde réel.

Pré-requis

Avant de procéder à la mise en œuvre, assurez-vous que vous disposez des 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 des codes QR et la détection des BarCodes.
  4. Application MAUI .NET (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 MAUI .NET 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. 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 Create.

    Target Framework

É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 de la souris sur les Dépendances dans l'explorateur de solutions.
  2. Cliquez sur Gérer les packages NuGet.
  3. Dans l'onglet Browse, recherchez IronQR et cliquez sur Install sur le package correspondant (généralement IronQR ou IronQR.Maui s'il est spécifiquement disponible pour MAUI).
  4. Acceptez toutes les licences et veillez à ce que la bibliothèque soit installée.

    IronQR

Étape 3 : Configurer les autorisations pour l'appareil photo et le stockage des fichiers

Pour que votre application puisse scanner les 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.

Android

Dans le fichier AndroidManifest.xml, ajoutez l'autorisation de l'appareil photo :

<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 de l'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 code QR

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

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 la MainPage.xaml.cs, vous allez gérer les permissions de la caméra et la logique de numérisation du code QR. Voici comment procéder :

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 autorisations pour la caméra en utilisant Permissions.RequestAsync<Permissions.Camera>(). Si l'autorisation est refusée, l'utilisateur reçoit une alerte.
  • IronQR Scanner : Utilisez les objets et les 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.

Introduction du code QR

Saisie du code QR

Sortie

Sortie de code QR

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

Sélectionner le code QR

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

QR Code UI Output

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 à partir de la page 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 construction d'un scanner de code QR dans une application .NET MAUI à l'aide d'IronQR for .NET. Nous avons commencé par configurer une application MAUI .NET, installé le package IronQR for .NET et mis en œuvre l'interface utilisateur et la logique d'analyse. 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 à la fonctionnalité 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 des caméras, ce qui facilite l'intégration de la numérisation des codes QR sans avoir à gérer manuellement les autorisations.

En résumé, IronQR for .NET MAUI permet aux développeurs de mettre rapidement en œuvre des fonctions de numérisation et de génération de codes QR dans leurs applications mobiles, ce qui rationalise le développement et améliore 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