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的“预览”如何合并多个PDF_Mac文件处理
- PHP主流架构怎么集成Redis缓存_配置步骤【方
- Ajax提交表单PHP怎么接收_处理Ajax发送的
- C++中引用和指针有什么区别?(代码说明)
- Windows10如何删除恢复分区_Win10 D
- Win11系统更新后黑屏怎么办 Win11更新黑屏
- Win11怎样彻底卸载自带应用_Win11彻底卸载
- Windows10系统怎么查看防火墙状态_Win1
- c++中如何计算坐标系中两点间距离_c++勾股定理
- Win11怎么设置默认图片查看器_Windows1
- Win11怎么设置默认浏览器Chrome_Wind
- PHP主流架构怎么监控运行状态_工具推荐【操作】
- Win10电脑怎么设置休眠快捷键_Windows1
- 如何关闭Win10自动更新更新_Win10系统自动
- c++如何打印函数堆栈信息_c++ backtra
- Win11怎么设置按流量计费_Win11限制后台流
- Windows任务计划服务异常原因_任务调度失败的
- Windows 11怎么设置默认解压软件_Wind
- Win11怎么关闭透明效果_Windows11辅助
- Win11怎么设置虚拟内存最佳大小_Windows
- Win11怎么关闭触控板_Win11笔记本禁用触摸
- c++ unordered_map怎么用 c++哈
- Win11怎么关闭键盘按键音_Win11禁用打字声
- Win11怎么设置声音输出设备_Windows11
- 如何在 Go 中正确反序列化 XML 多节点数组(
- Win11怎么把图标拖到任务栏_Win11固定应用
- Mac如何使用听写功能_Mac语音输入打字【效率技
- Django密码修改后会话失效的解决方案
- MAC如何修改默认应用程序_MAC文件后缀关联设置
- php怎么操作Redis_Redis扩展连接与基本
- Windows10电脑怎么设置虚拟内存_Win10
- 如何用正则表达式精确匹配最多含一个换行符的起止片段
- Python实现图数据库操作_Neo4j核心CRU
- 微信短链接怎么还原php_用浏览器开发者工具抓包获
- Windows10如何更改鼠标图标_Win10鼠标
- Mac如何开启夜览模式_Mac护眼模式设置与定时
- Win11如何设置文件权限 Win11 NTFS文
- Python字符串操作教程_切片拼接与格式化详解
- 如何在Golang中编写异步函数测试_Golang
- 如何使用Golang recover捕获panic
- 如何用列表一次性对 DataFrame 的指定列应
- Win11如何关闭小娜Cortana Win11禁
- Win11任务栏天气怎么关闭 Win11隐藏天气小
- Win10怎样清理C盘爱奇艺缓存_Win10清理爱
- Win11怎么设置开机密码_Windows11账户
- 如何使用Golang实现微服务事件驱动_使用消息总
- 如何使用Golang包导出规则_控制函数和变量可见
- mac怎么安装adb_MAC配置Android A
- MAC如何设置网卡MAC地址克隆_MAC终端修改物
- 跨文件调用类方法怎么用_php作用域操作符与自动加

QQ客服