MAUI怎么实现扫码功能 MAUI ZXing.Net.MAUI使用教程

10次阅读

MAUI怎么实现扫码功能 MAUI ZXing.Net.MAUI使用教程

MAUI 实现扫码功能,推荐使用 ZXing.net.MAUI —— 它是 ZXing.NET 的官方 MAUI 封装,支持 androidios 平台的实时扫码(含二维码、条形码),无需自己写平台原生代码。

安装 ZXing.Net.MAUI 包

在你的 MAUI 项目(.csproj)中添加 NuGet 包:

  • 打开项目文件,添加以下 PackageReference:

目前最新稳定版是 0.3.0(截至 2024 年中),支持 .NET 8 和 MAUI 8。安装后需确保已启用平台权限(尤其 Android 相机权限)。

配置平台权限与设置

Android 端必须配置:

  • Platforms/Android/AndroidManifest.xml 中添加相机权限:

android:name=”android.permission.CAMERA” />

iOS 端需补充:

  • Platforms/iOS/Info.plist 中添加隐私描述键:

NSCameraUsageDescription需要访问相机来扫描二维码

不加这些会导致扫码启动失败或白屏,且无明确报错提示

在页面中使用 BarcodeView 控件

在 XAML 页面中引入命名空间并放置控件:

  • 顶部添加 xmlns:

xmlns:zxing=”clr-Namespace:ZXing.Net.Maui;assembly=ZXing.Net.Maui”

  • 页面内插入 BarcodeView(支持自动对焦、闪光灯、扫描区域裁剪):

其中 ScanHandler 是一个 Func 类型的委托,用于处理识别结果。你可以在 ViewModel 或后台代码中定义它:

barcodeView.ScanHandler = async result => { await DisplayAlert(“扫码成功”, result.Text, “确定”); };

启动/暂停扫码与控制闪光灯

BarcodeView 提供了基础控制方法:

  • barcodeView.Start(); — 启动预览和扫码
  • barcodeView.Stop(); — 暂停扫码(不释放相机)
  • barcodeView.ToggleTorch(); — 切换闪光灯(iOS 需设备支持)

建议在页面 Onappearing 中调用 Start(),在 OnDisappearing 中调用 Stop(),避免后台持续占用相机。

基本上就这些。ZXing.Net.MAUI 封装得比较干净,不用写 Platform 代码,也不依赖第三方插件。注意版本兼容性和权限配置,扫码功能就能稳稳跑起来。

text=ZqhQzanResources