使用 IRONQR 如何使用 .NET MAUI 进行 QR 代码扫描 Jordi Bardia 已更新:2025年8月20日 下载 IronQR NuGet 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在 Grok 中打开 向 Grok 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 随着移动应用程序利用二维码进行快速信息检索的兴起,对一个高效且易于集成的二维码扫描仪以及.NET MAUI 条码扫描仪以扫描条码的需求在增长。.NETMAUI (多平台应用UI),微软的跨平台框架,为在iOS、Android、macOS和Windows上构建应用程序提供了一个统一环境。 在.NET MAUI应用程序中扫描二维码时,开发者需要一个直观且功能强大的库来管理这个过程。 IronQR是一个流行的库,它允许开发人员快速、准确和可靠地生成和解码二维码。 本文将引导你如何将IronQR与.NET MAUI集成以构建一个可以无缝跨多个平台工作的二维码/条码扫描仪。 如何使用IronQR实现二维码条码扫描 创建一个.NET MAUI项目。 安装IronQR NuGet包。 设置相机和文件存储的权限。 实现二维码扫描仪。 面向.NET MAUI移动应用的IronQR简介 IronQR是一个强大且易于使用的库,它简化了在.NET应用程序中生成和解码二维码的过程,包括用于二维码和条码扫描功能的.NET MAUI移动应用。 它为跨平台(如iOS、Android、macOS和Windows)的二维码和条码扫描功能集成提供了快速和可靠的解决方案,这对于构建跨平台移动应用至关重要。 面向.NET MAUI移动应用的IronQR功能 -跨平台支持:可在 MAUI 应用程序中无缝运行于 iOS、Android、macOS 和 Windows 平台。 -二维码扫描:高效解码各种类型的二维码(网址、文本、联系信息等)。 它还支持用有效的条码检测算法读取多个条码。 -二维码生成:此功能可以轻松地从 URL、文本等数据生成二维码。 -摄像头权限处理:自动处理摄像头权限请求,简化扫描过程。 -高性能:快速可靠地扫描和生成二维码,资源占用极低。 -可自定义设置:提供扫描参数和二维码外观的自定义选项。 -轻松集成:只需简单的 API 和最少的设置,即可将二维码扫描和生成功能添加到您的 .NET MAUI 应用程序中。 -错误处理:提供详细的错误信息和故障排除,确保在各种情况下都能流畅运行。 -无外部依赖项: IronQR 独立运行,减少了对第三方库或复杂配置的需求,这与 ZXing 条码扫描器不同。 -多格式支持:支持多种二维码格式,确保与现实世界中使用的各种二维码兼容。 先决条件 在进行实施之前,请确保您具备以下先决条件: 安装了Visual Studio 2022或更高版本。 .NET 6.0 SDK或更高版本(因为.NET MAUI是基于.NET 6及更新版本构建的)。 用于二维码扫描和条码检测的IronQR NuGet包。 .NET MAUI应用程序(如果您还没有一个,可以在Visual Studio中创建一个新的MAUI应用)。 步骤1:创建.NET MAUI项目 首先,让我们创建一个简单的.NET MAUI项目: 打开Visual Studio,点击创建新项目。 选择.NET MAUI应用程序模板。 为项目命名(例如,MauiQRCodeScanner),选择位置,然后点击下一步。 选择所需的.NET版本并点击创建。 步骤2:安装IronQR NuGet包 IronQR是一个第三方库,提供二维码生成和扫描功能。 要安装IronQR,您需要通过NuGet添加它: 在Visual Studio中,右键点击你的解决方案资源管理器中的依赖项。 点击管理NuGet包。 在浏览选项卡中,搜索IronQR,然后在相关的包上点击安装(通常是IronQR或IronQR.Maui,如果专门适用于MAUI)。 接受任何许可并确保库已安装。 步骤3:为摄像头和文件存储设置权限 为了让您的应用程序扫描二维码,您需要在移动平台(iOS和Android)上请求摄像头权限。 以下是您如何添加以下权限。 Android 在AndroidManifest.xml文件中,添加摄像头权限: <uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" /> <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> <key>NSCameraUsageDescription</key> <string>We need access to your camera to scan QR codes</string> XML 步骤4:实现二维码扫描仪 现在,让我们在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> <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中,您将处理摄像头权限和二维码扫描逻辑。 以下是如何实现它: 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; } } } } 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; } } } } 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" ' Add your IronQR license key here 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 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() 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 $vbLabelText $csharpLabel 代码解释 -权限:我们使用Permissions.RequestAsync<Permissions.Camera> ()请求相机权限。 Permissions.RequestAsync<Permissions.Camera> () 。 如果权限被拒绝,用户会看到一个警告。 IronQR 扫描器:使用 IronQR 库对象和方法来扫描二维码。 QrReader.Read()方法尝试解码二维码,并将结果显示在标签上。 输入二维码 输出 !QR代码输出 选择所需的二维码或从摄像头饲料中捕获。 结果在UI中如下显示。 IronQR许可(可试用) IronQR在移动应用代码中使用许可证密钥。 开发人员可以很容易地从许可证页面获取试用许可证。 在使用IronQR库之前,将许可证放置在代码中的某个位置,如下所示。 License.LicenseKey = "Your License"; License.LicenseKey = "Your License"; License.LicenseKey = "Your License" $vbLabelText $csharpLabel 结论 在本文中,我们介绍了在.NET MAUI应用程序中使用IronQR构建二维码扫描仪的过程。 我们首先通过设置.NET MAUI应用程序,安装IronQR包,并实现UI和扫描逻辑开始。 IronQR使得在.NET MAUI应用程序中进行二维码扫描变得非常简单和有效。 IronQR库旨在跨平台,从而确保用.NET MAUI构建的应用程序可以在所有目标设备上一致地访问二维码功能,无论它们是智能手机、平板电脑还是台式系统。 IronQR还支持自动处理摄像头权限等功能,使得集成二维码扫描变得更容易,无需手动管理权限的麻烦。 简而言之,IronQR for .NET MAUI使开发人员能够快速在其移动应用中实现二维码扫描和生成功能,简化了开发并在所有平台上提升了用户体验。 常见问题解答 我如何在.NET MAUI应用中集成QR Code扫描器? 要在.NET MAUI应用中集成QR Code扫描器,请通过NuGet安装IronQR库,并使用QrReader.Read()解码QR Codes。 创建用于QR扫描的.NET MAUI项目的步骤是什么? 首先打开Visual Studio,使用.NET MAUI App模板创建一个新项目,并选择必要的.NET版本。然后,安装IronQR库以实施QR扫描。 在.NET MAUI应用中QR扫描需要哪些必备权限? QR扫描需要摄像头权限。在Android上,在AndroidManifest.xml中添加必要的权限,在iOS上,更新Info.plist以描述摄像头使用。 我如何在.NET MAUI应用中管理摄像头权限? 使用Permissions.RequestAsync<Permissions.Camera>()请求摄像头权限。如果被拒绝,请显示警报通知用户。 使用IronQR库进行QR扫描有什么好处? IronQR提供跨平台支持、高性能、可定制设置、自动摄像头权限处理和多格式支持,使其成为.NET MAUI应用的理想选择。 我如何排除.NET MAUI应用中QR Code扫描的问题? 确保IronQR库已正确安装、摄像头权限已授予且设备摄像头正常工作。使用try-catch块检查代码中的任何错误。 开发.NET MAUI和QR扫描需要什么? 您需要Visual Studio 2022或更高版本、.NET 6.0 SDK或更新版本,以及IronQR NuGet包来促进QR Code扫描和条形码检测。 我如何获得QR code库的试用许可证? 访问IronQR许可证页面获取试用许可证密钥。在使用IronQR功能之前将许可证密钥插入代码中。 IronQR库支持哪些格式的QR扫描? IronQR支持多种QR Code和条形码格式,确保可在不同应用和平台上使用。 我如何在.NET应用中生成QR Codes? 使用IronQR库的方法有效地生成QR Codes,允许您根据应用程序的需要自定义设置。 Jordi Bardia 立即与工程团队聊天 软件工程师 Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。 相关文章 已更新2026年1月7日 QR Code Generator .NET Core:在 C# 中创建和读取快速响应代码 QR 代码 .NET Core 教程:使用 C# 中的 IronQR 生成 QR 代码、配置纠错级别、添加徽标,并以 ML 驱动的精度读取 QR 代码。 阅读更多 已更新2026年1月7日 NuGet QR 码生成器:只需几行代码即可在 C# 中生成 QR 代码 安装 NuGet QR 代码包,只需几行代码就能用 C# 生成 QR 代码。支持跨平台 .NET、自定义样式、PDF 嵌入和 ML 驱动的读取。 阅读更多 已更新2026年1月5日 QR 代码生成器 .NET Core:只需几行代码即可读取和生成 QR 代码 QR 代码 .NET Core 教程:学习使用 IronQR 在 C# 中读取和生成 QR 代码。由 ML 驱动的检测、纠错和跨平台支持。 阅读更多 智能手表 QR 代码扫描器(.NET 开发者教程)如何在 ASP .NET Core 中生成 Q...
已更新2026年1月7日 QR Code Generator .NET Core:在 C# 中创建和读取快速响应代码 QR 代码 .NET Core 教程:使用 C# 中的 IronQR 生成 QR 代码、配置纠错级别、添加徽标,并以 ML 驱动的精度读取 QR 代码。 阅读更多
已更新2026年1月7日 NuGet QR 码生成器:只需几行代码即可在 C# 中生成 QR 代码 安装 NuGet QR 代码包,只需几行代码就能用 C# 生成 QR 代码。支持跨平台 .NET、自定义样式、PDF 嵌入和 ML 驱动的读取。 阅读更多
已更新2026年1月5日 QR 代码生成器 .NET Core:只需几行代码即可读取和生成 QR 代码 QR 代码 .NET Core 教程:学习使用 IronQR 在 C# 中读取和生成 QR 代码。由 ML 驱动的检测、纠错和跨平台支持。 阅读更多