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抹掉数据并重装系
- c++23 std::expected怎么用 c+
- Windows任务计划服务异常原因_任务调度失败的
- php转exe用什么工具打包快_高效打包软件推荐【
- php中::能访问全局变量吗_全局作用域与类作用域
- c++ reinterpret_cast怎么用 c
- 如何在 Go 中调用动态链接库(.so)中的函数
- PythonDocker高级项目部署教程_多容器管
- PHP主流架构如何处理会话管理_Session与C
- php条件判断怎么写_ifelse和switchc
- Mac怎么进行语音输入_Mac听写功能设置与使用【
- 如何在 Go 中比较自定义的数组类型(如 [20]
- Windows音频驱动无声音原因解析_声卡驱动错误
- Windows10如何更改任务栏高度_Win10解
- c++如何使用std::bind绑定函数参数_c+
- Win11怎么关闭资讯和兴趣_Windows11任
- Win11怎么恢复误删照片_Win11数据恢复工具
- Windows10怎样连接蓝牙设备_Windows
- 如何减少Golang内存碎片化_Golang内存分
- Win11怎么卸载Photos应用_Win11卸载
- 如何在Golang中解压文件_Golang com
- php删除数据怎么软删除_添加is_del字段标记
- Golang如何实现基本的用户注册_Golang用
- Win11怎么开启游戏模式_Win11优化游戏帧数
- Windows 11如何开启文件夹加密(EFS)_
- 如何使用Golang反射将map转换为struct
- Win11怎么设置麦克风权限_允许应用访问Win1
- php订单日志怎么导出excel_php导出订单日
- php订单日志怎么记录物流_php记录订单物流变更
- Win10如何更改任务栏高度_Windows10解
- Win11输入法选字框不见了怎么办_Win11输入
- Win11怎么更改管理员名字 Win11修改账户名
- Win11任务栏怎么调到左边_Win11开始菜单居
- Windows蓝屏错误0x0000002C怎么解决
- Win10如何优化内存使用_Win10内存优化技巧
- Windows蓝屏错误0x0000001E怎么修复
- 如何用正则表达式精确匹配最多含一个换行符的起止片段
- 如何使用Golang指针与结构体结合_修改结构体内
- Python随机数生成_random模块说明【指导
- C++ STL算法库怎么用?C++常用算法函数(s
- 如何在JavaScript中动态拼接PHP的bas
- 如何用正则与预处理高效拦截带干扰符的恶意域名
- php做exe支持多线程吗_并发处理实现方式【详解
- Mac如何开启夜览模式_Mac护眼模式设置与定时
- MAC如何设置网卡MAC地址克隆_MAC终端修改物
- Win11如何更改用户账户文件夹名称 Win11修
- Win11怎么设置单手模式_Win11触控键盘布局
- MAC怎么截图并快速编辑_MAC自带截图快捷键与标
- PHP接收参数值为空怎么办_判断和处理空参数方法说
- Win11怎么设置开机密码_Windows11账户

QQ客服