Przejdź do treści stopki
KORZYSTANIE Z IRONQR

Jak używać .NET MAUI do skanera kodów QR

Wraz z rozwojem aplikacji mobilnych wykorzystujących kody QR do szybkiego wyszukiwania informacji rośnie zapotrzebowanie na wydajny i łatwy w integracji skaner kodów QR, a także skaner BarCode .NET MAUI do skanowania BarCode. .NETMAUI (Multi-platform App UI), wielopłatformowa platforma Microsoftu, zapewnia ujednolicone środowisko do tworzenia aplikacji na systemy iOS, Android, macOS i Windows. Podczas skanowania kodów QR w aplikacji .NET MAUI programiści potrzebują intuicyjnej i wydajnej biblioteki do zarządzania tym procesem.

IronQR to popularna biblioteka, która pozwala programistom szybko, dokładnie i niezawodnie generować oraz dekodować kody QR. W tym artykułe omówimy integrację IronQR z .NET MAUI w celu stworzenia skanera kodów QR/BARCODE, który będzie działał płynnie na wielu platformach.

Jak zaimplementować skanowanie kodów QR za pomocą IronQR

  1. Utwórz projekt .NET MAUI.
  2. Zainstaluj pakiet IronQR NuGet.
  3. Skonfiguruj uprawnienia do kamery i przechowywania plików.
  4. Zaimplementuj skaner kodów QR.

Wprowadzenie do IronQR for .NET dla aplikacji mobilnych .NET MAUI

IronQR to potężna, łatwa w użyciu biblioteka, która upraszcza generowanie i dekodowanie kodów QR w aplikacjach .NET, w tym w aplikacjach mobilnych .NET MAUI z funkcją skanowania kodów QR i kodów kreskowych. Zapewnia szybkie i niezawodne rozwiązania do integracji funkcji skanowania kodów QR i BarCode na różnych platformach, takich jak iOS, Android, macOS i Windows, co jest niezbędne do tworzenia wielopłatformowych aplikacji mobilnych.

Funkcje IronQR for .NET dla aplikacji mobilnych .NET MAUI

  • Obsługa wielu platform: Działa płynnie na platformach iOS, Android, macOS i Windows w ramach aplikacji MAUI.
  • Skanowanie kodów QR: Efektywnie dekoduje różne typy kodów QR (adresy URL, tekst, dane kontaktowe itp.). Obsługuje również wiele BarCodes odczytywanych za pomocą wydajnych algorytmów wykrywania BarCodes.
  • Generowanie kodów QR: Umożliwia łatwe generowanie kodów QR na podstawie danych, takich jak adresy URL, teksty i inne.
  • Obsługa uprawnień do kamery: automatycznie obsługuje żądania uprawnień do kamery, upraszczając proces skanowania.
  • Wysoka wydajność: Szybkie i niezawodne skanowanie oraz generowanie kodów QR przy minimalnym zużyciu zasobów.
  • Ustawienia dostosowywane: Oferuje opcje dostosowywania parametrów skanowania i wyglądu kodu QR.
  • Łatwa integracja: proste API i minimalna konfiguracja wymagańa do dodania funkcji skanowania i generowania kodów QR do aplikacji .NET MAUI.
  • Obsługa błędów: Zapewnia szczegółowe komunikaty o błędach i wskazówki dotyczące rozwiązywania problemów, gwarantując płynne działanie w różnych sytuacjach.
  • Brak zewnętrznych zależności: IronQR działa niezależnie, co zmniejsza zapotrzebowanie na biblioteki stron trzecich lub skomplikówane konfiguracje, w przeciwieństwie do skanera BarCode ZXing.
  • Obsługa wielu formatów: Obsługuje wiele formatów kodów QR, zapewniając kompatybilność z szeroką gamą kodów QR używanych w praktyce.

Wymagania wstępne

Przed przystąpieniem do realizacji upewnij się, że spełniasz następujące wymagania wstępne:

  1. Zainstalowany program Visual Studio 2022 lub nowszy.
  2. .NET 6.0 SDK lub nowszy (ponieważ .NET MAUI jest oparty na .NET 6 i nowszych wersjach).
  3. Pakiet IronQR NuGet do skanowania kodów QR i wykrywania kodów BarCode.
  4. Aplikacja .NET MAUI (jeśli jeszcze jej nie masz, możesz utworzyć nową aplikację MAUI w Visual Studio).

