.NET MAUI QR-Code-Scanner
Einführung
.NET MAUI (.NET Multi-platform App UI) ist ein plattformübergreifendes Framework für die Erstellung nativer mobiler und Desktop-Anwendungen aus einer einzigen C#-Codebasis. Ein einzelnes Projekt kann Android, iOS, macOS und Windows ansprechen, wobei UI-Layouts und Logik über alle Plattformen hinweg geteilt werden. Die Integration von MAUI in das .NET-Ökosystem bedeutet, dass Entwickler mobile Benutzer erreichen können, ohne auf vertraute Werkzeuge oder Sprachen verzichten zu müssen.
In diesem Artikel erklären wir, wie man einen nativen QR-Code-Scanner in einer .NET MAUI-Anwendung erstellt, um QR-Codes aus der Fotobibliothek des Geräts mit IronQR zu dekodieren.
Wie man einen QR-Code-Scanner in .NET MAUI baut
- Installieren Sie die IronQR C#-Bibliothek, um QR-Codes auf Mobilgeräten zu scannen
- Entwerfen Sie das Anwendungs-Layout in
MainPage.xaml - Verwenden Sie den
FilePicker, damit der Benutzer ein QR-Code-Bild vom Gerät auswählen kann - Laden Sie das Bild und umwickeln Sie es in einem
QrImageInput - Rufen Sie
Readauf und zeigen Sie den dekodierten Wert in einemLabelan
IronQR: C#-QR-Code-Bibliothek
Um QR-Codes in der Anwendung zu lesen, verwenden wir die IronQR .NET-Bibliothek. Sie bietet eine unkomplizierte API zum Erkennen und Dekodieren von QR-Codes aus jeder Bildquelle, einschließlich Dateien, die auf einem mobilen Gerät ausgewählt werden. IronQR läuft auf allen MAUI-Zielplattformen und erfordert kein spezifisches Barcode-Wissen zur Integration.
IronQR kann standardmäßige QR-Codes, Micro-QR-Codes und rMQR-Codes dekodieren und akzeptiert Bild-Inputs als Dateien, Streams oder Bitmaps. Es kann in Sekundenschnelle über den NuGet-Paketmanager installiert werden.
Schritte zum Bau eines QR-Code-Scanners in .NET MAUI
Folgen Sie diesen Schritten, um das Scannen von QR-Codes zu einer .NET MAUI-Anwendung hinzuzufügen.
Voraussetzungen
- Visual Studio 2022 mit installiertem .NET MAUI-Arbeitslast
- Ein .NET MAUI-Projekt für Android oder iOS
Installieren Sie IronQR
Installieren Sie die IronQR-Bibliothek mithilfe der NuGet-Paket-Manager-Konsole in Visual Studio. Navigieren Sie zu Tools > NuGet Package Manager > Package Manager Console und führen Sie Folgendes aus:
Install-Package IronQR
Alternativ können Sie auf NuGet nach IronQR suchen und die neueste Version installieren.
Front-End-Design
Die Scanner-Benutzeroberfläche besteht aus einem Button zum Starten der Bildauswahl, einer Bildansicht zum Vorschau des ausgewählten QR-Codes und einem Label zur Anzeige des dekodierten Ergebnisses.
Ersetzen Sie den Inhalt von MainPage.xaml durch Folgendes:
<?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>
Beispiel-Input
Verwenden Sie den untenstehenden QR-Code als Testbild. Speichern Sie es auf Ihrem Gerät und wählen Sie es dann über den Datei-Picker der App aus. Der dekodierte Wert sollte als https://ironsoftware.com angezeigt werden.
Beispiel-QR-Code — kodiert https://ironsoftware.com
QR-Code-Scannen mit IronQR
Wenn die Scan-Schaltfläche angetippt wird, öffnet FilePicker die Bildbibliothek des Geräts. Nachdem der Benutzer ein Foto ausgewählt hat, wird der vollständige Pfad in ein AnyBitmap geladen, das an QrReader.Read() übergeben wird. Der dekodierte Wert des ersten erkannten QR-Codes wird im Ergebnis-Label angezeigt.
Fügen Sie die folgende Methode zu MainPage.xaml.cs hinzu:
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 wird von der MAUI-Plattform-Abstraktionsschicht bereitgestellt und funktioniert auf Android, iOS und Windows ohne plattformspezifischen Code. AnyBitmap.FromFile übernimmt die Bilddekodierung, und QrReader.Read gibt ein IEnumerable<QrResult> mit einem Eintrag pro im Bild gefundenem QR-Code zurück.
Ausgabe
Das Auswählen eines QR-Code-Bildes löst den Scan aus. Der dekodierte Wert erscheint im Ergebnis-Label unter der Bildvorschau.
QR-Code ausgewählt und dekodierter Wert im Ergebnis-Label angezeigt
Downloaden Sie das Projekt
Klicken Sie hier, um das komplette MauiQrScanner-Projekt herunterzuladen.
Abschluss
In diesem Artikel haben wir gezeigt, wie man einen nativen QR-Code-Scanner in einer .NET MAUI-Anwendung mit IronQR erstellt. Die FilePicker-API bietet plattformnative Bildauswahl auf Android, iOS und Windows, während IronQRs QrReader.Read die Dekodierung in einem einzigen Aufruf übernimmt. Der gleiche Ansatz lässt sich auf mehrere QR-Codes pro Bild skalieren, indem die gesamte Ergebnissammlung durchlaufen wird, anstatt .First() aufzurufen.
IronQR erfordert eine Lizenz für die Entwicklung und kommerzielle Nutzung. Lizenzierungsdetails finden Sie hier.
Für einen tieferen Einblick in das Lesen von QR-Code-Eigenschaften über den Wert hinaus, siehe die Anleitungen QR-Code-Wert lesen und QR-Code-Typ lesen.
Häufig gestellte Fragen
Worum geht es in dem .NET MAUI QR Code Scanner Tutorial?
Das .NET MAUI QR Code Scanner Tutorial bietet Anleitung zum Erstellen eines QR-Code-Scanners mit IronQR, einschließlich Anweisungen, die for .NET MAUI-Anwendungen auf Android-, iOS- und Windows-Plattformen maßgeschneidert sind.
Welche Plattformen werden vom .NET MAUI QR Code Scanner unterstützt?
Der .NET MAUI QR Code Scanner unterstützt Android-, iOS- und Windows-Plattformen und ermöglicht es Entwicklern, plattformübergreifende Anwendungen mit IronQR zu erstellen.
Wie kann ich Bilder für das QR-Code-Scanning in einer .NET MAUI-Anwendung auswählen?
Sie können in einer .NET MAUI-Anwendung die FilePicker-Komponente verwenden, um Bilder auszuwählen, die dann von der QrReader.Read()-Methode von IronQR verarbeitet werden können, um QR-Codes zu dekodieren.
Welche Funktion wird im Tutorial zum Dekodieren von QR-Codes verwendet?
Im Tutorial wird die QrReader.Read()-Funktion von IronQR verwendet, um QR-Codes aus ausgewählten Bildern in einer .NET MAUI-Anwendung zu dekodieren.
Kann ich IronQR für QR-Code-Scannen in einer plattformübergreifenden Anwendung verwenden?
Ja, IronQR ist darauf ausgelegt, in plattformübergreifenden Anwendungen verwendet zu werden, und mit dem .NET MAUI-Framework können Sie QR-Code-Scanner für Android, iOS und Windows erstellen.
Gibt es eine spezifische QR-Code-Lesefunktion for .NET MAUI?
Ja, das Tutorial zeigt, wie man die QrReader.Read()-Funktion von IronQR innerhalb einer .NET MAUI-Anwendung verwendet, um QR-Codes zu lesen und zu dekodieren.
Unterstützt IronQR QR-Code-Scanning auf mobilen Geräten?
IronQR unterstützt das QR-Code-Scanning auf mobilen Geräten, einschließlich Android und iOS, wie im .NET MAUI QR Code Scanner Tutorial gezeigt.
Welche Rolle spielt FilePicker im QR-Code-Scanning-Prozess?
FilePicker wird verwendet, um Bilder aus dem Gerätespeicher auszuwählen, die dann an die QrReader.Read()-Funktion von IronQR zur QR-Code-Dekodierung in einer .NET MAUI-Anwendung übergeben werden.
Ist es möglich, einen QR-Code-Scanner in eine Windows-Anwendung mit .NET MAUI zu integrieren?
Ja, das .NET MAUI QR Code Scanner Tutorial zeigt, wie man einen QR-Code-Scanner in eine Windows-Anwendung mit IronQR integriert.

