使用 IRONQR

如何使用 .NET MAUI 進行 QR Code 掃描器

發佈 2025年1月13日
分享:

介紹

隨著利用 QR 碼快速檢索信息的移動應用程序的興起,高效且易於集成的 QR 碼掃描器,以及用於掃描條碼的 .NET MAUI 條碼掃描器的需求正在增長。.NETMAUI(跨平台應用程式使用者介面),Microsoft 的跨平台框架提供了一個統一的環境,用於跨 iOS、Android、macOS 和 Windows 構建應用程式。 在 .NET MAUI 應用程式中掃描 QR Code 時,開發人員需要一個直觀且強大的程式庫來管理該過程。

IronQR是一個受歡迎的庫,允許開發人員快速、準確且可靠地生成和解碼QR碼。 本文將指導您如何將IronQR與.NET MAUI整合,以構建一個可以跨多個平台無縫運行的QR/條碼掃描器。

如何使用 IronQR 實現 QR 條碼掃描

  1. 建立 .NET MAUI 專案。

  2. 安裝 IronQR NuGet 套件。

  3. 設定相機和文件存儲的權限。

  4. 實施 QR Code 掃描器。

IronQR for .NET MAUI 行動應用程式介紹

IronQR 是一個強大且易於使用的程式庫,簡化了在 .NET 應用程式中生成和解碼 QR 碼的過程,包括用於 QR 和條碼掃描功能的 .NET MAUI 手機應用程式。 它提供快速且可靠的解決方案,用於在 iOS、Android、macOS 和 Windows 等平台整合 QR 碼和條碼掃描功能,這對於構建跨平台的移動應用程式至關重要。

IronQR for .NET MAUI Mobile Apps 的特色

a. 跨平台支援:在 MAUI 應用程式中可於 iOS、Android、macOS 和 Windows 平台上無縫運行。

**b. QR Code 扫描:有效解碼各種類型的 QR Code(網址、文字、聯繫信息等。). 它還支援多種條碼的讀取,使用高效的條碼檢測算法。

c. QR Code 生成:這讓從 URL、文本等數據中輕鬆生成 QR Code。

d. 相機權限處理:自動處理相機權限請求,簡化掃描過程。

e. 高性能:快速且可靠的 QR Code 掃描和生成,資源使用量最少。

f. 自訂設置**:提供掃描參數和 QR Code 外觀的自訂選項。

g. 輕鬆整合:只需簡單的 API 和最少的設定,即可將 QR Code 掃描和生成功能添加到您的 .NET MAUI 應用中。

h. 錯誤處理:提供詳細的錯誤訊息和故障排除,確保在各種情境下的功能順暢。

i. 無需外部依賴:IronQR 獨立運行,減少對第三方庫或複雜配置的需求,與 ZXing 條碼掃描器不同。

j. 多格式支持:支持多種 QR Code 格式,確保與現實世界中廣泛使用的 QR Code 相容。

先決條件

在進行實施之前,請確保您具備以下先決條件:

  1. 需安裝 Visual Studio 2022 或更新版本

  2. .NET 6.0 SDK 或更高版本(由於 .NET MAUI 建立在 .NET 6 及更高版本之上).

  3. IronQR NuGet 套件 用於 QR 碼掃描和條碼檢測。

  4. .NET MAUI 應用程式(如果你還沒有現有的 MAUI 應用程式,可以在 Visual Studio 中建立一個新的應用程式。).

步驟 1:建立一個 .NET MAUI 專案

首先,讓我們創建一個簡單的 .NET MAUI 專案:

  1. 打開 Visual Studio,然後點擊 建立新專案

  2. 選擇 .NET MAUI App 模板。

    新專案

  3. 命名專案(例如,MauiQRCodeScanner),選擇一個位置,然後點擊 下一步

    專案配置

  4. 選擇所需的 .NET 版本,然後點擊創建

    目標框架

第 2 步:安裝 IronQR NuGet 套件

