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

来源:这里教程网 时间:2026-02-21 17:40:02 作者:

maui怎么实现扫码功能 maui zxing.net.maui使用教程

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

安装 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<result task></result>
类型的委托,用于处理识别结果。你可以在 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 代码,也不依赖第三方插件。注意版本兼容性和权限配置,扫码功能就能稳稳跑起来。

相关推荐