VERWENDUNG VON IRONQR

Wie benutzt man .NET MAUI für QR Code Scanner

Veröffentlicht 1. Juli 2024
Teilen Sie:

Einführung

Im Zeitalter der allgegenwärtigen mobilen Datenverarbeitung werden QR-Codes zu einem unverzichtbaren Instrument für den reibungslosen und schnellen Informationsaustausch. QR-Codes werden in allen Bereichen eingesetzt, vom digitalen Zahlungsverkehr bis zur Produktverpackung. Wenn Sie als Entwickler Ihre mobilen Anwendungen um die Möglichkeit zum Scannen von QR-Codes erweitern, können Sie die Benutzerfreundlichkeit verbessern und eine Fülle von Möglichkeiten schaffen. In diesem Beitrag erfahren Sie, wie Sie mit IronQR einen MAUI-Barcodescanner und QR-Code-Leser für .NET erstellen.

Wie man .NET MAUI für QR Code Scanner verwendet: Abbildung 1 - Iron QR: Die C# QR-Code-Bibliothek

Wie benutzt man .NET MAUI für QR Code Scanner

  1. Installieren von .NET MAUI und IronQR NuGet-Paketen

  2. Layout der Hauptseite erstellen

  3. Kamera initialisieren

  4. Bild einfangen

  5. Lesen Sie den QR-Code

  6. Ergebnis anzeigen

  7. Berechtigungen handhaben

Verstehen von .NET MAUI

Ein Rahmenwerk namens .NET Multi-platform App UI (.NET MAUI) ermöglicht die Verwendung von C# und XAML zur Erstellung nativer, plattformübergreifender Anwendungen. Mit nur einer Codebasis können Entwickler jetzt Apps für Windows, macOS, iOS und Android entwickeln. .NET MAUI bietet eine einheitliche API für den Zugriff auf die Funktionen nativer Geräte und erleichtert damit die Erstellung plattformübergreifender Anwendungen. Im Folgenden sind einige Schlüsselelemente von .NET MAUI aufgeführt, die es zu einem effektiven Werkzeug für Entwickler machen:

Einzelne Projektstruktur

Plattformspezifische Projekte werden mit Hilfe von .NET MAUI in einer einheitlichen Projektstruktur zusammengefasst. Dank dieser Vereinheitlichung können die Entwickler alle plattformspezifischen Ressourcen und den Code in einem einzigen Projekt verwalten und so den Entwicklungsprozess rationalisieren.

Plattformübergreifende Benutzeroberfläche

Sie können eine einzelne Benutzeroberfläche entwerfen (UI) das auf mehreren Plattformen mit .NET MAUI funktioniert. Das Framework bietet eine Sammlung von Layouts und Steuerelementen, die mit Windows, macOS, iOS und Android kompatibel sind.

Native Access und Integration

Mit Hilfe von .NET MAUI können Entwickler die Vorteile nativer APIs und plattformspezifischer Funktionen nutzen, um Sensoren, Kameras, GPS und andere Gerätefunktionen zu verwenden. Auf diese Weise können Anwendungen einen Großteil der Codebasis plattformübergreifend nutzen und dennoch ein natives Benutzererlebnis bieten.

Heißes Nachladen

.NET MAUI unterstützt Hot Reload für XAML und C#. Mit Hilfe dieser Funktion können Entwickler Änderungen an der Benutzeroberfläche sofort sehen, ohne das Programm neu starten zu müssen. Hot Reload ermöglicht schnelle Iterationen und sofortiges Feedback, was den Entwicklungsprozess beschleunigt.

Blazor-Integration

Dank der Integration von Blazor und .NET MAUI können Entwickler Blazor-Komponenten zur Erstellung von Hybrid-Apps verwenden. Mit dieser Integration wird die Erstellung moderner Anwendungen durch die Kombination der Webentwicklungsfähigkeiten von Blazor mit der Expertise von MAUI in der nativen mobilen Entwicklung flexibel.