Krok 1: Utwórz projekt .NET MAUI

Na początek stwórzmy prosty projekt .NET MAUI:

  1. Otwórz Visual Studio i kliknij Utwórz nowy projekt.
  2. Wybierz szablon aplikacji .NET MAUI.

    Nowy projekt

  3. Nadaj nazwę projektowi (np. MauiQRCodeScanner), wybierz lokalizację i kliknij Dalej.

    Konfiguracja projektu

    Wybierz wymagańą wersję .NET i kliknij Utwórz.

    Target Framework

Krok 2: Zainstaluj pakiet IronQR NuGet

IronQR to biblioteka innej firmy, która zapewnia funkcje generowania i skanowania kodów QR. Aby zainstalować IronQR, należy dodać go za pośrednictwem NuGet:

  1. W programie Visual Studio kliknij prawym przyciskiem myszy pozycję "Dependencies" (Zależności) w oknie Solution Explorer (Eksplorator rozwiązań).
  2. Kliknij Zarządzaj pakietami NuGet.
  3. W zakładce Przeglądaj wyszukaj IronQR i kliknij Zainstaluj przy odpowiednim pakiecie (zazwyczaj IronQR lub IronQr.Maui, jeśli jest dostępny specjalnie dla MAUI).
  4. Zaakceptuj wszelkie licencje i upewnij się, że biblioteka została zainstalowana.

    IronQR

Krok 3: Skonfiguruj uprawnienia do kamery i przechowywania plików

Aby Twoja aplikacja mogła skanować kody QR, musisz poprosić o uprawnienia do korzystania z aparatu na platformach mobilnych (iOS i Android). Oto jak można dodać następujące uprawnienia.

Android

W pliku AndroidManifest.xml dodaj uprawnienie do kamery:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
XML

iOS

W pliku Info.plist dodaj opis korzystania z kamery:

<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan QR codes</string>
<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan QR codes</string>
XML

Krok 4: Wdrożenie skanera kodów QR

Teraz stwórzmy prosty interfejs użytkownika dla naszego skanera kodów QR w aplikacji MAUI BarCode scanner. Użyjemy przycisku (Button) do uruchomienia procesu skanowania oraz etykiety (Label) do wyświetlenia tekstu zeskanowanego kodu QR.

Edytuj plik MainPage.xaml w przestrzeni nazw XML.

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="MauiQRCodeScanner.MainPage">

    <StackLayout Padding="20" VerticalOptions="Center">
        <Button x:Name="scanButton" Text="Scan QR Code" Clicked="OnScanButtonClicked" />
        <Label x:Name="resultLabel" Text="Scan Result will appear here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    </StackLayout>
</ContentPage>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             x:Class="MauiQRCodeScanner.MainPage">

    <StackLayout Padding="20" VerticalOptions="Center">
        <Button x:Name="scanButton" Text="Scan QR Code" Clicked="OnScanButtonClicked" />
        <Label x:Name="resultLabel" Text="Scan Result will appear here" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
    </StackLayout>
</ContentPage>
XML

Teraz, w MainPage.xaml.cs, zajmiesz się uprawnieniami kamery i logiką skanowania kodów QR. Oto jak to zrealizować:

using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;

namespace MauiQRCodeScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            License.LicenseKey = "Your key";  // Add your IronQR license key here
            InitializeComponent();
        }

        // OnScanButtonClicked method with object sender as input
        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            // Check for camera permission
            var status = await Permissions.RequestAsync<Permissions.Camera>();
            if (status != PermissionStatus.Granted)
            {
                await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
                return;
            }

            // Start scanning QR codes
            try
            {
                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);

                if (results.Any())
                {
                    resultLabel.Text = "Scanned Text: " + results.First().Value; 
        // Display the result
                }
                else
                {
                    resultLabel.Text = "No QR code detected";
                }
        }
        catch (Exception ex)
        {
            resultLabel.Text = "Error: " + ex.Message;
        }
        }
    }
}
using IronQrCode;
using Microsoft.Maui.Controls;
using Microsoft.Maui.Essentials;

