.NET MAUI 條碼掃描器

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

介紹

.NET MAUI (.NET 多平台應用程式介面)是一個跨平台框架,可以幫助您更容易地在單一代碼庫中創建跨平台應用程序。 例如,您可以在一個項目中輕鬆創建Microsoft Windows、IOS和Android應用程序。 它與其他平台、框架和庫的不同之處在於它讓開發者社區在其項目中使用原生控件並為他們提供額外的組件。 因此,開發人員可以使用這些預製的組件和服務來更快地構建應用程序,而無需從頭開始編寫代碼的每一個方面。

在這篇文章中,我將解釋如何在 .NET MAUI Windows 應用程序中掃描 QR 碼或條碼。

IronBarcode:C# 條碼庫

IronBarcode 是一個 .NET 函式庫,可以輕鬆地在程式中創建條碼。 它提供了一套強大且容易使用的預設 API。IronBarcode 庫提供了生成和讀取 QR 碼或其他條碼的功能,在物件層面上操作,因此您可以通過調用其方法一次開發一個,而無需擔心創建條碼對象和先前知識的細節。 此外,它不需要加載任何外部依賴即可工作,並且可以使用 NuGet 包管理器輕鬆下載。

IronBarcode 支援多種 QR 碼和現代條碼格式,如 Code 39、Code 128、PDF417 等等。 您也可以將這個 .NET 函式庫用作 QR 碼讀取器以及建構器。 它將輸入數據解碼為人類可讀的文字。 您可以從圖像、流、GIF 和更多來源獲取輸入。 本文還將解釋我們如何使用IronBarcode庫在.NET MAUI應用中讀取和掃描QR碼。

在 .NET MAUI 應用程式中讀取和掃描條碼的步驟

按照以下步驟在 .NET MAUI 應用程式中讀取 QR 碼。

先決條件

  1. Visual Studio 2022

  2. 在 Visual Studio 中運行的 .NET MAUI 項目

  3. 穩定的網路來安裝用於條碼掃描的 IronBarcode 函式庫

    假設您具備上述條件,則可以進行下一步。

安裝 IronBarcode 程式庫

我們可以使用 NuGet 套件控制台安裝 IronBarcode 函式庫。 在控制台中輸入以下命令:

Install-Package BarCode

此控制台命令將在 MAUI 項目中下載 IronBarcode 程式庫的最新版本。 但是,您當然可以隨時在 NuGet 包庫上檢查和搜索最新版本。NuGet網站.

前端

首先,我們必須創建前端設計。

我們將創建一個佈局,其中包括兩個按鈕、一個文字區域和一個圖片框。 一個按鈕將用於選擇條碼,另一個按鈕將用來複製條碼的文字。 圖片框將顯示所選的圖片。

MainPage.xaml 檔案中的內容替換為以下內容:

<?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="MAUI_Barcode.MainPage">

    <ScrollView>
        <VerticalStackLayout
            Spacing="25"
            Padding="30,0"
            VerticalOptions="Center">

            <Button
                x:Name="ImageSelect"
                Text="Select Barcode"
                SemanticProperties.Hint="Select Image"
                Clicked="SelectBarcode"
                HorizontalOptions="Center" />
            <Image
                x:Name="barcodeImage"
                SemanticProperties.Description="Selected Barcode"
                HeightRequest="200"
                HorizontalOptions="Center" />
            <Editor x:Name="outputText"
                Placeholder="Output text"
                HeightRequest="100"
                WidthRequest="500" />
            <Button
                x:Name="copyText"
                Text="Copy"
                SemanticProperties.Hint="Copy Text"
                WidthRequest="150"
                Clicked="CopyEditorText"
                HorizontalOptions="Center" />

        </VerticalStackLayout>
    </ScrollView>

</ContentPage>
XML

所有元素都堆疊在垂直中心位置。 您可以根據您的喜好進行更改。

使用 IronBarcode 進行條碼掃描

此部分將描述使用 IronBarcode 程式庫掃描條碼的代碼。 首先,我們將使用 FilePicker 來選擇文件並指定圖像的文件類型。 之後,我們將使用 FullPath 屬性來檢索圖像文件的路徑,然後將圖像框的源設置為 FullPath 值。 最後,我們將在 BarcodeReaderRead 函數中使用 path 值來檢索文本。

private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
private async void SelectBarcode(object sender, EventArgs e)
{
    var images = await FilePicker.Default.PickAsync(new PickOptions
    {
    PickerTitle = "Pick image",
    FileTypes = FilePickerFileType.Images
    });
    var imageSource = images.FullPath.ToString();
    barcodeImage.Source = imageSource;
    var result = BarcodeReader.Read(imageSource).First().Text;
    outputText.Text = result;
}
Private Async Sub SelectBarcode(ByVal sender As Object, ByVal e As EventArgs)
	Dim images = Await FilePicker.Default.PickAsync(New PickOptions With {
		.PickerTitle = "Pick image",
		.FileTypes = FilePickerFileType.Images
	})
	Dim imageSource = images.FullPath.ToString()
	barcodeImage.Source = imageSource
	Dim result = BarcodeReader.Read(imageSource).First().Text
	outputText.Text = result
End Sub
VB   C#

以下代碼將用於複製文字編輯器的文本,並向用戶顯示文本已被複製的警告訊息。

private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
private async void CopyEditorText (object sender, EventArgs e)
{
    await Clipboard.SetTextAsync(outputText.Text);
    await DisplayAlert("Success", "Text is copied!", "OK");
}
Private Async Sub CopyEditorText(ByVal sender As Object, ByVal e As EventArgs)
	Await Clipboard.SetTextAsync(outputText.Text)
	Await DisplayAlert("Success", "Text is copied!", "OK")
End Sub
VB   C#

您可以獲取此專案來閱讀和掃描代碼在 GitHub().

輸出

在執行專案後,您將看到以下輸出。 影像未顯示是因為尚未選擇。

.NET MAUI 條碼掃描器教程使用 IronBarcode - 圖 1:未選擇圖像時的輸出

未選擇圖片時的輸出

選擇條碼時,它將顯示如下截圖,並且 QR Code 的輸出文本將顯示在編輯器中。

.NET MAUI 條碼掃描器教程使用 IronBarcode - 圖 2: 選擇圖像後的輸出

選擇圖片後的輸出

點擊複製按鈕將觸發前面提到的警示窗口出現。

.NET MAUI 條碼掃描器教程 使用 IronBarcode - 圖 3:複製提示

複製警報

結論

在這篇文章中,解釋了如何在 .NET MAUI 應用程式中使用 IronBarcode 來讀取條碼。 IronBarcode 是一套完整的產品,具備執行條碼操作所需的所有必要工具。 作為 QR 碼讀取器,IronBarcode 表現非常出色。 它提供了預期的確切輸出。 此外,它可以讀取複雜的條碼。 您也可以使用不同的字體來創建和自定義條碼。 獲取更多有關 IronBarcode 的教程文章,從這里开始。連結.

IronBarcode 在開發目的下是免費的。 但是用於商業用途,您必須購買許可證。 您可以使用以下方式獲取有關授權的信息連結.