Xamarin.iOS 条形码扫描_geanwen的博客-程序员宝宝

技术标签: Xamarin.iOS 扫码  c#条形码  .net条形码  Xamarin.iOS  Xamarin.iOS 扫描  Xamarin.iOS 条形码  

今天写一篇条形码扫描的文章,使用的是ZXing。

实现非常简单,下面一起来看一下步骤。


首先在项目中导入包:



接下来直接可以使用了:

直接在你的ViewController中声明变量:

MobileBarcodeScanner scanner;
初始化变量:
scanner = new MobileBarcodeScanner(this.NavigationController);
下面的代码是在一个按钮点击事件中调用扫码的:
Btn.TouchUpInside += async (sender, e) =>
			{

				// ZXing
				scanner.UseCustomOverlay = false;

				// 底部两个按钮文字
				scanner.FlashButtonText = "识别";
				scanner.CancelButtonText = "取消";

				// 方框上,下方文字提示
				scanner.TopText = "请将条形码对准方框内";
				scanner.BottomText = "确认后按下右下角识别按钮";

				//Start scanning
				var result = await scanner.Scan();

				// 处理结果
				HandleScanResult(result);

			};

下面是对结果简单的处理:

void HandleScanResult(ZXing.Result result)
		{
			string msg = "";

			if (result != null && !string.IsNullOrEmpty(result.Text))
				msg = "扫描结果: " + result.Text;
			else
				msg = "你取消了!";

			this.InvokeOnMainThread(() =>
			{
				var av = new UIAlertView("Barcode Result", msg, null, "OK", null);
				av.Show();
			});
		}

最后贴一张扫描的效果图





差点忘了,添加摄像头的权限:Privacy - Photo Library Usage Description。


上面实现的扫描条形码呢,需要我们手动点击识别按钮来识别,下面将调用的代码稍微改动一下,添加一个三秒延时自动识别:

Btn.TouchUpInside += (sender, e) =>
			{

				// ZXing
				scanner.UseCustomOverlay = false;

				// 底部两个按钮文字
				scanner.FlashButtonText = "识别";
				scanner.CancelButtonText = "取消";

				// 方框上,下方文字提示
				scanner.TopText = "请将条形码对准方框内";
				scanner.BottomText = "确认后按下右下角识别按钮";

				// 延时三秒自动扫秒
				var opt = new MobileBarcodeScanningOptions();
				opt.DelayBetweenContinuousScans = 3000;

				scanner.ScanContinuously(opt, HandleScanResult);
			};

好了,这样子调用即可达到自动识别的效果。

写完了后遇到一个坑,如上面截图,公司给的条形码都是纸质打印的,当时刚写完后一直扫不上,于是开始怀疑ZXing性能的问题了。

后来换了几个条形码都没有问题。

最后在仔细看了看纸质的条形码打印的质量有问题。

大家遇到扫不上的时候先检查一下条形码有没有问题。


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/geanwen/article/details/54964139

智能推荐

微信小程序之map地图规划路线以及显示距离_亚历山大海的博客-程序员宝宝

