MAUI怎么实现扫码功能 MAUI ZXing.Net.MAUI使用教程
技术百科
星降
发布时间:2026-01-28
浏览: 次 MAUI 实现扫码功能,推荐使用 ZXing.Net.MAUI —— 它是 ZXing.NET 的官方 MAUI 封装,支持 Android 和 iOS 平台的实时扫码(含二维码、条形码),无需自己写平台原生代码。
安装 ZXing.Net.MAUI 包
在你的 MAUI 项目(.csproj)中添加 NuGet 包:
- 打开项目文件,添加以下 PackageReference:
目前最新稳定版是 0.3.0(截至 2025 年中),支持 .NET 8 和 MAUI 8。安装后需确保已启用平台权限(尤其 Android 相机权限)。
配置平台权限与设置
Android 端必须配置:
- 在
Platforms/Android/AndroidManifest.xml中添加相机权限:
iOS 端需补充:
- 在
Platforms/iOS/Info.plist中添加隐私描述键:
不加这些会导致扫码启动失败或白屏,且无明确报错提示。
在页面中使用 BarcodeView 控件
在 XAML 页面中引入命名空间并放置控件:
- 顶部添加 xmlns:
- 页面内插入 BarcodeView(支持自动对焦、闪光灯、扫描区域裁剪):
其中 ScanHandler 是一个 Func 类型的委托,用于处理识别结果。你可以在 ViewModel 或后台代码中定义它:
启动/暂停扫码与控制闪光灯
BarcodeView 提供了基础控制方法:
-
barcodeView.Start();— 启动预览和扫码 -
barcodeView.Stop();— 暂停扫码(不释放相机) -
barcodeView.ToggleTorch();— 切换闪光灯(iOS 需设备支持)
建议在页面 OnAppearing 中调用 Start(),在 OnDisappearing 中调用 Stop(),避免后台持续占用相机。
基本上就这些。ZXing.Net.MAUI 封装得比较干净,不用写 Platform 代码,也不依赖

# ai
# 就能
# 是一个
# 也不
# 它是
# 你可以
# 推荐使用
# 第三方
# app
# 年中
# String
# xml
# 委托
# .net
# 报错
# 封装
# 命名空间
# ios
# Namespace
# include
# android
# 不加
# 报错提示
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Win11如何设置文件关联 Win11修改特定文件
- Go 中实现 Python urllib.quot
- Win11系统更新后黑屏怎么办 Win11更新黑屏
- Win11怎么更改盘符_Win11磁盘管理修改驱动
- Windows 10怎么录屏_Windows 10
- Python实现图数据库操作_Neo4j核心CRU
- Win10怎么卸载剪映_Win10彻底卸载剪映方法
- Win11怎么查看局域网电脑_Windows 11
- Win11怎么关闭搜索历史_Win11清除设备上的
- Windows10如何更改系统字体大小_Win10
- 如何在Golang中处理数据库事务错误_回滚和日志
- 如何使用Golang benchmark测量函数延
- Win11怎么设置按流量计费_Win11限制后台流
- 短链接还原php提示内存不足_调整PHP内存限制设
- Win10闹钟铃声怎么自定义 Win10闹钟自定义
- php8.4如何配置ssl证书_php8.4htt
- Win11 explorer.exe频繁崩溃_修复
- 如何在 Go 中比较自定义的数组类型(如 [20]
- Windows10系统更新错误0x80070002
- c++中如何对数组进行排序_c++数组排序算法汇总
- Python并发安全问题_资源竞争说明【指导】
- Python网络超时处理_健壮性设计说明【指导】
- Python解释执行模型_字节码流程说明【指导】
- 如何使用Golang实现云原生应用弹性伸缩_自动应
- Windows电脑如何进入安全模式?(多种按键方法
- Python对象比较与排序_集合使用说明【指导】
- C++ STL算法库怎么用?C++常用算法函数(s
- Golang如何避免指针逃逸_Golang逃逸分析
- MAC怎么在照片中添加水印_MAC自带编辑工具文字
- Linux如何挂载新硬盘_Linux磁盘分区格式化
- c# await 一个已经完成的Task会发生什么
- Win11怎么开启HDR模式_Windows 11
- php485能和物联网模块通信吗_php485对接
- Windows驱动无法加载错误解决方法_驱动签名验
- c++怎么操作redis数据库_c++ hired
- Win11无法拖拽文件到任务栏怎么办_Win11开
- Win11怎么关闭定位服务_保护Win11位置隐私
- Windows怎样拦截QQ浏览器广告_Window
- 如何在 ACF 中正确更新嵌套多层 Group 字
- php485在macos下怎么配置_php485
- C++友元类使用场景_C++类间协作设计方式讲解
- Windows 10怎么隐藏特定更新补丁_Wind
- Win10怎样设置闹钟贪睡时间 Win10闹钟贪睡
- PHP怎么接收前端传的时间戳_处理时间戳参数转换技
- Win11任务栏怎么放到顶部_Win11修改任务栏
- Win11如何设置计划任务 Win11定时执行程序
- php485函数怎么捕获异常_php485错误处理
- Windows10系统怎么查看硬盘健康_Win10
- Win11声音太小怎么办_Windows 11开启
- Win11怎么设置快速访问主页_Windows11

QQ客服