IronQR 开始 .NET MAUI二维码扫描器 .NET MAUI 二维码扫描器 Curtis Chau 已更新:2026年3月2日 下载 IronQR NuGet 下载 免费试用 LLM副本 LLM副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 This article was translated from English: Does it need improvement? Translated View the article in English 简介 .NET MAUI(.NET 多平台应用 UI)是一个跨平台框架,用于基于单一 C# 代码库构建原生移动和桌面应用程序。 一个项目可以同时面向 Android、iOS、macOS 和 Windows 平台,并在所有平台上共享 UI 布局和业务逻辑。 MAUI 与 .NET 生态系统的深度集成,意味着开发人员无需放弃熟悉的工具或语言,即可触达移动端用户。 在本文中,我们将讲解如何在 .NET MAUI 应用程序中使用 IronQR 构建原生二维码扫描器,以解码从设备照片库中选定的二维码。 如何在 .NET MAUI 中构建二维码扫描器 安装 IronQR C# 库,在移动设备上扫描二维码 在 `MainPage.xaml` 中设计应用程序布局 使用 `FilePicker` 让用户从设备中选择 QR 码图片 加载图片并将其封装在 `QrImageInput` 中 调用 `Read` 方法,并在 `Label` 中显示解码后的值 IronQR:C# QR码库 要在应用程序中读取二维码,我们将使用 IronQR .NET 库。 它提供了一个直观的 API,用于从任何图像源(包括移动设备上选定的文件)中检测和解码二维码。IronQR 可在所有 MAUI 目标平台上运行,集成时无需具备 BarCode 领域的专业知识。 IronQR 能够解码标准 QR 码、Micro QR 码和 rMQR 码,并支持以文件、流或位图形式输入图像。 可通过 NuGet 包管理器在几秒钟内完成安装。 在 .NET MAUI 中构建二维码扫描器的步骤 请按照以下步骤在 .NET MAUI 应用程序中添加二维码扫描功能。 前提条件 安装了 .NET MAUI 工作负载的 Visual Studio 2022 面向 Android 或 iOS 的 .NET MAUI 项目 安装 IronQR 请通过 Visual Studio 中的 NuGet 包管理器控制台安装 IronQR 库。 导航至 Tools > NuGet Package Manager > Package Manager Console 并运行: Install-Package IronQR 或者,在 NuGet 上搜索 IronQR 并安装最新版本。 前端设计 扫描器界面包含一个用于触发图像选择的按钮、一个用于预览所选二维码的图像视图,以及一个用于显示解码结果的标签。 将 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="MauiQrScanner.MainPage"> <ScrollView> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Button x:Name="scanButton" Text="Select QR Code Image" SemanticProperties.Hint="Select Image" Clicked="OnScanButtonClicked" HorizontalOptions="Center" /> <Image x:Name="qrImage" SemanticProperties.Description="Selected QR Code" HeightRequest="200" HorizontalOptions="Center" /> <Label x:Name="resultLabel" Text="Scanned Text: " HorizontalOptions="Center" VerticalOptions="Center" /> </VerticalStackLayout> </ScrollView> </ContentPage> <?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="MauiQrScanner.MainPage"> <ScrollView> <VerticalStackLayout Spacing="25" Padding="30,0" VerticalOptions="Center"> <Button x:Name="scanButton" Text="Select QR Code Image" SemanticProperties.Hint="Select Image" Clicked="OnScanButtonClicked" HorizontalOptions="Center" /> <Image x:Name="qrImage" SemanticProperties.Description="Selected QR Code" HeightRequest="200" HorizontalOptions="Center" /> <Label x:Name="resultLabel" Text="Scanned Text: " HorizontalOptions="Center" VerticalOptions="Center" /> </VerticalStackLayout> </ScrollView> </ContentPage> XML 示例输入 请使用下方的二维码作为测试图片。 将其保存到设备中,然后通过应用的文件选择器进行选择。 解码后的值应显示为 https://ironsoftware.com。 示例二维码 — 编码地址:`https://ironsoftware.com` 使用 IronQR 扫描二维码 点击扫描按钮时,FilePicker 将打开设备的图片库。 用户选择照片后,其完整路径会被加载到 AnyBitmap 中,并传递给 QrReader.Read()。 从第一个检测到的二维码中解码出的值将显示在结果标签中。 在 MainPage.xaml.cs 中添加以下方法: using IronQr; using IronSoftware.Drawing; private async void OnScanButtonClicked(object sender, EventArgs e) { // Start scanning QR codes 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); // Display the first result resultLabel.Text = "Scanned Text: " + results.First().Value; } using IronQr; using IronSoftware.Drawing; private async void OnScanButtonClicked(object sender, EventArgs e) { // Start scanning QR codes 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); // Display the first result resultLabel.Text = "Scanned Text: " + results.First().Value; } Imports IronQr Imports IronSoftware.Drawing Private Async Sub OnScanButtonClicked(sender As Object, e As EventArgs) ' Start scanning QR codes 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) ' Display the first result resultLabel.Text = "Scanned Text: " & results.First().Value End Sub $vbLabelText $csharpLabel FilePicker.Default.PickAsync 由 MAUI 平台抽象层提供,可在 Android、iOS 和 Windows 系统上运行,且无需任何平台专属代码。 AnyBitmap.FromFile 负责图像解码,而 QrReader.Read 会返回一个 IEnumerable<QrResult> 对象,其中包含图像中每个 QR 码对应的一条记录。 输出 选择二维码图片即可触发扫描。 解码后的值显示在图片预览下方的结果标签中。 结果标签中显示已选中并解码的二维码值 下载项目 点击此处下载完整的 MauiQrScanner 项目。 结论 在本文中,我们演示了如何使用 IronQR 在 .NET MAUI 应用程序中构建原生二维码扫描器。 FilePicker API 在 Android、iOS 和 Windows 平台上提供原生图像选择功能,而 IronQR 的 QrReader.Read 则通过单次调用即可完成解码。 通过遍历完整的结果集合(而非调用 .First()),该方法同样适用于每张图片包含多个二维码的情况。 IronQR 要求在开发和商业使用时获得许可。 许可详情请参见此处。 若需深入了解如何读取 QR 码属性(不仅限于数值),请参阅《读取 QR 码数值》和《读取 QR 码类型》指南。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 准备开始了吗? Nuget 下载 63,625 | 版本: 2026.4 刚刚发布 免费试用 免费 NuGet 下载 总下载量:63,625 查看许可证 还在滚动吗? 想快速获得证据? PM > Install-Package IronQR 运行示例 观看您的 URL 变成 QR 代码。 免费 NuGet 下载 总下载量:63,625 查看许可证