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; ?>
】
相关推荐
- Windows10如何更改桌面背景_Win10个性
- Mac的Time Machine怎么用_Mac系统
- Win11怎么关闭系统透明度_Windows11个
- Win11怎么查看显卡温度 Win11任务管理器查
- 如何在Golang中优化文件读写性能_使用缓冲和并
- 如何在 Go 项目开发中正确处理本地包导入与远程模
- Win11如何设置系统声音_Win11系统声音调整
- Windows10系统怎么查看设备管理器_Win1
- php订单日志权限怎么设_php订单日志文件权限设
- php修改数据怎么改富文本_update更新htm
- Win11任务栏怎么固定应用 Win11将软件图标
- Mac如何与安卓手机传文件_Mac和Android
- 如何使用Golang配置安全开发环境_防止敏感信息
- Windows电脑如何截屏?(四种快捷方法)
- Win11怎么设置虚拟桌面 Win11新建多桌面切
- Windows10电脑怎么设置虚拟内存_Win10
- 如何用::实现工具类方法调用_php静态工具类设计
- Windows 11无法安全删除U盘提示设备正在使
- Windows10怎样连接蓝牙设备_Windows
- Win11怎么用设置清理回收站_Win11设置清理
- MAC怎么解压RAR格式文件_MAC第三方解压工具
- Mac上的iMovie如何剪辑视频?(新手入门教程
- Windows 10自带杀毒软件在哪_Window
- php怎么连接数据库_MySQL数据库连接的基础代
- Win10如何更改开机密码_Windows10登录
- Win11怎么关闭边缘滑动手势_Windows11
- Windows10怎么用“讲述人”读屏辅助 Win
- Win11搜索栏无法输入_解决Win11开始菜单搜
- Windows Defender扫描失败怎么办_安
- 如何使用Golang实现RPC序列化与反序列化_G
- MAC如何设置网卡MAC地址克隆_MAC终端修改物
- Windows10电脑怎么设置电源按钮_Win10
- windows如何修改文件默认打开方式_windo
- 短链接怎么自定义还原php_修改解码规则适配需求【
- Win11怎么清理C盘虚拟内存_Win11清理虚拟
- Win11怎么格式化U盘_Win11系统U盘格式化
- 如何在 Go 中高效缓存与分发网络视频流
- PythonDocker高级项目部署教程_多容器管
- Win11怎么更改默认打开方式_Win11关联文件
- Python数据挖掘核心算法实践_聚类分类与特征工
- Win10如何更改任务栏高度_Windows10解
- php485支持哪些操作系统_php485跨系统支
- Win10如何卸载预装Edge扩展_Win10卸载
- How to Properly Use NumPy
- Linux怎么查找死循环进程_Linux系统负载分
- php中常量能用::访问吗_类常量与作用域操作符使
- PythonPandas数据分析教程_数据清洗与处
- Linux如何挂载新硬盘_Linux磁盘分区格式化
- 如何优化Golang Web性能_Golang H
- Golang如何实现基本的用户注册_Golang用

QQ客服