namespace MauiQRCodeScanner
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            License.LicenseKey = "Your key";  // Add your IronQR license key here
            InitializeComponent();
        }

        // OnScanButtonClicked method with object sender as input
        private async void OnScanButtonClicked(object sender, EventArgs e)
        {
            // Check for camera permission
            var status = await Permissions.RequestAsync<Permissions.Camera>();
            if (status != PermissionStatus.Granted)
            {
                await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK");
                return;
            }

            // Start scanning QR codes
            try
            {
                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);

                if (results.Any())
                {
                    resultLabel.Text = "Scanned Text: " + results.First().Value; 
        // Display the result
                }
                else
                {
                    resultLabel.Text = "No QR code detected";
                }
        }
        catch (Exception ex)
        {
            resultLabel.Text = "Error: " + ex.Message;
        }
        }
    }
}
Imports IronQrCode
Imports Microsoft.Maui.Controls
Imports Microsoft.Maui.Essentials

Namespace MauiQRCodeScanner
	Partial Public Class MainPage
		Inherits ContentPage

		Public Sub New()
			License.LicenseKey = "Your key" ' Add your IronQR license key here
			InitializeComponent()
		End Sub

		' OnScanButtonClicked method with object sender as input
		Private Async Sub OnScanButtonClicked(ByVal sender As Object, ByVal e As EventArgs)
			' Check for camera permission
			Dim status = Await Permissions.RequestAsync(Of Permissions.Camera)()
			If status <> PermissionStatus.Granted Then
				Await DisplayAlert("Permission Denied", "Cannot scan QR codes without camera permission", "OK")
				Return
			End If

			' Start scanning QR codes
			Try
				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)

				If results.Any() Then
					resultLabel.Text = "Scanned Text: " & results.First().Value
		' Display the result
				Else
					resultLabel.Text = "No QR code detected"
				End If
		Catch ex As Exception
			resultLabel.Text = "Error: " & ex.Message
		End Try
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Wyjaśnienie kodu

  • Uprawnienia: Prosimy o uprawnienia do kamery za pomocą Permissions.RequestAsync<Permissions.Camera>(). Jeśli uprawnienie zostanie odrzucone, użytkownikowi wyświetli się komunikat ostrzegawczy.
  • IronQR Scanner: Wykorzystaj obiekty i metody biblioteki IronQR do skanowania kodów QR. Metoda QrReader.Read() próbuje zdekodować kody QR, a wynik jest wyświetlany na etykiecie.

Wprowadź kod QR

Wprowadzenie kodu QR

Wynik

Wynik kodu QR

Wybierz wymagańy kod QR lub zrób mu zdjęcie za pomocą aparatu.

Wybierz kod QR

Wynik jest wyświetlany w interfejsie użytkownika w sposób przedstawiony poniżej.

Wynik interfejsu użytkownika kodu QR

Licencja IronQR (dostępna wersja próbna)

IronQR działa z kluczem licencyjnym w kodzie aplikacji mobilnej. Programiści mogą łatwo uzyskać Licencję Trial na stronie licencji. Przed użyciem biblioteki IronQR umieść licencję w dowolnym miejscu w kodzie, tak jak poniżej.

License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
$vbLabelText   $csharpLabel

Wnioski

W tym artykułe omówiliśmy proces tworzenia skanera kodów QR w aplikacji .NET MAUI przy użyciu IronQR. Zaczęliśmy od skonfigurowania aplikacji .NET MAUI, zainstalowaliśmy pakiet IronQR i zaimplementowaliśmy interfejs użytkownika oraz logikę skanowania. IronQR sprawia, że skanowanie kodów QR w aplikacji .NET MAUI jest niezwykle proste i skuteczne.