IronQR 是一個第三方函式庫,提供 QR Code 的生成和掃描功能。 若要安裝 IronQR,您需要透過 NuGet 新增它:

  1. 在 Visual Studio 中,右鍵點擊方案總管中的 Dependencies

  2. 點擊管理 NuGet 套件

  3. 瀏覽選項卡中,搜尋 IronQR 並點擊相關套件上的 安裝(通常是 IronQR 或 IronQR.Maui,如果特別適用於 MAUI。).

  4. 接受任何許可證並確保安裝該庫。

    IronQR

步驟 3:設定相機和檔案儲存的權限

要讓您的應用程式掃描 QR 碼,您需要在行動平台上請求相機權限。(iOS 和 Android). 以下是您可以如何添加以下許可權。 請提供內容以進行翻譯。

Android 裝置:在 AndroidManifest.xml 文件中,添加相機權限:

請提供內容以進行翻譯。 請提供內容以進行翻譯。

iOS:在 Info.plist 文件中,添加相機使用說明:

NSCameraUsageDescription我們需要訪問您的相機以掃描 QR 碼。

請提供內容以進行翻譯。

步驟 4:實作 QR Code 掃描器

現在,讓我們在 MAUI 條碼掃描器應用程式中為我們的 QR 掃描器創建一個簡單的 UI。我們將使用按鈕來觸發掃描過程,並使用標籤顯示掃描到的 QR Code 文本。

在 XML 命名空間中編輯 MainPage.xaml 檔案。 請提供內容以進行翻譯。

<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"

         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

x:Class="MauiQRCodeScanner.MainPage">

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

namespace MauiQRCodeScanner;

public partial class MainPage : ContentPage
{
    public MainPage()
    {
    License.LicenseKey = "Your key";
        InitializeComponent();
    }

// OnScanButtonClicked method with object sender as input
    private async void OnScanButtonClicked(object sender, EventArgs e)
    {
        // Check for camera permission for var barcode with clear and valid reason
        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();
        // barcodeImage.Source = imageSource;

        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"
			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 for var barcode with clear and valid reason
			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()
			' barcodeImage.Source = imageSource;

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

輸入 QR Code

QR Code 輸入

輸出

QR碼輸出

選取所需的 QR Code 或從攝影機影像中擷取它。

選擇 QR 碼

結果在 UI 中顯示如下。

QR Code UI 輸出

程式碼說明

權限:我們使用 Permissions.RequestAsync請求相機權限。(). 如果權限被拒絕,將向用戶顯示警示。

IronQR 掃描器:IronQrCode.Scanner()類別用於掃描QR碼。 ScanAsync()方法觸發掃描,結果存儲在 scanResult 中。 掃描的 QR Code 文本顯示在 resultLabel 中。

測試 QR Code 掃描器:現在,您已準備好測試 QR Code 掃描器。 當應用程式運行時,點擊「掃描 QR Code」按鈕將啟動掃描過程。 如果相機前方有有效的QR Code,它將被解碼並顯示在螢幕上。

IronQR 授權 (提供試用)

IronQR 在行動應用程式代碼中使用許可證密鑰運作。 開發人員可以輕鬆從許可證頁面。 在使用IronQR程式庫之前,將許可證置於程式碼中的如下位置。

License.LicenseKey = "Your License";
License.LicenseKey = "Your License";
License.LicenseKey = "Your License"
VB   C#

結論

在本文中,我們介紹了使用 IronQR 在 .NET MAUI 應用程式中建立 QR Code 掃描器的過程。 我們首先設立了一個 .NET MAUI 應用程式,安裝了 IronQR 套件,並實現了用戶介面和掃描邏輯。 IronQR 使得在 .NET MAUI 應用程式中掃描 QR Code 變得非常簡單且高效。

IronQR 程式庫旨在具有跨平台性,確保透過 .NET MAUI 構建的應用程式能在所有目標裝置(無論是智慧型手機、平板電腦或桌面系統)上穩定存取 QR Code 功能。 IronQR 還支援自動相機權限處理等功能,使整合 QR Code 掃描更容易,無需手動管理權限的麻煩。

簡而言之,IronQR for .NET MAUI 使開發人員能夠快速在其移動應用中實現 QR Code 掃描和生成功能,簡化開發並改善所有平台上的用戶體驗。

< 上一頁
智能手錶 QR Code 掃描器(.NET 開發者教程)
下一個 >
如何在 ASP .NET Core 中生成 QR Code