Scanner de codes QR .NET MAUI
Introduction
.NET MAUI (.NET Multi-platform App UI) est un framework multiplateforme pour construire des applications mobiles et de bureau natives à partir d'une seule base de code C#. Un seul projet peut cibler Android, iOS, macOS et Windows, partageant des mises en page d'interface utilisateur et une logique métier sur toutes les plateformes. L'intégration de MAUI avec l'écosystème .NET signifie que les développeurs peuvent atteindre les utilisateurs mobiles sans abandonner les outils ou langages familiers.
Dans cet article, nous expliquerons comment créer un scanner de codes QR natif dans une application .NET MAUI en utilisant IronQR pour décoder les codes QR sélectionnés à partir de la bibliothèque photo de l'appareil.
Comment créer un scanner de codes QR dans .NET MAUI
- Installez la bibliothèque C# IronQR pour scanner les codes QR sur mobile
- Concevez la disposition de l'application dans
MainPage.xaml - Utilisez
FilePickerpour permettre à l'utilisateur de sélectionner une image de code QR depuis l'appareil - Chargez l'image et enrobez-la dans un
QrImageInput - Appelez
Readet affichez la valeur décodée dans unLabel
IronQR : Bibliothèque C# QR Code
Pour lire les codes QR dans l'application, nous utiliserons la bibliothèque IronQR .NET. Elle fournit une API simple pour détecter et décoder les codes QR à partir de n'importe quelle source d'image, y compris les fichiers sélectionnés sur un appareil mobile. IronQR fonctionne sur toutes les plateformes cibles de MAUI et ne nécessite aucune connaissance spécifique en domaine de codes-barres pour intégrer.
IronQR peut décoder des codes QR standard, des Micro QR codes et des codes rMQR, et accepte l'entrée d'images sous forme de fichiers, de flux ou de bitmaps. Elle peut être installée en quelques secondes via le Package Manager NuGet.
Étapes pour créer un scanner de codes QR dans .NET MAUI
Suivez ces étapes pour ajouter le scan de codes QR à une application .NET MAUI.
Prérequis
- Visual Studio 2022 avec la charge de travail .NET MAUI installée
- Un projet .NET MAUI ciblant Android ou iOS
Installer IronQR
Installez la bibliothèque IronQR en utilisant la console du gestionnaire de packages NuGet dans Visual Studio. Accédez à Tools > NuGet Package Manager > Package Manager Console et exécutez :
Install-Package IronQR
Vous pouvez également rechercher IronQR sur NuGet et installer la dernière version.
Conception Front-End
L'interface utilisateur du scanner consiste en un bouton pour déclencher la sélection d'image, une vue d'image pour prévisualiser le code QR sélectionné, et un label pour afficher le résultat décodé.
Remplacez le contenu de MainPage.xaml par ce qui suit :
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiQrScanner.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Button
x:Name="scanButton"
Text="Select QR Code Image"
SemanticProperties.Hint="Select Image"
Clicked="OnScanButtonClicked"
HorizontalOptions="Center" />
<Image
x:Name="qrImage"
SemanticProperties.Description="Selected QR Code"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
x:Name="resultLabel"
Text="Scanned Text: "
HorizontalOptions="Center"
VerticalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiQrScanner.MainPage">
<ScrollView>
<VerticalStackLayout
Spacing="25"
Padding="30,0"
VerticalOptions="Center">
<Button
x:Name="scanButton"
Text="Select QR Code Image"
SemanticProperties.Hint="Select Image"
Clicked="OnScanButtonClicked"
HorizontalOptions="Center" />
<Image
x:Name="qrImage"
SemanticProperties.Description="Selected QR Code"
HeightRequest="200"
HorizontalOptions="Center" />
<Label
x:Name="resultLabel"
Text="Scanned Text: "
HorizontalOptions="Center"
VerticalOptions="Center" />
</VerticalStackLayout>
</ScrollView>
</ContentPage>
Entrée d'exemple
Utilisez le code QR ci-dessous comme image test. Enregistrez-le sur votre appareil, puis sélectionnez-le via le sélecteur de fichiers de l'application. La valeur décodée doit s'afficher sous la forme https://ironsoftware.com.
Exemple de code QR — encode https://ironsoftware.com
Scan de QR Code avec IronQR
Lorsque l'on appuie sur le bouton de numérisation, FilePicker ouvre la galerie d'images de l'appareil. Une fois que l'utilisateur a sélectionné une photo, le chemin d'accès complet est chargé dans un AnyBitmap, qui est transmis à QrReader.Read(). La valeur décodée du premier code QR détecté s'affiche dans le label de résultat.
Ajoutez la méthode suivante à MainPage.xaml.cs :
using IronQr;
using IronSoftware.Drawing;
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Start scanning QR codes
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);
// Display the first result
resultLabel.Text = "Scanned Text: " + results.First().Value;
}
using IronQr;
using IronSoftware.Drawing;
private async void OnScanButtonClicked(object sender, EventArgs e)
{
// Start scanning QR codes
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);
// Display the first result
resultLabel.Text = "Scanned Text: " + results.First().Value;
}
Imports IronQr
Imports IronSoftware.Drawing
Private Async Sub OnScanButtonClicked(sender As Object, e As EventArgs)
' Start scanning QR codes
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)
' Display the first result
resultLabel.Text = "Scanned Text: " & results.First().Value
End Sub
FilePicker.Default.PickAsync est fourni par la couche d'abstraction de la plateforme MAUI et fonctionne sur Android, iOS et Windows sans aucun code spécifique à la plateforme. AnyBitmap.FromFile gère le décodage des images, et QrReader.Read renvoie un IEnumerable<QrResult> contenant une entrée par code QR trouvé dans l'image.
Sortie
Sélectionner une image de code QR déclenche le scan. La valeur décodée apparaît dans le label de résultat sous l'aperçu de l'image.
Code QR sélectionné et valeur décodée affichée dans le label de résultat
Téléchargez le projet
Cliquez ici pour télécharger le projet complet MauiQrScanner.
Conclusion
Dans cet article, nous avons démontré comment créer un scanner de codes QR natif dans une application .NET MAUI en utilisant IronQR. L'API FilePicker permet la sélection d'images native sur Android, iOS et Windows, tandis que l'API QrReader.Read d'IronQR gère le décodage en un seul appel. La même approche s'applique à plusieurs codes QR par image en parcourant l'ensemble des résultats au lieu d'appeler .First().
IronQR nécessite une licence pour le développement et l'utilisation commerciale. Les détails des licences sont disponibles ici.
Pour un aperçu plus approfondi de la lecture des propriétés des codes QR au-delà de la valeur, consultez les guides Lire la valeur du code QR et Lire le type de code QR.
Questions Fréquemment Posées
De quoi traite le tutoriel sur le scanner de codes QR .NET MAUI ?
Le tutoriel sur le scanner de codes QR .NET MAUI fournit des instructions sur la façon de créer un scanner de codes QR en utilisant IronQR, avec des directives adaptées pour les applications .NET MAUI sur les plateformes Android, iOS et Windows.
Quelles plateformes sont prises en charge par le scanner de codes QR .NET MAUI ?
Le scanner de codes QR .NET MAUI prend en charge les plateformes Android, iOS et Windows, permettant aux développeurs de créer des applications multiplateformes utilisant IronQR.
Comment puis-je sélectionner des images pour le balayage de codes QR dans une application .NET MAUI ?
Vous pouvez utiliser le composant FilePicker dans une application .NET MAUI pour sélectionner des images, qui peuvent ensuite être traitées par la méthode QrReader.Read() d'IronQR pour décoder les codes QR.
Quelle fonction est utilisée pour décoder les codes QR dans le tutoriel ?
Dans le tutoriel, la fonction QrReader.Read() d'IronQR est utilisée pour décoder les codes QR à partir d'images sélectionnées dans une application .NET MAUI.
Puis-je utiliser IronQR pour le balayage de codes QR dans une application multiplateforme ?
Oui, IronQR est conçu pour être utilisé dans des applications multiplateformes, et avec le framework .NET MAUI, vous pouvez créer des scanners de codes QR pour Android, iOS et Windows.
Existe-t-il une fonction spécifique de lecteur de codes QR for .NET MAUI ?
Oui, le tutoriel montre comment utiliser la fonction QrReader.Read() d'IronQR dans une application .NET MAUI pour lire et décoder les codes QR.
IronQR prend-il en charge le balayage des codes QR sur les appareils mobiles ?
IronQR prend en charge le balayage des codes QR sur les appareils mobiles, y compris Android et iOS, comme le montre le tutoriel sur le scanner de codes QR .NET MAUI.
Quel est le rôle de FilePicker dans le processus de balayage de codes QR ?
FilePicker est utilisé pour sélectionner des images à partir du stockage de l'appareil, qui sont ensuite passées à la méthode QrReader.Read() d'IronQR pour le décodage des codes QR dans une application .NET MAUI.
Est-il possible d'intégrer un scanner de codes QR dans une application Windows en utilisant .NET MAUI ?
Oui, le tutoriel sur le scanner de codes QR .NET MAUI montre comment intégrer un scanner de codes QR dans une application Windows en utilisant IronQR.