自定义函数文件/** * 自动获取定位信息 */function getLocation(that, qqmapsdk) { if (wx.getSystemInfoSync().locationEnabled == false) { wx.showModal({ title: '提示', content: '请打开手机定位', showCancel: false }) return; } if (wx.getSetting).

Eureka启动报错:TypeNotPresentException: Type javax.xml.bind.JAXBContext not present_柒品凰运的博客-程序员宝宝

本文转载,原文地址:https://www.cnblogs.com/Xuan-Yu95/p/10915243.html如有侵权,联系删除!记录以自省!添加以下pom依赖即可 <dependency> <groupId>javax.xml.bind</groupId> <artif...

kafka工具命令(常用)_谭正强的博客-程序员宝宝

提示:以下是本篇文章正文内容,下面案例可供参考一、kafka常用管理命令# 创建topic bin/kafka-topics.sh --create --zookeeper xxx:2181 --replication-factor 1 --partitions 1 --topic user_ippv# 客户端生产数据bin/kafka-console-producer.sh --broker-list xxx:9092 --topic user_ippv# 客户端消费数据 (从...

git 和 repo的用法_菜鸟哆哆的博客-程序员宝宝_git.repo

一、git 的用法       git 基础:git 分为本地cache、本地库、远程仓库。       git init —— git 初始化;       git add —— 将代码从本地cache提交到本地库;       git comment —— 将代码从本地库提交到远程仓库,-m “注释”,表示直接添加注释,--amend,表示在上一次提交的 基础上再次提交; ...

【SugerTangYL】UART串口通信 Verilog_SugerTangYL的博客-程序员宝宝_uart串口通信verilog

我好久之前就想做写通信协议接口的,之前写了RISC-V的处理器内核,想试试看SOC怎么搭,所以学习了下UART接口。

虚拟机安装linux操作系统(Cent OS 7.9版本)_yu.deqiang的博客-程序员宝宝_安装虚拟机linux操作系统

目录一、安装CentOS 7.9准备工具二、操作系统安装步骤三、网络连通步骤一、安装CentOS 7.9准备工具1、CentOS 7.9镜像系统2、安装好的虚拟机软件3、笔记本电脑二、操作系统安装步骤1、启动虚拟机2、点击创建新的虚拟机3、选择自定义,再点击下一步4、这一步默认选择,点击下一步5、选择稍后安装操作系统,再点击下一步6、因为安装的是linux操作系统,所以选择linux,版本选择为CentOS 7 64位,..

随便推点

网站搭建之Apache安装教程_正在努力中的杨Sir的博客-程序员宝宝_apache建立网站教程

注bin,cgi-bin:windows下的一些可执行文件conf:配置文件目录htdocs:apache默认的主机地址(网站根目录}modules:模块:apache的所有功能都是模块化dehttpd.exe的详细应用1、服务器进程:运行之后才能够工作2、用来查看apache具有哪些功能及配置文件是否有错:thhpd或httpd.exe(文件...

Python——根据散点数据绘制三维曲面图( meshgrid函数以及Axes3D [plot_surface] )_Scc_hy的博客-程序员宝宝

1、初始散点数据处理成xy网格数据import numpy as npx = np.arange(-2, 2, 0.025)y = np.arange(-2, 2, 0.025)x, y = np.meshgrid(x, y)网格处理过程:# x 和 Y 均为:array([-2. , -1.5, -1. , -0.5, 0. , 0.5, 1. , 1.5])...

rtp和rtcp_billy92的博客-程序员宝宝_rtp/rtcp

原文参考1链接:https://blog.csdn.net/chen495810242/article/details/39207305原文参考2链接:https://blog.csdn.net/special00/article/details/82533768原文参考2链接:https://blog.csdn.net/davidsguo008/article/details/736584221、RTP1.1、RTP 简介实时传输协议RTP(Real-time Transport P.

有根树相关知识总结之遍历二叉树(C语言描述)_清风小白的博客-程序员宝宝

有根树相关知识总结之遍历二叉树(C语言描述)前言:二叉树的遍历方法主要有前序遍历、中序遍历、后续遍历和层序遍历。各算法又可分为递归算法和非递归算法两种,本文将进行区分讨论。从本质上来说,二叉树的深度优先搜索包括了前序遍历、中序遍历和后续遍历;广度优先搜索即是层序遍历。

React中使用antd组件库的基本步骤_DukeMr.Lee的博客-程序员宝宝_antd contentstyle

antd组件库的使用步骤1, 用npm下载安装组件库 npm i antd --save2, 在入口文件中导入组件库css样式 index.js: import 'antd/dist/antd.css'; 或者 index.css : @import 'antd/dist/antd.css';3, 在组件中按需导入组件 import { Button } from 'antd'4,使用组件库的组件 <Button type="primary"&gt...

Pytorch - Autograd_Life Is Beautiful的博客-程序员宝宝

文章目录Auto-gradConcurrency Training on CPUCustom Layers and BackwardTransfer Learning & Fine-tuningBatch AccumulationNotesAuto-gradInternally, autograd represents this graph as a graph of Function objects, which can be apply() to compute the result of