Test dans un environnement réel
Test en production sans filigrane.
Fonctionne partout où vous en avez besoin.
À l'ère de l'informatique mobile omniprésente, les codes QR deviennent un outil indispensable pour un partage fluide et rapide de l'information. Les codes QR sont utilisés dans tous les domaines, des paiements numériques à l'emballage des produits. En tant que développeur, l'ajout d'une fonction de lecture de code QR à vos applications mobiles peut améliorer l'expérience de l'utilisateur et conduire à une pléthore d'opportunités. Ce billet vous guidera dans la création d'un lecteur de codes-barres .NET MAUI et d'un lecteur de codes QR avec IronQR.
Installer les paquets NuGet .NET MAUI et IronQR for .NET
Créer la mise en page principale
Initialisation de la caméra
Capturer l'image
Lire le code QR
Résultat de l'affichage
Un framework appelé .NET Multi-platform App UI (.NET MAUI) permet d'utiliser C# et XAML pour créer des applications natives multiplateformes. Avec une seule base de code, les développeurs peuvent désormais produire des applications pour Windows, macOS, iOS et Android. .NET MAUI offre une API uniforme pour accéder aux fonctionnalités des appareils natifs, ce qui facilite le processus de création d'applications multiplateformes. Voici quelques éléments clés de .NET MAUI qui en font un outil efficace pour les développeurs :
Les projets spécifiques à une plate-forme sont combinés dans une structure de projet unifiée à l'aide de .NET MAUI. Grâce à cette unification, les développeurs peuvent gérer toutes les ressources et le code spécifiques à la plate-forme dans un seul projet, ce qui rationalise le processus de développement.
Vous pouvez concevoir une interface utilisateur unique (UI) qui fonctionne sur plusieurs plateformes avec .NET MAUI. Ce cadre propose une collection de modèles et de contrôles compatibles avec Windows, macOS, iOS et Android.
Avec l'aide de .NET MAUI, les développeurs peuvent tirer parti des API natives et des fonctionnalités spécifiques à la plateforme, ce qui leur permet d'utiliser les capteurs, les caméras, le GPS et d'autres capacités de l'appareil. De cette manière, les applications peuvent partager une grande partie de la base de code entre les plateformes tout en offrant une expérience utilisateur native.
.NET MAUI prend en charge le rechargement à chaud pour XAML et C#. Grâce à cette fonctionnalité, les développeurs peuvent visualiser instantanément les modifications apportées à l'interface utilisateur sans avoir à redémarrer le programme. Hot Reload facilite les itérations rapides et le retour d'information instantané, ce qui accélère le processus de développement.
Grâce à l'intégration entre Blazor et .NET MAUI, les développeurs peuvent utiliser les composants Blazor pour créer des applications hybrides. Grâce à cette intégration, la création d'applications modernes devient plus souple en combinant les capacités de développement web de Blazor et l'expertise de MAUI en matière de développement mobile natif.
La gestion des ressources, y compris les images, les polices et les styles, sur plusieurs plates-formes est facilitée par .NET MAUI. En ne définissant les ressources qu'une seule fois, les développeurs peuvent les utiliser pour toutes les plates-formes cibles, ce qui minimise la redondance et garantit une apparence et une convivialité cohérentes.
L'injection de dépendances est prise en charge dès le départ par .NET MAUI, ce qui aide les développeurs à élaborer un code mieux testé et plus facile à maintenir. La création d'applications complexes nécessitant une répartition claire des responsabilités et une architecture modulaire requiert cette fonctionnalité.
Une bibliothèque .NET robuste et adaptable pour la création et la lecture de codes QR s'appelle IronQR. En offrant des fonctionnalités fiables et conviviales pour la création et la lecture de codes QR, il rationalise le processus d'utilisation des codes QR dans les applications .NET. Le paquet Iron Software, qui comprend IronQR, est une collection de bibliothèques conçues pour améliorer la programmation .NET.
IronQR est un outil utile pour les développeurs qui travaillent avec des codes QR en raison de ses nombreuses fonctionnalités. Voici quelques-unes de ses principales caractéristiques :
IronQR simplifie la création de codes QR. Rapidement et efficacement, les développeurs peuvent générer des codes QR à partir de texte, d'URL et d'autres types de données.
IronQR offre de solides fonctionnalités pour la lecture de codes QR à partir d'images et de flux.
Grâce aux nombreuses possibilités de personnalisation offertes par IronQR, les développeurs peuvent créer et interpréter des codes QR spécifiquement adaptés à leurs besoins.
Le traitement par lots est pris en charge par IronQR, ce qui permet de créer et de lire plusieurs codes QR simultanément. Les applications qui doivent gérer efficacement un grand nombre de codes QR peuvent trouver cette capacité particulièrement utile.
Grâce à la conception très performante de la bibliothèque, la création et la lecture de codes QR peuvent se faire rapidement. Pour les applications qui doivent traiter les codes QR en temps réel, c'est crucial.
IronQR est simple à utiliser avec les applications ASP.NET, Windows Forms, WPF et Xamarin, entre autres types d'applications .NET, en raison de son intégration harmonieuse à l'environnement .NET.
L'installation de Visual Studio 2022 et du Framework .NET 6 est nécessaire pour créer une application C#.NET MAUI. Ensuite, pour construire une application .NET MAUI, suivez les étapes suivantes.
Cliquez sur le bouton "Créer un nouveau projet" après avoir ouvert Visual Studio. Ensuite, utilisez la barre de recherche pour trouver "projet .NET MAUI"
Choisissez le modèle d'application .NET MAUI dans les résultats de recherche de Visual Studio. Une fois que vous l'avez choisi, donnez-lui un nom approprié et décidez de l'endroit où le projet se déroulera. Après la configuration, appuyez sur le bouton "Suivant".
Choisir le cadre nécessaire ; néanmoins, il est conseillé d'utiliser l'itération la plus récente du Framework .NET. Cliquez sur "Créer" une fois que vous avez choisi la version du framework dans Visual Studio.
Naviguez vers la console du gestionnaire de paquets sous Tools -> NuGet Package Manager
. Dans le panneau de ligne de commande qui s'affiche, saisissez la commande suivante et appuyez sur ENTRÉE :
Install-Package IronQR
La commande susmentionnée installera notre bibliothèque dans le projet en cours et la téléchargera.
La création de l'interface utilisateur est la première étape du développement du scanner de codes QR. Un bouton pour lancer le processus de numérisation du code QR et une image pour montrer le code QR numérisé feront partie de notre interface utilisateur de base (UI) que nous construirons à l'aide de XAML.
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiQrScanner.MainPage">
<StackLayout Padding="20" VerticalOptions="Center">
<Button Text="Scan QR Code" Clicked="OnScanButtonClicked"/>
<Image x:Name="QrCodeImage" WidthRequest="200" HeightRequest="200" VerticalOptions="CenterAndExpand"/>
<Label x:Name="QrCodeResult" Text="Scan Result" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
</StackLayout>
</ContentPage>
La possibilité d'utiliser IronQR pour lire les codes QR doit ensuite être mise en œuvre. Nous allons écrire une fonction pour gérer l'événement de clic sur le bouton et prendre une photo du code QR avec l'appareil photo de l'appareil.
Ajoutez le code suivant à MainPage.xaml.cs
après l'avoir ouvert :
using IronQr;
using IronSoftware.Drawing;
using Microsoft.Maui.Controls;
using System;
using System.IO;
using System.Threading.Tasks;
namespace MauiAppQR
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnScanButtonClicked(object sender, EventArgs e)
{
var result = await CaptureAndScanQrCode();
QrCodeResult.Text = result ?? "No QR code found.";
}
private async Task<string> CaptureAndScanQrCode()
{
try
{
var photo = await MediaPicker.CapturePhotoAsync();
if (photo == null)
return null;
using var stream = await photo.OpenReadAsync();
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var imageData = memoryStream.ToArray();
QrReader reader = new QrReader();
var inputBmp = AnyBitmap.FromBytes(imageData);
QrImageInput imageInput = new QrImageInput(inputBmp);
var barcodeResult = reader.Read(imageInput);
if (barcodeResult?.Count > 0)
{
QrCodeImage.Source = ImageSource.FromStream(() => new MemoryStream(imageData));
return barcodeResult.First().Value;
}
}
catch (Exception ex)
{
Console.WriteLine($"Error scanning QR code: {ex.Message}");
}
return null;
}
}
}
using IronQr;
using IronSoftware.Drawing;
using Microsoft.Maui.Controls;
using System;
using System.IO;
using System.Threading.Tasks;
namespace MauiAppQR
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private async void OnScanButtonClicked(object sender, EventArgs e)
{
var result = await CaptureAndScanQrCode();
QrCodeResult.Text = result ?? "No QR code found.";
}
private async Task<string> CaptureAndScanQrCode()
{
try
{
var photo = await MediaPicker.CapturePhotoAsync();
if (photo == null)
return null;
using var stream = await photo.OpenReadAsync();
using var memoryStream = new MemoryStream();
await stream.CopyToAsync(memoryStream);
var imageData = memoryStream.ToArray();
QrReader reader = new QrReader();
var inputBmp = AnyBitmap.FromBytes(imageData);
QrImageInput imageInput = new QrImageInput(inputBmp);
var barcodeResult = reader.Read(imageInput);
if (barcodeResult?.Count > 0)
{
QrCodeImage.Source = ImageSource.FromStream(() => new MemoryStream(imageData));
return barcodeResult.First().Value;
}
}
catch (Exception ex)
{
Console.WriteLine($"Error scanning QR code: {ex.Message}");
}
return null;
}
}
}
Imports IronQr
Imports IronSoftware.Drawing
Imports Microsoft.Maui.Controls
Imports System
Imports System.IO
Imports System.Threading.Tasks
Namespace MauiAppQR
Partial Public Class MainPage
Inherits ContentPage
Public Sub New()
InitializeComponent()
End Sub
Private Async Sub OnScanButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
Dim result = Await CaptureAndScanQrCode()
QrCodeResult.Text = If(result, "No QR code found.")
End Sub
Private Async Function CaptureAndScanQrCode() As Task(Of String)
Try
Dim photo = Await MediaPicker.CapturePhotoAsync()
If photo Is Nothing Then
Return Nothing
End If
Dim stream = Await photo.OpenReadAsync()
Dim memoryStream As New MemoryStream()
Await stream.CopyToAsync(memoryStream)
Dim imageData = memoryStream.ToArray()
Dim reader As New QrReader()
Dim inputBmp = AnyBitmap.FromBytes(imageData)
Dim imageInput As New QrImageInput(inputBmp)
Dim barcodeResult = reader.Read(imageInput)
If barcodeResult?.Count > 0 Then
QrCodeImage.Source = ImageSource.FromStream(Function() New MemoryStream(imageData))
Return barcodeResult.First().Value
End If
Catch ex As Exception
Console.WriteLine($"Error scanning QR code: {ex.Message}")
End Try
Return Nothing
End Function
End Class
End Namespace
OnScanButtonClicked
: Lorsqu'un utilisateur clique sur le bouton "Scan QR Code", cette méthode est appelée. Pour prendre une photo à l'aide de l'appareil photo de l'appareil et rechercher des codes QR, il invoque la fonction CaptureAndScanQrCode
.CaptureAndScanQrCode
: Cette méthode utilise l'appareil photo de l'appareil pour prendre une photo, puis IronQR est utilisé pour lire le code QR à partir de l'image.
MediaPicker.CapturePhotoAsync
: Cette API utilise l'appareil photo de l'appareil pour prendre une photo.
MemoryStream
: Pour faciliter la lecture par IronQR, l'image capturée est chargée dans un MemoryStream
.
QrReader.Read
: La méthode IronQR lit le code QR à partir des informations de l'image.
ImageSource
: Si un code QR est localisé, le texte du code QR apparaît dans l'étiquette QrCodeResult
, et l'image est affichée dans l'élément QrCodeImage
.L'autorisation appropriée est nécessaire pour accéder à la caméra de l'appareil. Effectuez les demandes d'autorisation nécessaires en mettant à jour les fichiers de projet pour iOS et Android.
Android
Accédez à AndroidManifest.xml
et incluez les autorisations qui en découlent :
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Demander les permissions dans le fichier MainActivity.cs
:
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Platform.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.RequestPermissions(this, new string[]
{
Android.Manifest.Permission.Camera,
Android.Manifest.Permission.WriteExternalStorage,
Android.Manifest.Permission.ReadExternalStorage
});
}
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Platform.Init(this, savedInstanceState);
Xamarin.Essentials.Platform.RequestPermissions(this, new string[]
{
Android.Manifest.Permission.Camera,
Android.Manifest.Permission.WriteExternalStorage,
Android.Manifest.Permission.ReadExternalStorage
});
}
Protected Overrides Sub OnCreate(ByVal savedInstanceState As Bundle)
MyBase.OnCreate(savedInstanceState)
Platform.Init(Me, savedInstanceState)
Xamarin.Essentials.Platform.RequestPermissions(Me, New String() { Android.Manifest.Permission.Camera, Android.Manifest.Permission.WriteExternalStorage, Android.Manifest.Permission.ReadExternalStorage })
End Sub
Vous trouverez ci-dessous le résultat généré dans un environnement Windows.
Après la numérisation, le résultat obtenu s'affiche sur l'étiquette.
L'utilisation de .NET MAUI et d'IronQR pour créer un scanner de codes QR .NET MAUI est un processus simple qui peut considérablement améliorer la fonctionnalité de vos applications mobiles. Les solides fonctionnalités d'IronQR pour le traitement des codes QR et les capacités multiplateformes de .NET MAUI vous permettent de construire des scanners de codes QR efficaces et fiables pour Windows, iOS, macOS et Android.
IronQR et .NET MAUI offrent ensemble un processus de développement fluide qui vous permet de vous concentrer sur la création de fonctionnalités de pointe et la production d'applications de premier ordre. Ce tutoriel offre une base solide pour démarrer, que vous créiez un scanner de code QR simple ou une application sophistiquée avec des fonctions de code QR de pointe.
Envisagez de faire appel à IronQR pour vos besoins en matière de codes QR si vous souhaitez rationaliser davantage votre processus de développement. Même dans des circonstances difficiles, IronQR produit des codes QR nets, évolutifs et dotés de solides capacités de lecture. IronQR propose une solution qui répond à vos besoins uniques, avec des choix de licences personnalisables pour les développeurs individuels, les petites équipes et les grandes entreprises. Visitez le site Achetez une licence et consultez le détail des tarifs. Rejoignez les nombreux développeurs qui font confiance à Iron Software pour leurs outils de développement essentiels et améliorez vos applications grâce à IronQR.
Pour les autres produits similaires de la Iron Software Suite, l'IronBarcode est le pendant de la lecture des codes-barres. Avec IronBarcode, vous pouvez intégrer de manière transparente une fonctionnalité de lecture de codes-barres très performante dans vos applications, ce qui en fait un excellent choix pour les besoins liés à la lecture de codes-barres.
9 produits de l'API .NET pour vos documents de bureau