Ressourcenmanagement

Die Verwaltung von Ressourcen, einschließlich Bildern, Schriftarten und Stilen, über mehrere Plattformen hinweg wird durch .NET MAUI erleichtert. Da die Ressourcen nur einmal definiert werden müssen, können die Entwickler sie für alle Zielplattformen verwenden, was Redundanzen minimiert und ein einheitliches Erscheinungsbild und eine einheitliche Bedienung garantiert.

Injektion von Abhängigkeiten

Dependency Injection wird von .NET MAUI standardmäßig unterstützt, was Entwicklern hilft, besser getesteten und wartbaren Code zu erstellen. Die Erstellung komplizierter Anwendungen, die eine klare Aufteilung der Zuständigkeiten und eine modulare Architektur benötigen, erfordert diese Funktionalität.

Was ist IronQR?

Eine robuste und anpassungsfähige .NET-Bibliothek zum Erstellen und Lesen von QR-Codes ist IronQR. Durch die Bereitstellung zuverlässiger und benutzerfreundlicher Funktionen für die Erstellung und das Lesen von QR-Codes wird der Prozess der Nutzung von QR-Codes in .NET-Anwendungen rationalisiert. Das Iron Software-Paket, zu dem auch IronQR gehört, ist eine Sammlung von Bibliotheken zur Verbesserung der .NET-Programmierung.

Merkmale von IronQR

IronQR ist ein nützliches Tool für Entwickler, die mit QR-Codes arbeiten, da es über einen umfangreichen Funktionsumfang verfügt. Hier sind einige seiner herausragenden Eigenschaften:

QR-Code-Erzeugung

IronQR macht es einfach, QR-Codes zu erstellen. Schnell und effektiv können Entwickler QR-Codes aus Text, URLs und anderen Datenarten generieren.

  • Hochwertige QR-Codes: Die Bibliothek produziert qualitativ hochwertige, hochauflösende QR-Codes, die für eine Reihe von Anwendungen geeignet sind, z. B. für digitale Anzeigen und Druck.
  • Optionen zur Anpassung: Sie können die Farben, Größen, Ränder und andere Aspekte des Aussehens von QR-Codes ändern.

QR-Code lesen

IronQR bietet eine umfangreiche Funktionalität zum Lesen von QR-Codes aus Bildern und Streams.

  • Unterstützung mehrerer Formate: JPEG, PNG, BMP und GIF sind nur einige der Bildformate, aus denen die Bibliothek QR-Codes lesen kann.
  • Fehlerkorrektur: IronQR verfügt über eine ausgeklügelte Fehlerkorrektur, so dass QR-Codes auch dann korrekt gelesen werden können, wenn sie teilweise gebrochen oder unleserlich sind.

Erweiterte Anpassung

Mit den vielfältigen Anpassungsmöglichkeiten, die IronQR bietet, können Entwickler QR-Codes erstellen und interpretieren, die speziell auf ihre Bedürfnisse zugeschnitten sind.

  • Styles: Sie können Logos oder Fotos zu QR-Codes hinzufügen und die Hintergrund- und Vordergrundfarben ändern.
  • Datenkodierung: Bietet Interoperabilität mit verschiedenen Informationsformaten durch Unterstützung mehrerer Datenkodierungsoptionen.

Stapelverarbeitung

IronQR unterstützt die Stapelverarbeitung, so dass mehrere QR-Codes gleichzeitig erstellt und gelesen werden können. Für Anwendungen, die eine große Anzahl von QR-Codes effizient verarbeiten müssen, ist diese Funktion besonders hilfreich.

Leistung und Effizienz

Aufgrund des leistungsstarken Designs der Bibliothek können QR-Codes schnell erstellt und gelesen werden. Für Anwendungen, die QR-Codes in Echtzeit verarbeiten müssen, ist dies von entscheidender Bedeutung.