Biblioteka IronQR została zaprojektowana jako wielopłatformowa, co gwarantuje, że aplikacje tworzone przy użyciu .NET MAUI mają spójny dostęp do funkcji kodów QR na wszystkich docelowych urządzeniach, niezależnie od tego, czy są to smartfony, tablety czy komputery stacjonarne. IronQR obsługuje również funkcje takie jak automatyczne zarządzanie uprawnieniami aparatu, co ułatwia integrację skanowania kodów QR bez konieczności ręcznego zarządzania uprawnieniami.

Krótko mówiąc, IronQR for .NET MAUI umożliwia programistom szybkie wdrażanie funkcji skanowania i generowania kodów QR w ich aplikacjach mobilnych, usprawniając proces tworzenia oprogramowania i poprawiając komfort użytkowania na wszystkich platformach.

Często Zadawane Pytania

Jak zintegrować skaner kodów QR z aplikacją .NET MAUI?

Aby zintegrować skaner kodów QR z aplikacją .NET MAUI, należy zainstalować bibliotekę IronQR za pośrednictwem NuGet i użyć metody QrReader.Read() do dekodowania kodów QR.

Jakie są kroki tworzenia projektu .NET MAUI do skanowania kodów QR?

Zacznij od otwarcia programu Visual Studio, utwórz nowy projekt przy użyciu szablonu aplikacji .NET MAUI i wybierz odpowiednią Wersję .NET. Następnie zainstaluj bibliotekę IronQR, aby zaimplementować skanowanie kodów QR.

Jakie uprawnienia są niezbędne do skanowania kodów QR w aplikacjach .NET MAUI?

Skanowanie kodów QR wymaga uprawnień do korzystania z aparatu. W systemie Android należy dodać niezbędne uprawnienia w pliku AndroidManifest.xml, a w systemie iOS zaktualizować plik Info.plist, dodając opis wykorzystania aparatu.

Jak zarządzać uprawnieniami kamery w aplikacji .NET MAUI?

Użyj Permissions.RequestAsync(), aby poprosić o uprawnienia do kamery. W przypadku odmowy wyświetl alert, aby poinformować o tym użytkownika.

Jakie są zalety korzystania z biblioteki IronQR do skanowania kodów QR?

IronQR oferuje obsługę wielu platform, wysoką wydajność, konfigurowalne ustawienia, automatyczne zarządzanie uprawnieniami kamery oraz obsługę wielu formatów, co czyni go idealnym rozwiązaniem dla aplikacji .NET MAUI.

Jak mogę rozwiązać problemy ze skanowaniem kodów QR w mojej aplikacji .NET MAUI?

Upewnij się, że biblioteka IronQR jest poprawnie zainstalowana, nadano uprawnienia do korzystania z aparatu, a aparat urządzenia działa. Sprawdź, czy w kodzie nie ma błędów, korzystając z bloków try-catch.

Co jest potrzebne, aby rozpocząć programowanie z wykorzystaniem .NET MAUI i skanowania kodów QR?

Potrzebujesz programu Visual Studio 2022 lub nowszego, zestawu SDK .NET 6.0 lub nowszego oraz pakietu IronQR NuGet, aby umożliwić skanowanie kodów QR i wykrywanie kodów BarCode.

Jak uzyskać Licencję Trial na bibliotekę kodów QR?

Odwiedź stronę licencji IronQR, aby uzyskać klucz licencji Trial. Wprowadź klucz licencji do swojego kodu przed rozpoczęciem korzystania z funkcji IronQR.

Jakie formaty obsługuje biblioteka IronQR do skanowania kodów QR?

IronQR obsługuje wiele formatów kodów QR i BarCode, dzięki czemu można go używać w różnych aplikacjach i na różnych platformach.

Jak mogę generować kody QR w aplikacji .NET?

Skorzystaj z metod biblioteki IronQR, aby efektywnie generować kody QR, co pozwoli Ci dostosować ustawienia do potrzeb Twojej aplikacji.

Jordi Bardia
Inżynier oprogramowania
Jordi jest najbardziej biegły w Pythonie, C# i C++. Kiedy nie wykorzystuje swoich umiejętności w Iron Software, programuje gry. Dzieląc odpowiedzialność za testowanie produktów, rozwój produktów i badania, Jordi wnosi ogromną wartość do ciągłej poprawy produktów. Różnorodne doświadczenia ...
Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie