.NET MAUI QR-Code-Scanner

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

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

  1. Visual Studio 2022 mit installiertem .NET MAUI-Arbeitslast
  2. 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>
XML

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.

Sample QR code encoding https://ironsoftware.com for testing the .NET MAUI QR scanner

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
$vbLabelText   $csharpLabel

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.

.NET MAUI QR Code Scanner using IronQR — app selecting a QR code image and displaying the decoded value

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.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 67,270 | Version: 2026.5 just released
Still Scrolling Icon

Scrollst du immer noch?

Sie brauchen schnell einen Beweis? PM > Install-Package IronQR
Führen Sie ein Beispiel aus und beobachten Sie, wie Ihre URL zu einem QR-Code wird.