Я использую сканер 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;
}