gpt4 book ai didi

c# - 如何暂停 ZXing 阅读,直到用户关闭 Xamarin Forms 中的警报消息?

转载 作者:太空宇宙 更新时间:2023-11-03 21:01:07 25 4
gpt4 key购买 nike

我正在实现 ZXing 条形码阅读器,所以当用户扫描错误的条形码时,会弹出一条警告消息,说这是错误的条形码。问题是,扫描仪在警告消息后面不断扫描并不断弹出相同的警告。我希望扫描仪暂停,直到用户关闭警报消息。这就是我的代码,顺便说一句,zxing.IsAnalyzing = false;不工作

 zxing = new ZXingScannerView
{
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
AutomationId = "zxingScannerView",
};


zxing.OnScanResult += (result) =>
{

Device.BeginInvokeOnMainThread(async () =>
{
if (!result.Text.Equals(auftrag.code))
{
zxing.IsAnalyzing = false;
await DisplayAlert("Barcode nicht gefunden.", "Der Barcode gehört nicht zu dem gewählten Auftrag.", "OK");

}
else

await Navigation.PushAsync(new AuftragDescription(auftrag));
}
});
};

最佳答案

您可以通过添加名为 _isScanning 的 bool 字段并将其设置为 true 来解决您的问题。当 Zxing“触发”OnScanResult 时,它会检查 _isScanning 是否为真,它将扫描和分析设置为假,它会做您的工作检查代码或其他您想要的东西,完成后它会将 Analyzing and Scanning 设置为 true,您将继续扫描其他条形码。

Zxing 会一直扫描,但不会在您显示 DisplyAlert 时打断您。

希望这不会造成混淆,这是满足您需求的最简单方法。

代码如下:

// add this bool field in your class
private bool _isScanning = true;
// ...
// your other code...
// ...

zxing = new ZXingScannerView {
HorizontalOptions = LayoutOptions.FillAndExpand,
VerticalOptions = LayoutOptions.FillAndExpand,
AutomationId = "zxingScannerView",
};


zxing.OnScanResult += (result) => {

Device.BeginInvokeOnMainThread(async() => {

if (_isScanning) {
_isScanning = false;
zxing.IsAnalyzing = false;

if (!result.Text.Equals(auftrag.code)) {
await DisplayAlert("Barcode nicht gefunden.", "Der Barcode gehört nicht zu dem gewählten Auftrag.", "OK");

} else

await Navigation.PushAsync(new AuftragDescription(auftrag));
}

zxing.IsAnalyzing = true;
_isScanning = true;
}
});
};

关于c# - 如何暂停 ZXing 阅读,直到用户关闭 Xamarin Forms 中的警报消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45481076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com