MAUI怎么实现扫码功能 MAUI ZXing.Net.MAUI使用教程

发布时间 - 2026-01-28 00:00:00    点击率:

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 中添加相机权限:
android:name="android.permission.CAMERA" />

iOS 端需补充:

  • Platforms/iOS/Info.plist 中添加隐私描述键:
NSCameraUsageDescription需要访问相机来扫描二维码

不加这些会导致扫码启动失败或白屏,且无明确报错提示。

在页面中使用 BarcodeView 控件

在 XAML 页面中引入命名空间并放置控件:

  • 顶部添加 xmlns:
xmlns:zxing="clr-namespace:ZXing.Net.Maui;assembly=ZXing.Net.Maui"
  • 页面内插入 BarcodeView(支持自动对焦、闪光灯、扫描区域

    裁剪):

其中 ScanHandler 是一个 Func 类型的委托,用于处理识别结果。你可以在 ViewModel 或后台代码中定义它:

barcodeView.ScanHandler = async result => { await DisplayAlert("扫码成功", result.Text, "确定"); };

启动/暂停扫码与控制闪光灯

BarcodeView 提供了基础控制方法:

  • barcodeView.Start(); — 启动预览和扫码
  • barcodeView.Stop(); — 暂停扫码(不释放相机)
  • barcodeView.ToggleTorch(); — 切换闪光灯(iOS 需设备支持)

建议在页面 OnAppearing 中调用 Start(),在 OnDisappearing 中调用 Stop(),避免后台持续占用相机。

基本上就这些。ZXing.Net.MAUI 封装得比较干净,不用写 Platform 代码,也不依赖第三方插件。注意版本兼容性和权限配置,扫码功能就能稳稳跑起来。


# android  # app  # ai  # ios  # 报错提示  # .net  # String  # 命名空间  # 封装  # include  # xml  # Namespace  # 委托  # 是一个  # 也不  # 你可以  # 就能  # 推荐使用  # 它是  # 报错  # 第三方  # 不加  # 年中 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速查询域名建站关键信息?  EditPlus中的正则表达式 实战(1)  南京网站制作费用,南京远驱官方网站?  标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?  如何挑选最适合建站的高性能VPS主机?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  如何在阿里云服务器自主搭建网站?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  中山网站推广排名,中山信息港登录入口?  如何用花生壳三步快速搭建专属网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  如何用AWS免费套餐快速搭建高效网站?  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  lovemo网页版地址 lovemo官网手机登录  如何在云虚拟主机上快速搭建个人网站?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  简历没回改:利用AI润色让你的文字更专业  Laravel怎么在Controller之外的地方验证数据  实例解析angularjs的filter过滤器  再谈Python中的字符串与字符编码(推荐)  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  如何在Windows 2008云服务器安全搭建网站?  独立制作一个网站多少钱,建立网站需要花多少钱?  免费视频制作网站,更新又快又好的免费电影网站?  北京网站制作的公司有哪些,北京白云观官方网站?  如何用美橙互联一键搭建多站合一网站?  Laravel如何升级到最新版本?(升级指南和步骤)  详解MySQL数据库的安装与密码配置  太平洋网站制作公司,网络用语太平洋是什么意思?  Android滚轮选择时间控件使用详解  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  微信小程序 配置文件详细介绍  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  青岛网站建设如何选择本地服务器?  深入理解Android中的xmlns:tools属性  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  免费网站制作appp,免费制作app哪个平台好?  如何快速搭建FTP站点实现文件共享?  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Laravel如何使用查询构建器?(Query Builder高级用法)  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  香港服务器建站指南:免备案优势与SEO优化技巧全解析