IRONSOFTWAREHOME
USING IRONQR

如何使用 .NET MAUI 进行 QR 代码扫描

Curtis Chau
Curtis Chau
Updated: 2026年4月21日

随着移动应用程序利用QR码快速获取信息的增长,对高效且易于集成的QR码扫描器以及.NET MAUI条码扫描器以扫描条形码的需求也在增加。 .NET MAUI(多平台应用程序UI),微软的跨平台框架,提供了一个统一的环境,用于跨iOS、Android、macOS和Windows构建应用程序。 在.NET MAUI应用程序中扫描二维码时,开发者需要一个直观且功能强大的库来管理这个过程。

IronQR是一个受欢迎的库,可以让开发人员快速、准确和可靠地生成和解码QR码。 本文将引导您通过与.NET MAUI集成IronQR构建一个可以在多平台无缝工作的QR/条码扫描器。

如何使用IronQR实现二维码条码扫描

  1. 创建一个.NET MAUI项目。
  2. 安装IronQR NuGet包。
  3. 设置相机和文件存储的权限。
  4. 实现二维码扫描仪。

面向.NET MAUI移动应用的IronQR简介

IronQR是一个强大且易于使用的库,它简化了在.NET应用程序中生成和解码二维码的过程,包括用于二维码和条码扫描功能的.NET MAUI移动应用。 它为跨平台(如iOS、Android、macOS和Windows)的二维码和条码扫描功能集成提供了快速和可靠的解决方案,这对于构建跨平台移动应用至关重要。

面向.NET MAUI移动应用的IronQR功能

  • **跨平台支持:**在 MAUI 应用中,可无缝运行于 iOS、Android、macOS 和 Windows 平台。
  • **QR 码扫描:**高效解码各类 QR 码(URL、文本、联系信息等)。 它还支持用有效的条码检测算法读取多个条码。
  • **QR 码生成:**支持从 URL、文本等数据中轻松生成 QR 码。
  • **相机权限处理:**自动处理相机权限请求,简化扫描流程。
  • **高性能:**资源占用极低,可实现快速且可靠的QR码扫描与生成。
  • **可自定义设置:**提供扫描参数和QR码外观的自定义选项。
  • **轻松集成:**通过简单的 API 和极少的配置,即可为您的 .NET MAUI 应用添加 QR 码扫描和生成功能。
  • **错误处理:**提供详细的错误信息和故障排除指南,确保在各种场景下功能运行顺畅。
  • **无外部依赖:**IronQR 独立运行,无需第三方库或复杂配置,这与 ZXing BarCode 扫描器不同。
  • **多格式支持:**支持多种QR码格式,确保与现实世界中广泛使用的各类QR码兼容。

先决条件

在进行实施之前,请确保您具备以下先决条件:

  1. 安装了Visual Studio 2022或更高版本
  2. .NET 6.0 SDK或更高版本(因为.NET MAUI是基于.NET 6及更新版本构建的)。
  3. 用于二维码扫描和条码检测的IronQR NuGet包
  4. .NET MAUI应用程序(如果您还没有一个,可以在Visual Studio中创建一个新的MAUI应用)。

步骤1:创建.NET MAUI项目

首先,让我们创建一个简单的.NET MAUI项目:

  1. 打开Visual Studio,点击创建新项目

  2. 选择**.NET MAUI应用程序**模板。

    新项目

  3. 为项目命名(例如,MauiQRCodeScanner),选择位置,然后点击下一步

    项目配置

选择所需的.NET版本并点击创建。

目标框架

步骤2:安装IronQR NuGet包

IronQR是一个第三方库,提供二维码生成和扫描功能。 要安装IronQR,您需要通过NuGet添加它:

  1. 在Visual Studio中,右键点击你的解决方案资源管理器中的依赖项

  2. 点击管理NuGet包

  3. 浏览选项卡中,搜索IronQR,然后在相关的包上点击安装(通常是IronQR或IronQr.Maui,如果专门适用于MAUI)。

  4. 接受任何许可并确保库已安装。

    IronQR

步骤3:为摄像头和文件存储设置权限

为了让您的应用程序扫描二维码,您需要在移动平台(iOS和Android)上请求摄像头权限。 以下是您如何添加以下权限。

Android

AndroidManifest.xml文件中,添加相机权限:

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

iOS

Info.plist文件中,添加相机使用说明:

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

步骤4:实现QR码扫描器

现在,让我们在MAUI条码扫描应用中创建一个简单的用户界面来实现我们的二维码扫描仪。我们将使用按钮来触发扫描过程,并使用标签来显示扫描的二维码文本。

在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">

    <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

现在,在MainPage.xaml.cs中,您将处理相机权限和QR码扫描逻辑。 以下是如何实现它:

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;
        }
        }
    }
}

代码解释

  • **权限:**我们使用Permissions.RequestAsync<Permissions.Camera>()请求相机权限。 如果权限被拒绝,用户会看到一个警告。
  • **IronQR Scanner:**使用 IronQR 库的对象和方法扫描 QR 码。 QrReader.Read()方法尝试解码QR码,结果显示在标签上。

输入二维码

QR码输入

输出

QR码输出

选择所需的二维码或从摄像头饲料中捕获。

选择QR码

结果在UI中如下显示。

QR码UI输出

IronQR许可(可试用)

IronQR在移动应用代码中使用许可证密钥。 开发人员可以很容易地从许可证页面获取试用许可证。 在使用IronQR库之前,将许可证放置在代码中的某个位置,如下所示。

License.LicenseKey = "Your License";

结论

在本文中,我们介绍了在.NET MAUI应用程序中使用IronQR构建二维码扫描仪的过程。 我们首先通过设置.NET MAUI应用程序,安装IronQR包,并实现UI和扫描逻辑开始。 IronQR使得在.NET MAUI应用程序中进行二维码扫描变得非常简单和有效。

IronQR库旨在跨平台,从而确保用.NET MAUI构建的应用程序可以在所有目标设备上一致地访问二维码功能,无论它们是智能手机、平板电脑还是台式系统。 IronQR还支持自动处理摄像头权限等功能,使得集成二维码扫描变得更容易,无需手动管理权限的麻烦。

简而言之,IronQR 适用于 .NET MAUI使开发人员能够快速在其移动应用中实现二维码扫描和生成功能,简化了开发并在所有平台上提升了用户体验。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户