Integration in das .NET-Ökosystem

IronQR ist aufgrund seiner reibungslosen Integration in die .NET-Umgebung einfach mit ASP.NET-, Windows Forms-, WPF- und Xamarin-Anwendungen sowie anderen .NET-Anwendungstypen zu verwenden.

Erste Schritte mit der .NET MAUI-Anwendung

Für die Erstellung einer C#.NET MAUI-Anwendung ist die Installation von Visual Studio 2022 und des .NET 6-Frameworks erforderlich. Um eine .NET MAUI-Anwendung zu erstellen, führen Sie die folgenden Schritte aus.

Visual Studio öffnen

Klicken Sie nach dem Öffnen von Visual Studio auf die Schaltfläche "Neues Projekt erstellen". Verwenden Sie dann die Suchleiste, um nach ".NET MAUI project" zu suchen

So verwenden Sie .NET MAUI für QR-Code-Scanner: Abbildung 2 - Erstellen eines neuen Projekts

.NET MAUI-Anwendung auswählen

Wählen Sie die .NET MAUI-Anwendungsvorlage aus den Suchergebnissen von Visual Studio. Wenn Sie sich für ein Projekt entschieden haben, geben Sie ihm einen passenden Namen und entscheiden Sie, wo es stattfinden soll. Drücken Sie nach dem Einrichten die Taste "Weiter".

So verwenden Sie .NET MAUI für QR-Code-Scanner: Abbildung 3 - Wählen Sie die .NET MAUI App-Vorlage

Rahmen auswählen

Wählen Sie den erforderlichen Rahmen; dennoch ist es ratsam, die neueste Version des .NET-Frameworks zu verwenden. Klicken Sie auf "Erstellen", sobald Sie die Framework-Version in Visual Studio ausgewählt haben.

So verwenden Sie .NET MAUI für QR-Code-Scanner: Abbildung 4 - Wählen Sie das gewünschte Framework aus

IronQR installieren

Navigieren Sie zur Paketmanager-Konsole unter "Tools -> NuGet Package Manager". Geben Sie im angezeigten Befehlszeilenfenster den folgenden Befehl ein und drücken Sie ENTER:

Install-Package IronQR

Der vorgenannte Befehl installiert unsere Bibliothek in das laufende Projekt und lädt sie herunter.

Aufbau des QR-Code-Scanners

Die Erstellung der Benutzeroberfläche ist der erste Schritt bei der Entwicklung des QR-Code-Scanners. Eine Schaltfläche zum Starten des QR-Code-Scanvorgangs und ein Bild, das den gescannten QR-Code anzeigt, werden Teil unserer grundlegenden Benutzeroberfläche sein (UI) die wir mit XAML erstellen werden.

<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>

Anschließend muss die Möglichkeit geschaffen werden, IronQR zum Lesen von QR-Codes zu verwenden. Wir schreiben eine Funktion, die das Schaltflächenklick-Ereignis verarbeitet und ein Bild des QR-Codes mit der Kamera des Geräts aufnimmt.

