IRONSOFTWAREHOME

Jak odczytywać i zapisywać BARCODE w systemie iOS w .NET MAUI

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

.NET MAUI (Multi-platform App UI) opiera się na Xamarin.Forms, zapewniając ujednoliconą platformę do tworzenia aplikacji wielopłatformowych przy użyciu .NET. Umożliwia to programistom tworzenie natywnych interfejsów użytkownika, które działają płynnie na systemach Android, iOS, macOS i Windows, usprawniając proces tworzenia aplikacji.

BarCode.iOS package umożliwia wsparcie kodów kreskowych na iOS!

Pakiet IronBarcode dla systemu iOS

Pakiet BarCode.iOS umożliwia korzystanie z funkcji kodów kreskowych na urządzeniach z systemem iOS poprzez projekty wielopłatformowe .NET. Standardowy pakiet BarCode nie jest potrzebny.

PM > Install-Package BarCode.iOS

Biblioteka C# NuGet dla plików PDF

Zainstaluj za pomocą NuGet

Install-Package BarCode.iOS

Utworz projekt .NET MAUI

W sekcji "Multiplatform" wybierz opcję "Aplikacja .NET MAUI" i kontynuuj.

Utwórz projekt aplikacji .NET MAUI

Dołącz bibliotekę BarCode.iOS

Biblioteke można dodac na różne sposoby. Najłatwiej jest uzyc NuGet.

  1. W programie Visual Studio kliknij prawym przyciskiem myszy "Zależności > NuGet" i wybierz "Zarządzaj pakietami NuGet...".
  2. Wybierz zakładkę "Przeglądaj" i wyszukaj "BarCode.iOS".
  3. Wybierz pakiet "BarCode.iOS" i kliknij "Dodaj pakiet".

Aby uniknąć problemów z innymi platformami, zmodyfikuj plik csproj tak, aby dołączał pakiet tylko w przypadku platformy iOS. Aby to zrobic:

  1. Kliknij prawym przyciskiem na plik *.csproj w swoim projekcie i wybierz "Edit Project File".
  2. Utworz nowy element ItemGroup, jak poniżej:
<ItemGroup Condition="$(TargetFramework.Contains('ios')) == true">
    <PackageReference Include="BarCode.iOS" Version="2025.3.4" />
</ItemGroup>
XML
  1. Przenieś odwołanie do pakietu "BarCode.iOS" do właśnie utworzonej grupy ItemGroup.

Powyższe kroki zapobiegną użyciu pakietu "BarCode.iOS" na platformach takich jak Android. W tym celu zainstaluj zamiast tego BarCode.Android.

Zaprojektuj interfejs aplikacji

Zmodyfikuj plik XAML tak, aby akceptował wartości wejściowe do generowania kodów BARCODE i kodów QR. Należy również dodać przycisk do wyboru dokumentu w celu odczytania BARCODE. Poniżej znajduje się przykład:

<?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="IronBarcodeMauiIOS.MainPage">
 
    <VerticalStackLayout Padding="20">
        <HorizontalStackLayout>
            <CheckBox x:Name="generatePdfCheckBox" IsChecked="{Binding IsGeneratePdfChecked}" />
            <Label Text="PDF (unchecked for PNG)" VerticalOptions="Center"/>
        </HorizontalStackLayout>
    
        <Entry x:Name="barcodeInput" Placeholder="Enter barcode value..." />
        <Button Text="Generate and save barcode" Clicked="WriteBarcode" />

        <Entry x:Name="qrInput" Placeholder="Enter QR code value..." />
        <Button Text="Generate and save QR code" Clicked="WriteQRcode" />

        <Button
        Text="Read Barcode"
        Clicked="ReadBarcode"
        Grid.Row="0"
        HorizontalOptions="Center"
        Margin="20, 20, 20, 10"/>
        <ScrollView
        Grid.Row="1"
        BackgroundColor="LightGray"
        Padding="10"
        Margin="10, 10, 10, 30">
            <Label x:Name="OutputText"/>
        </ScrollView>
    </VerticalStackLayout>
 
</ContentPage>
XML

Czytaj i pisz kody kreskowe

Na podstawie kodu MainPage.xaml powyzej widzimy, ze checkbox decyduje, czy wygenerowany kod kreskowy i kod QR powinien być w formacie PDF. Nastepne ustawiamy klucz licencyjny. Uzyj prosze klucza licencyjnego proef lub platnego dla tego kroku.

