Moh*_*nad 1 c# zxing xamarin.forms
我正在实现 ZXing 条形码阅读器,因此当用户扫描错误的条形码时,会弹出一条警报消息,表明这是错误的条形码。问题是,扫描仪不断扫描警报消息后面并不断弹出相同的警报。我希望扫描仪暂停,直到用户关闭警报消息。这就是我的代码,顺便说一下, zxing.IsAnalyzing = false; 不管用
\n\n zxing = new ZXingScannerView\n {\n HorizontalOptions = LayoutOptions.FillAndExpand,\n VerticalOptions = LayoutOptions.FillAndExpand,\n AutomationId = "zxingScannerView",\n };\n\n\n zxing.OnScanResult += (result) =>\n {\n\n Device.BeginInvokeOnMainThread(async () =>\n {\n if (!result.Text.Equals(auftrag.code))\n {\n zxing.IsAnalyzing = false;\n await DisplayAlert("Barcode nicht gefunden.", "Der Barcode geh\xc3\xb6rt nicht zu dem gew\xc3\xa4hlten Auftrag.", "OK");\n\n }\n else\n\n await Navigation.PushAsync(new AuftragDescription(auftrag));\n }\n });\n };\nRun Code Online (Sandbox Code Playgroud)\n
您可以通过添加名为 _isScanning 的布尔字段并将其设置为 true 来解决您的问题。当Zxing “触发”时OnScanResult,它将检查是否_isScanning为真,它将扫描和分析设置为假,并且它将执行您的工作检查代码或您想要的其他操作,完成后它将把分析和扫描设置为真您将继续扫描其他条形码。
Zxing 会一直进行扫描,但当您显示DisplyAlert.
希望这不会造成混淆,这是实现您的需求的最简单的方法。
\n\n这是代码:
\n\n// add this bool field in your class\nprivate bool _isScanning = true;\n// ... \n// your other code...\n// ... \n\nzxing = new ZXingScannerView {\n HorizontalOptions = LayoutOptions.FillAndExpand,\n VerticalOptions = LayoutOptions.FillAndExpand,\n AutomationId = "zxingScannerView",\n};\n\n\nzxing.OnScanResult += (result) => {\n\n Device.BeginInvokeOnMainThread(async() => {\n\n if (_isScanning) {\n _isScanning = false;\n zxing.IsAnalyzing = false;\n\n if (!result.Text.Equals(auftrag.code)) { \n await DisplayAlert("Barcode nicht gefunden.", "Der Barcode geh\xc3\xb6rt nicht zu dem gew\xc3\xa4hlten Auftrag.", "OK");\n\n } else\n\n await Navigation.PushAsync(new AuftragDescription(auftrag));\n }\n\n zxing.IsAnalyzing = true;\n _isScanning = true;\n }\n });\n};\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
1655 次 |
| 最近记录: |