首页 > 系统 > iOS > 正文

Xamarin.iOS 条形码扫描

2019-11-09 15:15:41
字体:
来源:转载
供稿:网友

今天写一篇条形码扫描的文章,使用的是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性能的问题了。

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

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

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表