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; ?>
】
相关推荐
- mac怎么分屏_MAC双屏显示与分屏操作技巧【指南
- Win11怎么关闭VBS安全性_Windows11
- Python深度学习实战教程_神经网络模型构建与训
- 为什么Go需要go mod文件_Go go mod
- c++怎么调用nana库开发GUI_c++ 现代风
- 零基础学会Python自动化办公_高效处理Exce
- Python大型项目拆分策略_模块化解析【教程】
- Win11如何卸载OneDrive_Win11卸载
- Windows电脑如何截屏?(四种快捷方法)
- Win11系统更新后黑屏怎么办 Win11更新黑屏
- Win11笔记本怎么看电池健康度_Win11电池报
- 如何在Golang中使用container/hea
- Win11怎么关闭搜索历史 Win11清除搜索框最
- 手机php文件怎么变成mp4_安卓苹果打开php转
- php订单日志怎么记录发货_php记录订单发货操作
- Windows怎样拦截WPS弹窗广告_Window
- 如何使用Golang实现容器健康检查_监控和自动重
- Windows任务计划服务异常原因_任务调度失败的
- php报错怎么查看_定位PHP致命错误与警告的方法
- Win11怎么修改DNS服务器 Win11设置DN
- Python 中将 ISO 8601 时间戳转换为
- php转mp4怎么设置帧率_调整php生成mp4视
- Win11怎么打开注册表_Windows 11注册
- 如何在 PHP 单元测试中正确模拟带方法的图像处理
- Win11怎么关闭任务栏小组件_Windows11
- Python面向对象实战讲解_类与设计模式深入理解
- PHP的Workerman对架构扩展有啥帮助_应用
- C#怎么创建控制台应用 C# Console Ap
- Win10系统怎么查看端口状态_Windows10
- Win10系统怎么查看网络连接状态_Windows
- php命令行怎么运行_通过CLI模式执行PHP脚本
- Win10电脑C盘红了怎么清理_Windows10
- Win10怎么卸载剪映_Win10彻底卸载剪映方法
- 如何优化Golang Web性能_Golang H
- 如何解决Windows时间不准的问题?(自动同步设
- 如何使用Golang实现Web表单数据绑定_自动映
- Python文本编码与解码_跨平台解析说明【指导】
- Windows10系统怎么查看系统版本_Win10
- Win11怎么制作U盘启动盘_Win11原版系统安
- Win10怎么关闭自动更新错误弹窗_Win10策略
- Windows10蓝屏SYSTEM_SERVICE
- Laravel 查询 JSON 列:高效筛选包含数
- php下载安装后memory_limit怎么设置_
- windows系统如何安装cab更新补丁_wind
- 如何使用Golang实现基本类型比较_Golang
- c++如何使用std::bind绑定函数参数_c+
- Windows10无法识别USB设备描述符请求失败
- 为什么Go建议使用error接口作为错误返回_Go
- 为什么本地php环境运行php脚本卡顿_php执行
- Windows 11如何开启文件夹加密(EFS)_

QQ客服