Fügen Sie den folgenden Code in die Datei "MainPage.xaml.cs" ein, nachdem Sie sie geöffnet haben:

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
VB   C#
  • onScanButtonClicked": Wenn ein Benutzer auf die Schaltfläche "QR-Code scannen" klickt, wird diese Methode aufgerufen. Um ein Bild mit der Kamera des Geräts aufzunehmen und nach QR-Codes zu suchen, ruft es die Funktion "CaptureAndScanQrCode" auf.
  • captureAndScanQrCode": Bei dieser Methode wird mit der Kamera des Geräts ein Bild aufgenommen, und dann wird IronQR verwendet, um den QR-Code aus dem Bild zu lesen.

    • mediaPicker.CapturePhotoAsync": Diese API verwendet die Kamera des Geräts, um ein Bild aufzunehmen.

    • speicherStream: Um IronQR das Lesen zu erleichtern, wird das erfasste Bild in einenMemoryStream` geladen.

    • QrReader.Read: Die IronQR-Methode liest den QR-Code aus den Bildinformationen.

    • imageSource": Wenn ein QR-Code gefunden wird, erscheint der QR-Code-Text in der Bezeichnung "QRCodeResult" und das Bild wird im Element "QRCodeImage" angezeigt.

Umgang mit Berechtigungen

Für den Zugriff auf die Gerätekamera ist die richtige Berechtigung erforderlich. Stellen Sie die erforderlichen Genehmigungsanträge, indem Sie die Projektdateien für iOS und Android aktualisieren.

Android

Greifen Sie auf die Datei AndroidManifest.xml zu und fügen Sie die entsprechenden Berechtigungen ein:

<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" />
XML

Berechtigungen in der Datei MainActivity.cs anfordern:

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
VB   C#

Nachfolgend sehen Sie die Ausgabe, die in einer Windows-Umgebung erzeugt wurde.

So verwenden Sie .NET MAUI For QR Code Scanner: Abbildung 5 - Klicken Sie auf QR-Code scannen

Nach dem Scannen wird das fertige Ergebnis auf dem Etikett angezeigt.

So verwenden Sie .NET MAUI für QR-Code-Scanner: Abbildung 6 - Beispiel für die Ausgabe von IronQR zum Scannen des QR-Codes

Schlussfolgerung

Die Verwendung von .NET MAUI und IronQR zur Erstellung eines .NET MAUI QR-Code-Scanners ist ein einfacher Prozess, der die Funktionalität Ihrer mobilen Anwendungen erheblich verbessern kann. Die starke Funktionalität von IronQR für die Verarbeitung von QR-Codes und die plattformübergreifenden Fähigkeiten von .NET MAUI ermöglichen es Ihnen, effektive und zuverlässige QR-Code-Scanner für Windows, iOS, macOS und Android zu erstellen.

IronQR und .NET MAUI bieten zusammen einen reibungslosen Entwicklungsprozess, der es Ihnen ermöglicht, sich auf die Entwicklung innovativer Funktionen und die Erstellung erstklassiger Anwendungen zu konzentrieren. Dieses Tutorial bietet eine solide Grundlage für den Einstieg, unabhängig davon, ob Sie einen einfachen QR-Code-Scanner oder eine anspruchsvolle Anwendung mit hochmodernen QR-Code-Funktionen erstellen möchten.

Ziehen Sie IronQR für Ihre QR-Code-Anforderungen in Betracht, wenn Sie Ihren Entwicklungsprozess weiter rationalisieren möchten. Selbst unter schwierigen Bedingungen erzeugt IronQR gestochen scharfe, skalierbare QR-Codes mit starken Lesefähigkeiten. IronQR bietet eine Lösung, die Ihre individuellen Anforderungen erfüllt, mit anpassbaren Lizenzierungsoptionen für einzelne Entwickler, kleine Teams und große Unternehmen. Schließen Sie sich den vielen Entwicklern an, die sich bei ihren wichtigen Entwicklungswerkzeugen auf Iron Software verlassen, und verbessern Sie Ihre Anwendungen mit IronQR.

Für andere ähnliche Produkte der Iron Software Suite ist der IronBarcode das Gegenstück zum Scannen von Barcodes. IronBarcode ermöglicht die nahtlose Integration leistungsstarker Barcode-Scanfunktionen in Ihre Anwendungen und ist damit eine ausgezeichnete Wahl für alle Anforderungen im Zusammenhang mit dem Scannen von Barcodes.

NÄCHSTES >
Wie man QR-Codes in ASP .NET Core generiert

Sind Sie bereit, loszulegen? Version: 2024.10 gerade veröffentlicht

Gratis NuGet-Download Downloads insgesamt: 20,066 Lizenzen anzeigen >