我正在使用 zxing 扫描仪,它工作得很好,但由于某种原因,它扫描了两次相同的条形码。我已经设置了一个线程延迟以尝试保持视口打开,但让操作员有时间将设备从条形码上移开,但运气不好,他们报告了两次扫描项目,但我们不想关闭视口.
但要添加我不想关闭 ZXingScannerView 只是暂停它给用户足够的时间来准备下一个条形码
下面的代码是在一个按钮的按钮点击下,他们没有点击按钮两次,即使扫描两次。
ZXingDefaultOverlay overlay;
ZXingScannerView zxing;
zxing = new ZXingScannerView
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
AutomationId = "zxingScannerView",
};
zxing.OnScanResult += (result) =>
Device.BeginInvokeOnMainThread(async () =>
{
BarCode = result.Text;
await PlayBeep();
await Task.Delay(2000); //This is the delay I was given so that it would not scan right away again but leave the view open
overlay = new ZXingDefaultOverlay
{
TopText = "Hold your phone up to the barcode",
BottomText = "Scanning will happen automatically",
ShowFlashButton = zxing.HasTorch,
AutomationId = "zxingDefaultOverlay",
};
var grid = new Grid
{
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
};
grid.Children.Add(zxing);
grid.Children.Add(overlay);
// The root page of your application
Content = grid;
}