Kod sprawdza i pobiera wartosc ze zmiennej barcodeInput, a nastepnie uzywa metody CreateBarcode do wygenerowania kodu kreskowego. Na koncu wywoluje metode SaveToDownloadsAsync, ktora zapisuje plik odpowiednio dla systemow Android i iOS.

W systemie iOS do wyeksportowania dokumentu do aplikacji Pliki wymagana jest niestandardowa ścieżka do pliku.

using IronBarCode;
namespace IronBarcodeMauiIOS;
public partial class MainPage : ContentPage
{
    public bool IsGeneratePdfChecked
    {
        get => generatePdfCheckBox.IsChecked;
        set
        {
            generatePdfCheckBox.IsChecked = value;
        }
    }
    public MainPage()
    {
        InitializeComponent();
        IronBarCode.License.LicenseKey = "IRONBARCODE-MYLICENSE-KEY-1EF01";
    }
    
    // Method to generate and save a barcode
    private async void WriteBarcode(object sender, EventArgs e)
    {
        try
        {
            if (!string.IsNullOrEmpty(barcodeInput.Text))
            {
                var barcode = BarcodeWriter.CreateBarcode(barcodeInput.Text, BarcodeEncoding.EAN13);
                // Determine file extension based on checkbox state
                string fileExtension = IsGeneratePdfChecked ? "pdf" : "png";
                string fileName = $"Barcode_{DateTime.Now:yyyyMMddHHmmss}.{fileExtension}";
                byte[] fileData = IsGeneratePdfChecked ? barcode.ToPdfBinaryData() : barcode.ToPngBinaryData();
                // Save the file to the appropriate location
                await SaveToDownloadsAsync(fileData, fileName);
            }
        }
        catch (Exception ex)
        {
            // Log exceptions to debug output
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }

    // Method to generate and save a QR code
    private async void WriteQRcode(object sender, EventArgs e)
    {
        try
        {
            if (!string.IsNullOrEmpty(qrInput.Text))
            {
                var barcode = QRCodeWriter.CreateQrCode(qrInput.Text);
                // Determine file extension based on checkbox state
                string fileExtension = IsGeneratePdfChecked ? "pdf" : "png";
                string fileName = $"QRcode_{DateTime.Now:yyyyMMddHHmmss}.{fileExtension}";
                byte[] fileData = IsGeneratePdfChecked ? barcode.ToPdfBinaryData() : barcode.ToPngBinaryData();
                // Save the file to the appropriate location
                await SaveToDownloadsAsync(fileData, fileName);
            }
        }
        catch (Exception ex)
        {
            // Log exceptions to debug output
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }

    // Method to read a barcode from a file
    private async void ReadBarcode(object sender, EventArgs e)
    {
        try
        {
            var options = new PickOptions
            {
                PickerTitle = "Please select a file"
            };
            var file = await FilePicker.PickAsync(options);
            OutputText.Text = "";
            if (file != null)
            {
                using var stream = await file.OpenReadAsync();
                BarcodeResults result;
                // Determine if the document is a PDF or an image
                if (file.ContentType.Contains("pdf"))
                {
                    result = BarcodeReader.ReadPdf(stream);
                }
                else
                {
                    result = BarcodeReader.Read(stream);
                }
                // Display the results
                string barcodeResult = "";
                int count = 1;
                result.ForEach(x => { barcodeResult += $"barcode {count}: {x.Value}\n"; count++; });
                OutputText.Text = barcodeResult;
            }
        }
        catch (Exception ex)
        {
            // Log exceptions to debug output
            System.Diagnostics.Debug.WriteLine(ex);
        }
    }

    // Method to save file data to the Downloads folder (or Documents on iOS)
    public async Task SaveToDownloadsAsync(byte[] fileData, string fileName)
    {
        // #if IOS
        // Define the custom path you want to save to
        var customPath = "/Users/Iron/Library/Developer/CoreSimulator/Devices/7D1F57F2-1103-46DA-AEE7-C8FC871502F5/data/Containers/Shared/AppGroup/37CD82C0-FCFC-45C7-94BB-FFEEF7BAFF13/File Provider Storage/Document";
        // Combine the custom path with the file name
        var filePath = Path.Combine(customPath, fileName);
        try
        {
            // Create the directory if it doesn't exist
            if (!Directory.Exists(customPath))
            {
                Directory.CreateDirectory(customPath);
            }
            // Save the file to the specified path
            await File.WriteAllBytesAsync(filePath, fileData);
            // Display a success message
            await Application.Current.MainPage.DisplayAlert("Saved", $"File saved to {filePath}", "OK");
        }
        catch (Exception ex)
        {
            System.Diagnostics.Debug.WriteLine("Error saving file: " + ex.Message);
        }
        // #endif
    }
}

Na koniec zmień cel kompilacji na iOS Simulator i uruchom projekt.

Uruchom projekt

To pokaze, jak uruchomic projekt i korzystać z funkcji kodu kreskowego.

Execute .NET MAUI App project

Pobierz projekt aplikacji .NET MAUI

Możesz pobrać pełny kod do tego przewodnika. Jest dostępny jako spakowany plik, który możesz otworzyć w Visual Studio jako projekt .NET MAUI App.

Kliknij tutaj, aby pobrać projekt.

Często Zadawane Pytania

Jak mogę tworzyć i skanować kody kreskowe w systemie iOS przy użyciu języka C#?

Możesz używać .NET MAUI z pakietem BarCode.iOS do tworzenia i skanowania kodów kreskowych na iOS. Zainstaluj pakiet przez NuGet, skonfiguruj swój projekt i użyj dostarczonych metod do generowania i odczytu kodów kreskowych.

Jakie są wymagania wstępne dotyczące tworzenia aplikacji do skanowania kodów kreskowych w .NET MAUI?

Upewnij się, że masz zainstalowane Visual Studio z obsługą .NET MAUI oraz dostęp do pakietu BarCode.iOS za pośrednictwem NuGet. Konfiguracja obejmie modyfikację XAML dla interfejsu użytkownika oraz C# dla obsługi kodów kreskowych.

Jak zmodyfikować plik XAML dla interfejsu użytkownika skanowania kodów kreskowych w .NET MAUI?

W pliku XAML należy uwzględnić pola wprowadzania wartości BARCODE, przyciski do operacji na BARCODE oraz etykiety do wyświetlania wyników, wykorzystując do układu elementy VerticalStackLayout i HorizontalStackLayout.

Jakiej metody należy użyć do wygenerowania BARCODE w aplikacji .NET MAUI?

Użyj metody WriteBarcode w klasie MainPage do generowania kodów kreskowych, wykorzystując klasę BarcodeWriter i zapisując pliki za pomocą SaveToDownloadsAsync.

Jak mogę rozwiązać problem, jeśli BarCode nie jest rozpoznawany w mojej aplikacji?

Upewnij się, że plik z kodem kreskowym jest poprawnie wybrany i czytelny. Użyj metody ReadBarcode, aby wybrać i zdekodować kod kreskowy, sprawdzając poprawność ścieżek i formatów plików.

Jaki jest cel ustawienia klucza licencyjnego w aplikacji do BarCode?

Ustawienie klucza licencyjnego w aplikacji zapewnia pełną funkcjonalność biblioteki BarCode bez ograniczeń, co ma kluczowe znaczenie w środowiskach produkcyjnych.

Jak mogę zapisać wygenerowany BarCode jako plik PDF lub PNG?

Użyj właściwości IsGeneratePdfChecked, aby określić format wyjściowy. Jeśli jest zaznaczona, barcodes są zapisywane jako pliki PDF; w przeciwnym razie są zapisywane jako obrazy PNG.

Jak wygląda proces uruchamiania projektu .NET MAUI z kodami BarCode na symulatorze iOS?

Po skonfigurowaniu projektu wybierz symulator iOS jako miejsce wdrożenia w Visual Studio i uruchom projekt, aby przetestować działanie BarCode w symulowanym środowisku.

Jak mogę pobrać przykładowy projekt do skanowania BarCode w .NET MAUI?

Kompletny przykładowy projekt jest dostępny do pobrania w postaci pliku ZIP, który można otworzyć w programie Visual Studio, aby zapoznać się ze szczegółami implementacji skanowania kodów kreskowych w systemie iOS.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 2,422,100Wersja:2026.9właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package BarCode
nuget.org/packages/BarCode/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i wyszukaj "IronBarCode"
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

  1. Pobierz i rozpakuj IronBarCode do lokalizacji, takiej jak ~/Libs w katalogu Twojego rozwiązania
  2. W Eksploratorze Rozwiązań Visual Studio kliknij prawym przyciskiem Referencje. Wybierz Przeglądaj, "IronBarCode.dll"

Licencje od $999

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta