Net.Mobile 在应用程序中实现条码扫描。
我目前有一个实现扫描页面的小演示应用程序,我可以读取条形码并做一些事情。我正在使用 Xamarin Forms 来实现条形码扫描。我查看了 ZXing 提供的示例应用程序,并复制了他们的一款扫描仪的代码,以便在我的演示中使用。现在我已经在 android 中测试了这个应用程序,我使用的是 API 21 手机,它像地狱一样滞后,但总的来说它可以工作。我可以扫描条形码并导航到新屏幕。
在 iOS 上测试时(使用最新版本的 iphone 6 - 11.2.5)我注意到 iphone 永远不会停止读取条形码。以下是手机识别条形码时调用的代码:
zxing.OnScanResult += (result) =>
Device.BeginInvokeOnMainThread(async () => {
// Stop analysis until we navigate away so we don't keep reading barcodes
zxing.IsAnalyzing = false;
// Show an alert
await DisplayAlert("Scanned Barcode", result.Text, "OK");
// Navigate away
await Navigation.PushAsync(new ScanResultsPage());
});
因此,您可以看到识别条形码时首先调用的是zxing.IsAnalyzing = false;
,这适用于 android。但是在 iOS 上它会继续扫描,如果我将手机指向条形码,屏幕上会添加越来越多的警报。我是 Xamarin Forms 的新手,在将条形码原生添加到 iOS 时从未遇到任何问题。
我真的不知道从哪里开始调试它,我在这行代码上放了一个断点zxing.IsAnalyzing = false;
,它执行并且我可以看到该值设置为 false。
这可能是 ZXing 框架本身的问题吗?
谢谢
(我在应用程序委托中调用了 init)