Test in einer Live-Umgebung
Test in der Produktion ohne Wasserzeichen.
Funktioniert überall, wo Sie es brauchen.
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.
Installieren von .NET MAUI und IronQR NuGet-Paketen
Layout der Hauptseite erstellen
Kamera initialisieren
Bild einfangen
Lesen Sie den QR-Code
Ergebnis anzeigen
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:
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.
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.
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.
.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.
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.
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.
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.
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.
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:
IronQR macht es einfach, QR-Codes zu erstellen. Schnell und effektiv können Entwickler QR-Codes aus Text, URLs und anderen Datenarten generieren.
IronQR bietet eine umfangreiche Funktionalität zum Lesen von QR-Codes aus Bildern und Streams.
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.
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.
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.
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.
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.
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
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".
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.
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.
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
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 einen
MemoryStream` geladen.
QrReader.Read
: Die IronQR-Methode liest den QR-Code aus den Bildinformationen.
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" />
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
Nachfolgend sehen Sie die Ausgabe, die in einer Windows-Umgebung erzeugt wurde.
Nach dem Scannen wird das fertige Ergebnis auf dem Etikett angezeigt.
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.
9 .NET API-Produkte für Ihre Bürodokumente